📄 smldpe21.m
字号:
function [p,result]=smldPe(snr_in_dB)
%SMLDPE仿真求出以dB为单位的特定信噪比的误码率
E=1;
% snr_in_dB=2;
SNR=exp(snr_in_dB*log(10)/10); %信噪比
M=12;
sgma=E/sqrt(2*SNR); %噪声的标准偏差
symbols=[];
N=1000-3
%产生信源
for i=1:N,
temp=rand; %在(0,1)区间内的均匀随机变量
if (temp<0.5),
dsource1(i)=0; %信源输出为0的概率为1/2
else
dsource1(i)=1; %信源输出为1的概率为1/2
end
end
temp=[dsource1 0 0 0];
dsource=bianma(temp,M) % 卷积编码
%随后为判决和误码概率的计算
numoferr=0;
reinfor=[];
for i=1:length(dsource)
%匹配滤波器的输出
if (dsource(i)==0),
r=-E+sgma*randn; %如果信源输出为“-1”
else
r=E+sgma*randn; %如果信源输出为"1"
end;
;
%随后为判决
if (r<0),
decis=0; %判决为“0”
else
decis=1; %判决为“1”
end;
reinfor=[reinfor,decis];
if(decis~=dsource(i)),
numoferr=numoferr+1; %如果出错,计数器加1
end;
end;
trellis = poly2trellis(3,[7 5]);
result=[]
for i=1:2:11
temp1= vitdec(reinfor,trellis,i,'trunc','hard');
ps1=distance(temp1,temp)/6000
result=[result ps1]
end
temp1= vitdec(reinfor,trellis,32,'trunc','hard')
ps1=distance(temp1,temp)/length(temp);
result=[result ps1];
p=numoferr/length(dsource) %no c j 误差概率估算
%ps=wrongsym*6/N;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -