matlab绘制16QAM星座图

这里首先介绍一个网站,可以理解他是一个在线版的matlab,可以运行基本的命令。

Octave onlineicon-default.png?t=N5K3https://octave-online.net/

  • 首先用randi()函数生成信源
x = randi([0 M-1], 1000, 1);           % 随机生成1000个0到M-1之间的整数,作为原始信号
  • qammod()函数对信源进行调制,输入参数有两个,一个是信源x,一个是阶数M。
s1 = qammod(x, M);                    % 将原始信号x进行QAM调制
  • 我们在星座图中把同相位的点画在同一个圆里,这里借鉴高中所学的圆的参数方程来绘制。

x=rcos(\theta)\\ y=rsin(\theta)

t = 0:1e-2:2*pi;                      % 参数t用于绘制圆形
x1 = sqrt(2)*cos(t);                  % 绘制半径为sqrt(2)的圆形的x坐标
y1 = sqrt(2)*sin(t);                  % 绘制半径为sqrt(2)的圆形的y坐标
x2 = sqrt(10)*cos(t);                 % 绘制半径为sqrt(10)的圆形的x坐标
y2 = sqrt(10)*sin(t);                 % 绘制半径为sqrt(10)的圆形的y坐标
x3 = 3*sqrt(2)*cos(t);                % 绘制半径为3*sqrt(2)的圆形的x坐标
y3 = 3*sqrt(2)*sin(t);                % 绘制半径为3*sqrt(2)的圆形的y坐标

完整代码如下:

clc; clear;                           % 清除命令行和工作区变量M = 16;                               % QAM调制器的调制阶数
x = randi([0 M-1], 1000, 1);          % 随机生成1000个0到M-1之间的整数,作为原始信号t = 0:1e-2:2*pi;                      % 参数t用于绘制圆形
x1 = sqrt(2)*cos(t);                  % 绘制半径为sqrt(2)的圆形的x坐标
y1 = sqrt(2)*sin(t);                  % 绘制半径为sqrt(2)的圆形的y坐标
x2 = sqrt(10)*cos(t);                 % 绘制半径为sqrt(10)的圆形的x坐标
y2 = sqrt(10)*sin(t);                 % 绘制半径为sqrt(10)的圆形的y坐标
x3 = 3*sqrt(2)*cos(t);                % 绘制半径为3*sqrt(2)的圆形的x坐标
y3 = 3*sqrt(2)*sin(t);                % 绘制半径为3*sqrt(2)的圆形的y坐标s1 = qammod(x, M);                    % 将原始信号x进行QAM调制
scatterplot(s1);                      % 绘制QAM信号的星座图,横纵坐标分别表示信号实部和虚部
axis equal;                           % 设置横纵坐标比例相等
grid on;                              % 显示网格线
hold on;                              % 保持当前图形,并在其上添加新内容
plot(x1, y1);                         % 在当前图形上绘制半径为sqrt(2)的圆形
hold on;                              % 保持当前图形,并在其上添加新内容
plot(x2, y2);                         % 在当前图形上绘制半径为sqrt(10)的圆形
hold on;                              % 保持当前图形,并在其上添加新内容
plot(x3, y3);                         % 在当前图形上绘制半径为3*sqrt(2)的圆形
plot(x1, y1);                         % 再次绘制半径为sqrt(2)的圆形(为了使其覆盖之前绘制的圆形)
hold off;                             % 关闭“保持”模式,以便后续绘图不会影响当前图形

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部