www.pudn.com > mentos_fs.rar > fs_system_test.m


%系统自环检测 
echo off 
close all 
N=10;    %桢数 
%信息序列 
signal=round(rand(1,N*260)); 
 
%初始化 
ex_en_sig=zeros(1,N*267); 
in_en_sig=zeros(1,N*456); 
in_de_sig=zeros(1,N*267); 
ex_de_sig=zeros(1,N*260); 
 
inter=zeros(1,N*456+456); 
counter=zeros(1,N*456+456); 
 
for n=0:N-1 
  %编码 
  %外编码 
  ex_en_sig(n*267+1:n*267+189)=T_FS_EX_EN(signal(n*260+1:n*260+182)); 
  ex_en_sig(n*267+190:n*267+267)=signal(n*260+183:n*260+260); 
  %内编码 
  in_en_sig(n*456+1:n*456+456)=T_FS_IN_EN(ex_en_sig(n*267+1:n*267+267)); 
end 
 
%交织 
inter=INTER_WEAVE_8(in_en_sig); 
    
%去交织 
counter=COUNTER_WEAVE_8(inter); 
 
for n=0:N-1  
  %译码 
  %内译码 
  in_de_sig(n*267+1:n*267+267)=T_FS_IN_DE(counter(n*456+1:n*456+456)); 
  %外译码 
  ex_de_sig(n*260+1:n*260+182)=T_FS_EX_DE(in_de_sig(n*267+1:n*267+189)); 
  ex_de_sig(n*260+183:n*260+260)=in_de_sig(n*267+190:n*267+267); 
end 
%验证 
sig_err_rate=(length(find(signal~=ex_de_sig)))/length(signal)  %系统误码率  
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)~=ex_de_sig([1:182]+n*260))); 
   class2_err_num=class2_err_num+length(find(signal([183:260]+n*260)~=ex_de_sig([183:260]+n*260))); 
end 
class1_err_rate=class1_err_num/(N*182)       %一级误码率 
class2_err_rate=class2_err_num/(N*78)        %二级误码率 
if sig_err_rate==0&class1_err_rate==0&class2_err_rate==0   %自环检测 
   display "good!"  %无差错 
else 
   display "error!" %有差错 
end