【带 QAM 输入的通道容量】BPSK, QPSK, 8PSK, 16-QAM, 64-QAM, 32-QAM(Matlab代码实现)

文章介绍了正交幅度调制(QAM)在通信中的重要性,并概述了不同识别算法,如K-S检验、减法聚类和模糊C均值等方法。此外,它提供了一个Matlab代码示例,展示了如何基于QAM大小进行调制,涉及星座映射和SNR的影响。
摘要由CSDN通过智能技术生成

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

随着通信技术的快速发展,正交幅度调制 ( Quadrature Amplitude Modulation,QAM) 由于具

有高效的频谱利用率和较强的抗噪性能被广泛应用于现代通信系统中[1]。因此,实现对 QAM 信号的调制分类具有一定的应用价值。目前,针对 QAM 信号已经提出了多种识别

算法[2]。 文 献 [3]采 用 K - S ( Kolmogorov -Smirnov) 检验实现了对 3 种 QAM 信号的分类,但该方法要求信噪比已知; 文献[4]采用减法聚类完成了对 QAM 信号的识别,其中如何确定聚类半径是一个难点; 文献[5]通过模糊 C 均值构造出多个特征量,并采用 BP ( Back Propagation) 神经网络对其进行分类,然而该方法对高阶 QAM适应能力较差; 文献[

6]利用信号平均幅度半径作为特征量实现 QAM 信号的识别,但只适应于16QAM 和 64QAM 两种信号。

QAM 调制是通过基带信号对载波的幅值和相位进行联合调制的,所以调制信号中同时携带了相位和幅值信息。

全数字 QAM 调制器主要由解复用模块、星座映射模块、低通滤波模块这三部分组成,调制过程见图 2。

 

2中 QAM 调制系统的调制步骤如下:

1)输入二进制序列进入解复用器,在解复用器模块中完成帧头检测、系统信息识别、串并转换以及交织编码工作,输出已经完成交织编码的并行信号。

2)并行信号进入星座映射模块,完成矢量信号到星座图的转换,分别输出同相和正交的两路信号。

3)同相和正交的两路信号分别进入数字成型滤波器中,把数字基带脉冲信号滤波成型为接近模拟信号的正弦波。

4)两路经过成型的正弦波和载波信号相乘再进行和路,便完成了基带信号的 QAM 调制过程。

📚2 运行结果

 部分代码:

%% SNR affect 
% We assume 2sigma^2=1, i.e., noise power is normalized.
SNRlin= 10^(SNR/10);
SNRaff=abs(fading)*sqrt(SNRlin);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (QAMsize==2)||(QAMsize==4)||(QAMsize==16)||...
        (QAMsize==64)||(QAMsize==32) 
    h = modem.qammod('M', QAMsize, 'SymbolOrder', 'Gray','InputType', 'Bit');
elseif (QAMsize==8)
    h = modem.pskmod('M', QAMsize, 'SymbolOrder', 'Gray','InputType', 'Bit');
else
    error('the modulation size %d is not supported!',  QAMsize);
end
NormFactor = sqrt(QAMsize/sum(abs (h.Constellation).^2));
Constellation = NormFactor.*h.Constellation;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
C1 = zeros(1,16);  % BPSK Gaussi Hermite
C2 = zeros(16,16); % Two dimensional signals
Capforx = zeros(1,QAMsize);
if (QAMsize==2) % BPSK
    SNRaffBPSK = sqrt(2).*SNRaff;  % see page 363 of Digital Communications 5th A/sigma
    for m=1:16
        C1(m)=1/2*(w(m)*(1/sqrt(pi))*log2(2/(1+exp(-2*(sqrt(2)*x(m)+SNRaffBPSK)*SNRaffBPSK)))+...
                       w(m)*(1/sqrt(pi))*log2(2/(1+exp( 2*(sqrt(2)*x(m)-SNRaffBPSK)*SNRaffBPSK))));
    end
    InstCap = sum(C1);

elseif (QAMsize==4)||(QAMsize==16)||(QAMsize==64)||(QAMsize==8)||(QAMsize==32)
    for xindex = 1:QAMsize
        for m1=1:16
            for m2=1:16
                sumoverxprime = 0;
                for xprimeindex=1:QAMsize
                    sumoverxprime = sumoverxprime + ...
                    exp(-abs(SNRaff.*(Constellation(xindex)-Constellation(xprimeindex))+x(m1)+sqrt(-1).*x(m2)).^2 ...
                    +x(m1).^2+x(m2).^2);
                end
                C2(m1,m2)=1/(pi)*w(m1)*w(m2)*log2(sumoverxprime);
            end
        end
        Capforx(xindex) = sum(sum(C2,1),2);
    end
    InstCap = log2(QAMsize) - 1/QAMsize *sum (Capforx);               
else
    error('the modulation size %d is not supported!',  QAMsize);
end

%GassianCap = log2(1+SNRaff.^2);

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]葛战,李兵,孙磊,蒋鸿宇,周劼.基于星座图和密集连接网络的QAM信号识别[J].电子信息对抗技术,2023,38(01):43-48.

[2]熊小双.电力载波芯片全数字QAM调制器电路设计[J].现代电子技术,2023,46(08):33-37.DOI:10.16652/j.issn.1004-373x.2023.08.006.

🌈4 Matlab代码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值