?? test_wyf.asv
字號:
%****************************************************************
% 內(nèi)容概述:AWGN信道測試
% 每個(gè)SNR采樣點(diǎn)的測試幀數(shù)是隨snr指數(shù)上升的,
% 這樣不僅減少了計(jì)算量而且可以保證精度。
% 每幀的輸入是相同的,(不是每幀都不一樣,這樣可以大幅降低計(jì)算量)
% 在幀比特足夠多的情況下,應(yīng)該可以保證隨機(jī)性(未理論證實(shí))
% 創(chuàng) 建 人:朱殿榮/QQ:235347/MSN:njzdr@msn.com
% 單 位:南京郵電大學(xué),通信工程系
% 創(chuàng)建時(shí)間:2005年7月24日
% 修改時(shí)間:
% 參考文獻(xiàn):
% 版權(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.1:1.2; %snr的采樣點(diǎn)
EbNoLinear=10.^(snr.*0.1);
array_iter=[1 2 3 6]; %迭代次數(shù)
ferrlim=20; %誤幀限,達(dá)到此限即可停止當(dāng)前SNR點(diǎn)的測試
%num_frame=round(10.^(snr+1)); %測試的幀數(shù);
num_block_size=1024; %測試的塊尺寸,指包含尾比特的軟輸入系統(tǒng)系列長度
err_counter=zeros(max(array_iter),length(snr)); %初始化錯(cuò)誤比特計(jì)數(shù)器
nferr= zeros(max(array_iter),length(snr)); %初始化錯(cuò)誤幀計(jì)數(shù)器
ber=zeros(max(array_iter),length(snr)); %初始化錯(cuò)誤比特率
iter=zeros(max(array_iter),length(snr)); %初始化錯(cuò)誤比特率
random_in=round(rand(1,num_block_size-m)); %隨機(jī)數(shù)
[turbod_out,alphain]=turbo(random_in); %編碼
for ii=1:length(array_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)>1.0e-3
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-6;
end
fprintf('迭代次數(shù):%1.0f;snr:%1.2f;誤碼率:%8.4e;\n',...
iter,snr(nEN),ber(iter(ii),nEN));
end
end
semilogy(snr,ber(1,:),snr,ber(2,:),snr,ber(3,:),snr,ber(6,:));
xlabel('SNR(dB)');
ylabel('Bit Error Rate');
title('3GPP標(biāo)準(zhǔn) max-log-map譯碼算法 譯碼性能圖,1024交織長度,WYF噪聲加法');
legend('1次迭代','2次迭代','3次迭代','4次迭代','5次迭代','6次迭代');
%save cap算法06_楚宛琴噪聲加法.mat snr ber soft_out;
time_end=datestr(now);
disp(time_begin);
disp(time_end);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -