⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ricepeb.m

📁 MATLBA 信道仿真,完成信道卷积码循环码的编译码
💻 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 + -