資源簡介
m本代碼是matlab代碼 LTE的程序

代碼片段和文件信息
%本程序為LTE系統中咬尾卷積碼的住址主程序,程序包括隨機比特序列的生成,tailbiting卷積
%編碼,QPSK調制映射,AWGN噪聲添加,QPSK軟解調,TSVA譯碼算法,誤碼率及誤塊率統計。
%LTE中卷積碼碼率為1/3,仿真中需要設置信息位長度,信噪比和仿真塊數。
clear;
clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Info_length?=?40;?%?信息位長度
Eb_N0?=?0:1:5;?%dB??比特信噪比(start?:?step?:?end)
sim_code_blk_num?=?10000;?%每個信噪比點仿真的碼塊數。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Code_length?=?Info_length*3;?%?code?length?rate=1/3
SNR?=?Eb_N0+10*log10(2/3);?%?snr?for?qpsk?rate?1/3
disp(‘LTE?tailbiting?convolutional?code?simulation‘);
disp(‘Decoding?algorithm:?TSVA‘);
disp(‘Modulation:?QPSK?Code?rate:?1/3?Channel:?AWGN‘);
for?snr_idx?=?1:length(SNR)
????total_bit_err_num?=?0;
????blk_err_num?=?0;
????code_bit_err_num?=?0;
????for?code_blk_cnt?=?1:sim_code_blk_num
????????info?=?randi([01]Info_length1);%低版本matlab如無此函數可用?info?=?randint(Info_length1);???????
????????%咬尾卷積編碼
????????tbcc_code?=?lte_tbcc_enc(info);????????
????????%QPSK調制
????????tbcc_symb?=?complex(1-2*tbcc_code(1:2:end)1-2*tbcc_code(2:2:end))/sqrt(2);????????
????????%AWGN信道
????????tbcc_symb?=?awgn(tbcc_symbSNR(snr_idx));????????
????????%QPSK軟解調
????????code_soft?=?reshape([real(tbcc_symb)imag(tbcc_symb)].‘[]1);??????
????????%TSVA譯碼
????????dec_bit?=?lte_tbcc_dec(code_soft);
????????%對接收碼字硬判決
????????code_hard_slice?=?double(code_soft<0);
????????%錯誤數統計
????????bit_err_num?=?numel(find(info~=dec_bit));
????????total_bit_err_num?=?total_bit_err_num+bit_err_num;
????????code_bit_err_num?=?code_bit_err_num+numel(find(tbcc_code~=code_hard_slice));
????????blk_err_num?=?blk_err_num+double(bit_err_num>0);
????end
????%berbler統計
????ber(snr_idx)?=?total_bit_err_num/(sim_code_blk_num*Info_length);
????hard_slice_ber(snr_idx)?=?code_bit_err_num/(sim_code_blk_num*Code_length);
????bler(snr_idx)?=?blk_err_num/sim_code_blk_num;
????disp([‘Eb/N0=‘num2str(Eb_N0(snr_idx)‘%.2f‘)‘dB???SNR=‘num2str(SNR(snr_idx)‘%.2f‘)‘dB???BER=‘num2str(ber(snr_idx)‘%e‘)...
?????????‘???BLER=‘num2str(bler(snr_idx)‘%e‘)]);
????if(ber(snr_idx)<1e-5)
????????break;
????end
end
%figure
figure;semilogy(Eb_N0(1:snr_idx)ber(1:snr_idx)‘o-‘Eb_N0(1:snr_idx)bler(1:snr_idx)‘*-‘);grid?on;
legend(‘BER‘‘BLER‘);xlabel(‘Eb/N0(dB)‘);
figure;semilogy(SNR(1:snr_idx)ber(1:snr_idx)‘o-‘SNR(1:snr_idx)hard_slice_ber(1:snr_idx)‘*-‘);grid?on;
legend(‘BER‘‘Uncoded-BER‘);xlabel(‘SNR(dB)‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2630??2014-04-03?21:42??LTE_tailbiting_cc_sim.m
?????文件????????4099??2014-03-30?21:31??lte_tbcc_dec.m
?????文件?????????570??2014-03-30?18:08??lte_tbcc_enc.m
?????目錄???????????0??2014-03-27?22:20??參考文章\
?????文件??????331060??2014-03-27?22:03??參考文章\Improved?sova-ba
?????文件?????7815075??2014-03-27?21:14??參考文章\LTE信道糾錯碼原理與實現_連立杰.caj
?????文件??????560189??2014-03-27?21:11??參考文章\LTE系統中咬尾卷積碼的編譯碼算法仿真及性能分析_陳發堂.pdf
評論
共有 條評論