• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: Matlab
  • 标签:

资源简介

这事情我自己写的一个关于通信当中交织器的matlab程序,用起来还行!

资源截图

代码片段和文件信息

clear all;
clc;
disp(‘请输入你想要的序列长度:‘)
K=input(‘K=‘);
svar=0.6;
x=round(svar*rand(1K));
disp(‘原始输出序列为:‘);
disp(x);
figure;
stem(x);title(‘原始序列‘);xlabel(‘个数‘);ylabel(‘值‘);

%信息序列没经过交织器直接进入信道
nvar=0.1;
noise=nvar*randn(1K);
z12=x+noise;
uvar=0.3;
for t=round(0.4*K):round(0.6*K)
    wp(t)=u(t);
end
ganrao=uvar*wp;
ganrao(1:(round(0.4*K)-1))=0;
ganrao((round(0.6*K)+1):K)=0;
z=z12+ganrao;

z2=round(z);
disp(‘经过信道后信息序列为:‘);
z3=z2(1:K);
disp(z3);
figure;
stem(z3‘r‘);title(‘经过信道未交织信息序列‘);xlabel(‘个数‘);ylabel(‘值‘);

%计算没经过交织器的误码率
j=0;
for i=1:K
    if(z3(i)~=x(i))
    j=j+1; 
    end
end
Pe1=j/K;
st=sprintf(‘没经过交织器的误码率为:%.20f‘Pe1);
disp(st);


%信息序列经过卷积交织器
%(1)确定卷积交织器输入矩阵
%确定输入矩阵的列数,C(标准中给定)
if K>=10 && K<=159
    C=5;
elseif (K>=160 && K<=200)||(K>=481 && K<=530)
    C=10;
elseif (K>=201 && K<=481)
    C=20;
else
    C=50;
end

%确定输入矩阵的行数,R
%找到满足条件的最小质数,p
p_table=[5  7 11 13 17 19 23 29 31 37 41 43 ...
    47 53 59 61 67 71 73 79 83 89 97 ...
    101 103 107 109 113 127 131 137 139 149 151 ...
    157 163 167 173 179 181 191 193 197 199 211 ...
    223 227 229 233 239 241 251 257];
if K>=481 && K<=530
    p=53;
    R=p;
else
    %从标准给定的p_table表中找到最小质数,p
    %p满足条件(p+1)*C>=K
    ii=1;
    while (p_table(ii)+1)*C        ii=ii+1;
    end
    p=p_table(ii);
    %确定交织矩阵行数,R 
    if K<=(p-1)*C
        R=p-1;
    elseif K>(p-1)*C && K<=C*p
        R=p;
    elseif K>C*p
   

评论

共有 条评论

相关资源