資源簡介
在篇代碼中首先實(shí)現(xiàn)了OFMD功能,通過matlab產(chǎn)生的隨機(jī)序列然后經(jīng)過IFFT產(chǎn)生OFDM符號,同時(shí)也采用共軛對稱的方式產(chǎn)生DMT,DMT符號均為實(shí)數(shù),并不是以復(fù)數(shù)的形式存在。可以簡化傳輸信道。適用于可見光通信系統(tǒng)中。
代碼片段和文件信息
%%?L-OFDM?訓(xùn)練序列同步?發(fā)射機(jī)
clc;
clear?all?;
close?all;
XP?=zeros(2581);
N_IFFT=256;%IFFT點(diǎn)數(shù)
D_IFFT=240;
BitperSymbol=4;%每符號的比特?cái)?shù)
DataSymlength=180;%傳輸?shù)姆枖?shù)
N_TS_S=1;????%OFDM符號同步(訓(xùn)練序列)
Data_Bitlength=DataSymlength*D_IFFT*BitperSymbol;
N_cp=16;%循環(huán)前綴的個(gè)數(shù)
Length_OFDMSample=(N_IFFT+N_cp)*DataSymlength;
zero_in=(N_IFFT-?D_IFFT)/2;
map1=[57];
map2=[13];
%%?訓(xùn)練序列MQAM調(diào)制??(訓(xùn)練序列與數(shù)據(jù)是相同的調(diào)制方式)------------TS
Bitlength_TS=N_IFFT/2*N_TS_S*BitperSymbol;????????
X_BitSource_TS=round(rand(1Bitlength_TS)).‘;
hI_TS?=?modem.qammod(‘M‘2^BitperSymbol?‘PhaseOffset‘?0?‘SymbolOrder‘...
????‘Binary‘?‘InputType‘?‘bit‘);
TS?=?modulate(hI_TSX_BitSource_TS);
%%?產(chǎn)生Novel訓(xùn)練序列厄米爾變換,IFFT??------------(X_TS_S)用于符號同步
X_TS_S=reshape(TSN_IFFT/2[]);
X_TS_S(1:2:end:)=0;????????????????
H=zeros(size(X_TS_S));
for?k=2:N_IFFT/2
????H(k:)=conj(X_TS_S(N_IFFT/2+2-k:));
end
X_TS_H1?=?vertcat(X_TS_S(1:N_IFFT/41)H(11)H(N_IFFT/4+2:end1));%完成厄米爾對稱
X_TS_H2?=?vertcat(X_TS_S(N_IFFT/4+1:end1)H(N_IFFT/4+11)H(2:N_IFFT/41));
X_TS_real_1=real(X_TS_H1);??????%要求IFFT輸入為實(shí)數(shù)?保證了IFFT的輸出信號也是對稱信號
X_TS_real_2=real(X_TS_H2);
X_TS_IFFToutput_1?=ifft(X_TS_real_1);???????????%IFFT輸出后訓(xùn)練序列滿足厄米爾對稱,均為實(shí)數(shù),滿足N/2特性
X_TS_IFFToutput_2?=ifft(X_TS_real_2);
X_TS_IFFToutput?=?vertcat(X_TS_IFFToutput_1(11)X_TS_IFFToutput_1(2:N_IFFT/41)X_TS_IFFToutput_2(11)...
X_TS_IFFToutput_2(N_IFFT/4+2:end1)X_TS_IFFToutput_1(N_IFFT/4+11)X_TS_IFFToutput_1(N_IFFT/4+2:end1)X_TS_IFFToutput_2(N_IFFT/4+11)X_TS_IFFToutput_2(2:N_IFFT/41));
X_TS_IFFToutput?=?X_TS_IFFToutput.*0.1;
csvwrite(‘X_TS_IFFToutput.csv‘X_TS_IFFToutput);
%%?產(chǎn)生數(shù)據(jù)信號???------------(X_Data)
X_BitSource=round(rand(1Data_Bitlength/2)).‘;?%120*180*4
%?MQMAM調(diào)制??
hI?=?modem.qammod(‘M‘2^BitperSymbol?‘PhaseOffset‘?0?‘SymbolOrder‘...
????‘Binary‘?‘InputType‘?‘bit‘);
X_Data?=?modulate(hIX_BitSource);
X_input=reshape(X_DataD_IFFT/2[]);?
%%?符號重新映射
%X_input=mapping(X_inputmap1D_IFFT/
評論
共有 條評論