正交幅度调制仿真matlab代码

Posted 博主QQ2449341593

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正交幅度调制仿真matlab代码相关的知识,希望对你有一定的参考价值。

一、简介

在这里插入图片描述
在这里插入图片描述

二、源代码

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;

三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码下载https://www.cnblogs.com/matlabxiao/p/14883637.html

以上是关于正交幅度调制仿真matlab代码的主要内容,如果未能解决你的问题,请参考以下文章

数字信号调制基于matlab正交幅度调制仿真含Matlab源码 1002期

误码率仿真基于matlab多径信道下OFDM通信系统误码率仿真含Matlab源码 2078期

误码率仿真基于matlab多径信道下OFDM通信系统误码率仿真含Matlab源码 2078期

OQPSK:Offset Quadrature Phase Shift Keying偏移正交相移键控的MATLAB仿真/FPGA实现

通信仿真基于matlab数字信号增量调制含Matlab源码 2381期

MATLAB模拟调制系统的上机实现