【MATLAB源码-第2期】基于matlab的64QAM的理论误码率和实际误码率对比仿真,以及不同信噪比下的星座图展示。

107 篇文章 3 订阅
53 篇文章 0 订阅


1.算法描述

正交幅度调制(QAM,Quadrature Amplitude Modulation)是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度(π/2)的正弦波,因此被称作正交载波。这种调制方式因此而得名。

同其它调制方式类似,QAM通过载波某些参数的变化传输信息。在QAM中,数据信号由相互正交的两个载波的幅度变化表示。

模拟信号的相位调制和数字信号的PSK可以被认为是幅度不变、仅有相位变化的特殊的正交幅度调制。由此,模拟信号频率调制和数字信号FSK也可以被认为是相位调制(PSK)的特例,因为它们本质上就是相位调制。这里主要讨论数字信号的QAM,虽然模拟信号QAM也有很多应用,例如NTSC和PAL制式的电视系统就利用正交的载波传输不同的颜色分量。

类似于其他数字调制方式,QAM发射信号集可以用星座图方便地表示。星座图上每一个星座点对应发射信号集中的一个信号。设正交幅度调制的发射信号集大小为 N,称之为N-QAM。星座点经常采用水平和垂直方向等间距的正方网格配置,当然也有其他的配置方式。数字通信中数据常采用二进制表示,这种情况下星座点的个数一般是2的幂。常见的QAM形式有16-QAM、64-QAM、256-QAM,以及未来5G采用之512-QAM及1024-QAM。星座点数越多,每个符号能传输的信息量就越大。但是,如果在星座图的平均能量保持不变的情况下增加星座点,会使星座点之间的距离变小,进而导致误码率上升。因此高阶星座图的可靠性比低阶要差。

当对数据传输速率的要求高过8-PSK能提供的上限时,一般采用QAM的调制方式。因为QAM的星座点比PSK的星座点更分散,星座点之间的距离因之更大,所以能提供更好的传输性能。但是QAM星座点的幅度不是完全相同的,所以它的解调器需要能同时正确检测相位和幅度,不像PSK解调只需要检测相位,这增加了QAM解调器的复杂性。在本文中,我们主要对64-QAM这种调制解调方式进行仿真。

2.仿真结果演示

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

3.关键代码展示

%%%%%%主函数部分%%%%%

% 定义参数
order = 64; %调制阶数
EbN0_dB = 0:1:30; %信噪比范围
EbN0 = 10.^(EbN0_dB/10);
BER_theory = (4/6)*(1-1/8)*qfunc(sqrt(3 * 6 * EbN0 / (64 - 1))); %64QAM理论误码率计算

N = 100002; % 发送bit数目100002 确保可以被6整除,因为64QAM调制一个符号是6个bit
tx_bits = randi([0 1], 1, N); %生成发送的bit

% 创建灰度映射
gray_mapping = gray_encode_64ary;

tx_modulated_symbols = qam_modulation(tx_bits, order, gray_mapping);%64QAM调制
BER = zeros(1, length(EbN0)); %初始化误码率数组

for i = 1:length(EbN0) %循环遍历信噪比
    rx_modulated_symbols = awgn(tx_modulated_symbols, EbN0_dB(i)); %经过AWGN信道
    rx_bits = qam_demodulation(rx_modulated_symbols, order, gray_mapping); % 解调
    BER(i) = sum(tx_bits ~= rx_bits) / N; % 计算误码率
end

% 星座图
figure(1);
scatter(real(tx_modulated_symbols), imag(tx_modulated_symbols),'ro','filled');
title('发射端64QAM星座图');
grid on;

figure(2);
scatter(real(rx_modulated_symbols), imag(rx_modulated_symbols));
title('接收端64QAM星座图');
grid on;

% 绘制误码率曲线
figure(3);
semilogy(EbN0_dB, BER, 'bo-', EbN0_dB, BER_theory, 'rs-');
xlabel('SNR (dB)');
ylabel('BER');
title('64QAM实际误码率曲线与理论误码率曲线对比');
legend( '64QAM (仿真)', '64QAM (理论)');

4.MATLAB源码获取

v
点击下方名片

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值