📄 ricepeb.m
字号:
%莱斯信道中误码率
function [p,p1,p2]=RicePeB(snr_in_dB)
E=1;
snr=10^(snr_in_dB/10);
sgma=sqrt((E/snr)/2);%噪声方差
%突发间隔
N_Interval=200;
%突发长度
N_Length1=3;
N_Length2=5;
N=100;%桢个数
input=round(rand(1,N*25));%信息序列
SN=0.5;
u=2*input-1;
x=randn(size(u));
y=randn(size(u));
ricefading=sqrt(((x+sqrt(2*SN)).^2+y.^2)/(2*(SN+1)));
u=sign(u.*ricefading+sgma*randn(size(u))+eps);
u=(u+1)/2;
%加突发噪声
Noise=BurstNoise(N_Interval,N_Length1,length(u));
u=mod(u+Noise,2);
p=(length(find(input~=u)))/length(input)%没有经过信道编译码的误码率
%信道编码
for n=0:(N-1)
%外编码
out_en=T_SCH_EX_EN(input([1:25]+n*25));
%内编码
in_en=SCH_IN_EN(out_en);
%合成桢
u([1:78]+n*78)=in_en;
end;
%经信道加高斯燥声
u=2*u-1;
x=randn(size(u));
y=randn(size(u));
ricefading=sqrt(((x+sqrt(2*SN)).^2+y.^2)/(2*(SN+1)));
u=sign(u.*ricefading+sgma*randn(size(u))+eps);
u=(u+1)/2;
%加突发噪声
Noise1=BurstNoise(N_Interval,N_Length1,length(u));
u1=mod(u+Noise1,2);
Noise2=BurstNoise(N_Interval,N_Length2,length(u));
u2=mod(u+Noise2,2);
%信道译码
for n=0:(N-1)
%分离桢
de1=u1([1:78]+n*78);
de2=u2([1:78]+n*78);
%内编码解码
in_de1=SCH_IN_DE(de1);
in_de2=SCH_IN_DE(de2);
%外编码解码
[cc1,output1]=cyc_sch_decoder(in_de1);
[cc2,output2]=cyc_sch_decoder(in_de2);
%桢合成
receive1([1:25]+n*25)=output1;
receive2([1:25]+n*25)=output2;
end;
p1=(length(find(input~=receive1)))/length(input);%经过信道编译码的误码率
p2=(length(find(input~=receive2)))/length(input);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -