資源簡介
在篇代碼中首先實現了OFMD功能,通過matlab產生的隨機序列然后經過IFFT產生OFDM符號,同時也采用共軛對稱的方式產生DMT,DMT符號均為實數,并不是以復數的形式存在。可以簡化傳輸信道。適用于可見光通信系統中。
代碼片段和文件信息
%%?L-OFDM?訓練序列同步?發射機
clc;
clear?all?;
close?all;
XP?=zeros(2581);
N_IFFT=256;%IFFT點數
D_IFFT=240;
BitperSymbol=4;%每符號的比特數
DataSymlength=180;%傳輸的符號數
N_TS_S=1;????%OFDM符號同步(訓練序列)
Data_Bitlength=DataSymlength*D_IFFT*BitperSymbol;
N_cp=16;%循環前綴的個數
Length_OFDMSample=(N_IFFT+N_cp)*DataSymlength;
zero_in=(N_IFFT-?D_IFFT)/2;
map1=[57];
map2=[13];
%%?訓練序列MQAM調制??(訓練序列與數據是相同的調制方式)------------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);
%%?產生Novel訓練序列厄米爾變換,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輸入為實數?保證了IFFT的輸出信號也是對稱信號
X_TS_real_2=real(X_TS_H2);
X_TS_IFFToutput_1?=ifft(X_TS_real_1);???????????%IFFT輸出后訓練序列滿足厄米爾對稱,均為實數,滿足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);
%%?產生數據信號???------------(X_Data)
X_BitSource=round(rand(1Data_Bitlength/2)).‘;?%120*180*4
%?MQMAM調制??
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/評論
共有 條評論
川公網安備 51152502000135號