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

📄 tchfs_gauss_burst_test.m

📁 matlab仿真进行信道编码
💻 M
字号:

function[class1_err_rate,sig_err_rate]=tchfsPe(snr_in_dB)
%噪声功率
E=1;
snr=10^(snr_in_dB/10);
sgma=sqrt((E/snr)/2);
%桢个数
N=10;
%突发间隔
N_Interval=80;
%突发长度
N_Length=10;
%信息序列
signal=round(rand(1,N*260));
%编码
for n=0:(N-1)
	%外编码
	ex_en_sig=T_FS_EX_EN(signal([1:260]+n*260));
	%内编码
   in_en_sig=T_FS_IN_EN(ex_en_sig);
   %交织前合成
   C([1:456]+n*456)=in_en_sig;
end;
%交织
u=INTER_WEAVE_8(C);

%经信道加高斯燥声
u=2*u-1;
u=sign(u+sgma*randn(size(u))+eps);
u=(u+1)/2;
%加突发噪声
Noise=BurstNoise(N_Interval,N_Length,length(u));
u=mod(u+Noise,2);

%反交织
D=COUNTER_WEAVE_8(u);
%错误位记录初始化
err_flag=0;
%解码
for n=0:(N-1)
	%分离桢
   in_de_sig=D([1:456]+n*456);
   %内编码解码
	ex_de_sig=T_FS_IN_DE(in_de_sig);
	%外编码解码
   [newsig,flag]=T_FS_EX_DE(ex_de_sig);    
   %错误位记录,如果有错,err_flag会在相应的位置记1
   err_flag=err_flag*10+mod(flag,2);
   %桢合成
   rev_sig([1:260]+n*260)=newsig;
end;
%验证
if (length(find(signal~=rev_sig))==0)&(err_flag==0)
   display "good!"
else
   display "error!"
   sig_err_rate=(length(find(signal~=rev_sig)))/length(signal)
end
class1_err_num=0;
class2_err_num=0;
for n=0:(N-1)
   class1_err_num=class1_err_num+length(find(signal([1:182]+n*260)~=rev_sig([1:182]+n*260)));
   
end
class1_err_rate=class1_err_num/(N*182)


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -