qamsim.m

来自「QAm仿真大家看看有没有问题啊」· M 代码 · 共 37 行

M
37
字号
clear all;%清除workspace的所有变量
M = 16;
data_length=10000;
L=0:2:14;
sigama=0.5*10.^(-L/10);
noise_A=sigama.^0.5;
A=(log2(M)/10)^0.5;
max_error=1000;

for i1=1:length(L)
    err_number=0;
    biterr_number=0;
    i2=0;
    while err_number<max_error
       msg = randint(1,data_length,[0,M-1])'; 
      [inphase,quadr] = qaskenco(msg,M); % Map the message.
      inphase=A*inphase;
      quadr=A*quadr;
      channal_inph=inphase+noise_A(i1)*randn(data_length,1);
      channal_quad=quadr+noise_A(i1)*randn(data_length,1);
      channal_inph= channal_inph/A;
      channal_quad= channal_quad/A;
      newmsg = qaskdeco(channal_inph,channal_quad,M); % Demap to recover data.
      err_number = err_number+symerr(msg, newmsg);
      biterr_number=biterr_number+symerr(double(dec2bin(msg,4))-48,double(dec2bin(newmsg,4))-48);
      i2=i2+1;    
  end
      bit_error_rat(i1)=biterr_number/(i2*data_length*log2(M));
      sym_error_rat(i1)=err_number/(i2*data_length);
      qam_error_rat=[bit_error_rat;sym_error_rat];
      save  qam_error_rat qam_error_rat ;
end
semilogy(L, sym_error_rat,'*-');
hold on
semilogy(L,bit_error_rat,'+-');
grid on

⌨️ 快捷键说明

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