N=100000;%定义基本参数
M=1;
%fs=1000;
x=randi([0,3],N,M);
y=qammod(x,M);
z=qamdemod(y,M);
y1=awgn(y,20);z1=qamdemod(y1,M);%yl=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');
y2=awgn(y,-20);z2=qamdemod(y2,M);
%画实域频域频谱
xw=fft(x,100000);
mag_xw=abs(xw);
zw=fft(z,100000);
mag_zw=abs(zw);
z1w=fft(z1,100000);
mag_z1w=abs(z1w);
z2w=fft(z2,100000);
mag_z2w=abs(z2w);
fs=1000;N=100000;
n=0:N-1;
f=n*fs/N;
%叠加噪声和误码分析
SNR=-10:10;
for i=1:length(SNR);
y3=awgn(y,SNR(i)); %加入高斯小噪声,信噪比从-10dB到10dB
z3=qamdemod(y3,M);%调用数字带通解调函数ddemod对加噪声信号进行解调
[br, Pe(i)]=symerr(x,z3);%对解调后加大噪声信号误码分析,br为符号误差数,Pe(i)为符号误差率
end
figure(1)
stairs(x);title('四进制基带信号');xlabel('时间 t');ylabel('序列值');axis([1 20 -1 5]);grid on
figure(2)
subplot(211);stairs(real(y));title('QAM信号实部');axis([1 20 -3 3]);grid on
subplot(212);stairs(imag(y));title('QAM信号虚部');axis([1 20 -3 3]);grid on
figure(3);
stairs(z);title('QAM解调后四进制基带信号');xlabel('时间 t');ylabel('序列值');axis([1 20 -1 5]);grid on
figure(4);
subplot(3,1,1);stairs(x);title('四进制基带信号');xlabel('时间 t');ylabel('序列值');axis([1 20 -1 4]);grid on
subplot(3,1,2);stairs(z1);title('大信噪比解调恢复四进制基带信号');xlabel('时间 t');ylabel('序列值');axis([1 20 -1 4]);grid on
subplot(3,1,3);stairs(z2);title('小信噪比解调恢复四进制基带信号');xlabel('时间 t');ylabel('序列值');axis([1 20 -1 4]);grid on
figure(5);
subplot(211);plot(f,mag_xw);title('四进制基带信号频谱');xlabel('频率 f');ylabel('幅度值');axis([0 1 0 4500]);grid on
subplot(212);plot(f,mag_zw);title('无噪声下QAM解调后四进制基带信号频谱');xlabel('频率 f');ylabel('幅度值');axis([0 1 0 4500]);grid on
figure(6)
subplot(211);plot(f,mag_z1w);title('大信噪比QAM解调恢复四进制基带信号频谱');xlabel('频率 f');ylabel('幅度值');axis([0 1 0 4500]);grid on
subplot(212);plot(f,mag_z2w);title('小信噪比QAM解调恢复四进制基带信号频谱');xlabel('频率 f');ylabel('幅度值');axis([0 1 0 4500]);grid on
figure(7)
semilogy(SNR,Pe); % 调用semilogy函数绘制信噪比与误码率的关系曲线
xlabel('信噪比 SNR(r/dB)');
ylabel('误码率 Pe');
title('信噪比与误码率的关系');
axis([-10 10 0 1])
grid on
%scatterplot(y)%理想调制输出
%scatterplot(y1)%大信噪比调制输出
%scatterplot(y2)%小信噪比调制输出
评论3