正交幅度调制仿真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实现