📄 qamsim.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -