資源簡(jiǎn)介
ofdm整個(gè)系統(tǒng)結(jié)構(gòu),包括上下變頻,多普勒頻移,以及星座圖調(diào)制和系統(tǒng)參數(shù)計(jì)算

代碼片段和文件信息
clear?all
clc
format?long
%本次仿真載頻為2GHz,帶寬1MHz,子載波數(shù)128個(gè),cp為16
%子載波間隔為7.8125kHz
%一個(gè)ofdm符號(hào)長(zhǎng)度為128us,cp長(zhǎng)度為16us
%采用16QAM調(diào)制方式
%最大doppler頻率為132Hz
%多徑信道為5徑,功率延遲譜服從負(fù)指數(shù)分布~exp(-t/trms)trms=(1/4)*cp時(shí)長(zhǎng),各徑延遲取為delay=[0?2e-6?4e-6?8e-6?12e-6]
pilot_inter=5;%導(dǎo)頻符號(hào)間隔為10可以調(diào)整,看不同導(dǎo)頻間隔下的BER情況,和理論公式比較
pilot_symbol_bit=[0?0?0?1];%導(dǎo)頻為常數(shù),對(duì)應(yīng)星座點(diǎn)1+3*j
cp_length=16;%cp長(zhǎng)度為16
SNR_dB=[0?2?4?6?8?10?12?14?16];
ls_err_ber=zeros(1length(SNR_dB));
lmmse_err_ber=zeros(1length(SNR_dB));
lr_lmmse_err_ber=zeros(1length(SNR_dB));
for?i=1:length(SNR_dB)%每個(gè)SNR點(diǎn)上仿真若干次
????ls_error_bit=0;
????lmmse_error_bit=0;
????lr_lmmse_error_bit=0;
????total_bit_num=0;
loop_num=5;?%共仿真10次
for?l=1:loop_num
????ofdm_symbol_num=500;%每次仿真產(chǎn)生100個(gè)ofdm符號(hào)則每次仿真共有100×128個(gè)星座映射符號(hào);16QAM調(diào)制下,1個(gè)星座映射符號(hào)包含4個(gè)bit
????
????bit_source=input_b(128ofdm_symbol_num);%為每次仿真產(chǎn)生100個(gè)ofdm符號(hào)的比特個(gè)數(shù),128為每個(gè)ofdm符號(hào)的子載波個(gè)數(shù)
????[nbitmbit]=size(bit_source);
????total_bit_num=total_bit_num+nbit*mbit;
????
????map_out=map_16qam(bit_source);%對(duì)一次仿真符號(hào)塊進(jìn)行16QAM映射
????
????[insert_pilot_outpilot_numpilot_sequence]=insert_pilot(pilot_interpilot_symbol_bitmap_out);%按塊狀導(dǎo)頻結(jié)構(gòu),對(duì)映射后的結(jié)果插入導(dǎo)頻序列
????
????ofdm_modulation_out=ifft(insert_pilot_out128);%作128點(diǎn)逆FFT運(yùn)算,完成ofdm調(diào)制
????
????ofdm_cp_out=insert_cp(ofdm_modulation_outcp_length);%插入循環(huán)前綴
????????
????%**********************?以下過(guò)程為ofdm符號(hào)通過(guò)頻率選擇性多徑信道?*************************
????num=5;
????%假設(shè)功率延遲譜服從負(fù)指數(shù)分布~exp(-t/trms)trms=(1/4)*cp時(shí)長(zhǎng);
????%t在0~cp時(shí)長(zhǎng)上均勻分布
????%若cp時(shí)長(zhǎng)為16e-6s,可以取5徑延遲如下
????delay=[0?2e-6?4e-6?8e-6?12e-6];
????trms=4e-6;
????var_pow=10*log10(exp(-delay/trms));
????fd=132;%最大doppler頻率為132Hz
????t_interval=1e-6;%采樣間隔為1us
????counter=200000;%各徑信道的采樣點(diǎn)間隔,應(yīng)該大于信道采樣點(diǎn)數(shù)。由以上條件現(xiàn)在信道采樣點(diǎn)數(shù)
????count_begin=(l-1)*(5*counter);%每次仿真信道采樣的開始位置
????trms_1=trms/t_interval;
????t_max=16e-6/t_interval;
????%信道采樣點(diǎn)數(shù),每個(gè)調(diào)制符號(hào)采一個(gè)點(diǎn)
????passchan_ofdm_symbol=multipath_chann(ofdm_cp_outnumvar_powdelayfdt_intervalcountercount_begin);
????
????%**********************?以上過(guò)程為ofdm符號(hào)通過(guò)頻率選擇性多徑信道?*************************
????
?????%**********************?以下過(guò)程為ofdm符號(hào)加高斯白噪聲?*************************
????snr=10^(SNR_dB(i)/10);
????[nnlmml]=size(passchan_ofdm_symbol);
????spow=0;
????for?k=1:nnl
??????for?b=1:mml
????????spow=spow+real(passchan_ofdm_symbol(kb))^2+imag(passchan_ofdm_symbol(kb))^2;
??????end
????end
????spow1=spow/(nnl*mml);????????
????sgma=sqrt(spow1/(2*snr));%sgma如何計(jì)算,與當(dāng)前SNR和信號(hào)平均能量有關(guān)系
????receive_ofdm_symbol=add_noise(sgmapasschan_ofdm_symbol);%加入隨機(jī)高斯白噪聲,receive_ofdm_symbol為最終接收機(jī)收到的ofdm符號(hào)塊
????
????%**********************?以上過(guò)程為ofdm符號(hào)加高斯白噪聲?*************************
????cutcp_ofdm_symbol=cut_cp(receive_ofdm_symbolcp_length);%去除循環(huán)前綴
????
????ofdm_demodulation_out=fft(cutcp_ofdm_symbol128);%作128點(diǎn)FFT運(yùn)算,完成ofdm解調(diào)
????
????%**********************?以下就是對(duì)接收ofdm信號(hào)進(jìn)行信道估計(jì)和信號(hào)檢測(cè)的過(guò)程************************
????ls_zf_detect_sig=ls_estimation(ofdm_demodulation_outpilot_interpilot_sequencepilot_num);%采用LS估計(jì)算法及迫零檢測(cè)得到的接收信號(hào)
????lmmse_zf_detect_sig=lmmse_estim
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????4849??2004-12-09?14:49??ofdm_system.m
-----------?---------??----------?-----??----
?????????????????4849????????????????????1
評(píng)論
共有 條評(píng)論