?? test_ber_mother_interleave.m
字號(hào):
%****************************************************************
% 內(nèi)容概述:MAX-LOG-MAP算法AWGN信道測(cè)試
% 交織器為3GPP標(biāo)準(zhǔn)交織器,使用mother-interleave
% 創(chuàng) 建 人:朱殿榮/QQ:235347/MSN:njzdr@msn.com
% 單 位:南京郵電大學(xué),通信工程系
% 創(chuàng)建時(shí)間:2005年9月12日
% 修改時(shí)間:
% 參考文獻(xiàn):《3GPP TS 25.212 V6.5.0 (2005-06)》
% 版權(quán)聲明:任何人均可復(fù)制、傳播、修改此文件,同時(shí)需保留原始版權(quán)信息。
%****************************************************************
clear;
clc;
time_begin=datestr(now);
rate=1/3; %碼率
m=3; %尾比特?cái)?shù)
fading_a=1; %Fading amplitude
snr=0:0.2:2.4; %snr的采樣點(diǎn)
EbNoLinear=10.^(snr.*0.1);
iter=[1 2 3]; %迭代次數(shù)
ferrlim=10; %誤幀限,達(dá)到此限即可停止當(dāng)前SNR點(diǎn)的測(cè)試
length_interleave=1024; %交織長(zhǎng)度
num_block_size=length_interleave+m; %測(cè)試的塊尺寸,指包含尾比特的軟輸入系統(tǒng)系列長(zhǎng)度
err_counter=zeros(max(iter),length(snr)); %初始化錯(cuò)誤比特計(jì)數(shù)器
nferr= zeros(max(iter),length(snr)); %初始化錯(cuò)誤幀計(jì)數(shù)器
ber=zeros(max(iter),length(snr)); %初始化錯(cuò)誤比特率
random_in=round(rand(1,num_block_size-m)); %隨機(jī)數(shù)
[turbod_out,alphain]=turbo_mother_interleave(random_in); %編碼
for ii=1:length(iter)
for nEN=1:length(snr)
L_c=4*fading_a*EbNoLinear(nEN)*rate;
sigma=1/sqrt(2*rate*EbNoLinear(nEN));
nframe = 0; % clear counter of transmitted frames
if nEN==1 | ber(iter(ii),nEN-1)>9.0e-6
while nferr(iter(ii),nEN)<ferrlim %nferr:當(dāng)前迭代次數(shù)、snr點(diǎn)的錯(cuò)誤幀數(shù)
nframe = nframe + 1;
noice=randn(3,num_block_size); %噪聲
soft_in=L_c*(turbod_out+sigma*noice); %信息噪聲疊加
[hard_out,soft_out]=deturbo_cap(soft_in,alphain,iter(ii)); %譯碼
errs=length(find(hard_out(1:num_block_size-m)~=random_in));%當(dāng)前點(diǎn)錯(cuò)誤bit數(shù)
if errs>0
err_counter(iter(ii),nEN)=err_counter(iter(ii),nEN)+errs;
nferr(iter(ii),nEN)=nferr(iter(ii),nEN)+1;
end
end
ber(iter(ii),nEN) = err_counter(iter(ii),nEN)/nframe/(num_block_size-m);%誤比特率
%fer(iter,nEN) = nferr(iter,nEN)/nframe; %誤幀率
else
ber(iter(ii),nEN)=1.0e-7;
end
fprintf('迭代次數(shù):%1.0f;snr:%1.2f;誤碼率:%8.4e;\n',...
iter(ii),snr(nEN),ber(iter(ii),nEN));
%save cap算法06_WYF噪聲_max_log_map.mat snr ber;
end
end
semilogy(snr,ber(1,:),snr,ber(2,:),snr,ber(3,:));
xlabel('SNR(dB)');
ylabel('Bit Error Rate');
title('3GPP標(biāo)準(zhǔn) max-log-map譯碼算法 譯碼性能圖,1024交織長(zhǎng)度,WYF噪聲加法');
legend('1次迭代','2次迭代','3次迭代');
time_end=datestr(now);
disp(time_begin);
disp(time_end);
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -