一、简介

【数字信号调制】正交幅度调制仿真matlab源码_雷达【数字信号调制】正交幅度调制仿真matlab源码_雷达_02

二、源代码

M=16;
k=log2(M);
n=100000; %比特序列长度 
samp=1; %过采样率
x=randint(n,1); %生成随机二进制比特流
subplot(211);
stem(x(1:50),'filled'); %画出相应的二进制比特流信号 title('二进制随机比特流');
xlabel('二进制比特序列');ylabel('信号幅度');
x4=reshape(x,k,length(x)/k); %将原始的二进制比特序列每四个一组分组,并排列成k行length(x)/k列的矩阵
xsym=bi2de(x4.','left-msb'); %将矩阵转化为相应的16进制信号序列 figure;
subplot(212);
stem(xsym(1:50)); %画出相应的16进制信号序列 title('16进制随机信号');
xlabel('16进制信号序列');ylabel('信号幅度');
y=qammod(xsym,M); %用16QAM调制器对信号进行调制 
scatterplot(y); %画出16QAM信号的星座图 
title('发射信号星座图');
text(real(y)+0.1,imag(y),dec2bin(xsym)); 
axis([-5 5 -5 5]); 
EbNo=10;
snr=EbNo+10*log10(k)-10*log10(samp); %信噪比
yn=awgn(y,snr,'measured'); %加入高斯白噪声
h=scatterplot(yn,samp,0,'b.'); %经过信道后接收到的含白噪声的信号星座图
hold on;
scatterplot(y,1,0,'r+',h); %加入不含白噪声的信号星座图 
title('接收信号星座图');
legend('含噪声接收信号','不含噪声信号'); 
axis([-5 5 -5 5]); 
hold on;
yd=qamdemod(yn,M); %此时解调出来的是16进制信号 
figure;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

三、运行结果

【数字信号调制】正交幅度调制仿真matlab源码_matlab_03【数字信号调制】正交幅度调制仿真matlab源码_雷达_04【数字信号调制】正交幅度调制仿真matlab源码_matlab_05