matlab绘制16QAM星座图

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

Octave onlineicon-default.png?t=N7T8https://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;                             % 关闭“保持”模式,以便后续绘图不会影响当前图形

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值