赞
踩
正交幅度调制(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这种调制解调方式进行仿真。
%%%%%%主函数部分%%%%% % 定义参数 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 (理论)');
v
点击下方名片
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。