📄 qamtest.m
字号:
close all
clear all
no_symbols=10000; M=16; Es=2*(M-1)/3; m=log2(M);
EbN0_dB=0:14; EbN0=10.^(EbN0_dB./10);
SER=zeros(1,length(EbN0_dB));
for kk=1:length(EbN0);
s=randint(1,no_symbols,M);
x=qammod(s,M);
n=sqrt((Es/2)/(log2(M)*EbN0(kk)))*(randn(1,no_symbols)+j*randn(1,no_symbols));
y=x+n;
z=qamdemod(y,M);
SER(kk) = 1-sum(s==z,2)/size(s,2);
end
figure(2; semilogy(EbN0_dB,SER/m,'b*-'); hold
PB1= ((4-2^(2-m/2))/m)*qfunc(sqrt(3*m*EbN0/(M-1)));
semilogy(EbN0_dB,PB1,'ro-')
grid; title('BER Plot for QAM'); legend('Simulation', 'Theory')
xlabel('EbN0 - dB'); ylabel ('BER')
%Proakis Page 278
%Symbol error rate
%PB1=(1-(1-2*(1-1/sqrt(M))*0.5*erfc(sqrt((log2(M)*EbN0)*3/(2*(M-1))))).^2);
%Symbol error rate, multiply by m
% PB2=m*((4-2^(2-m/2))/(2*m))*erfc(sqrt(EbN0*m/Es));
% semilogy(EbN0_dB,PB2,'g')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -