【问题标题】:Generate 16 QAM signal生成 16 QAM 信号
【发布时间】:2015-08-04 21:05:45
【问题描述】:

我知道使用以下方法生成 QPSK 信号

TxS=round(rand(1,N))*2-1;  % QPSK symbols are transmitted symbols
TxS=TxS+sqrt(-1)*(round(rand(1,N))*2-1);

在上面,符号是 2 个字母 +1/-1。 但我不明白如何为相同的字母空间生成 16 正交幅度调制信号?可能吗?或者通常的生成方式是什么?

另外,使用复杂信号而不是真实信号是一种做法吗?

【问题讨论】:

    标签: matlab signal-processing software-defined-radio


    【解决方案1】:

    看看这个: http://www.mathworks.com/help/comm/ref/comm.rectangularqamdemodulator-class.html

    hMod = comm.RectangularQAMModulator('ModulationOrder',16);
    dataIn = randi([0 15],10000,1);
    txSig = step(hMod,dataIn);
    

    你也可以使用:

    TxS = (randi(4,N,1)*2-5)+i*(randi(4,N,1)*2-5)
    

    【讨论】:

    • 我没有这个模块 - comm.RectangularQAMModulator。那么,有没有其他办法呢?
    • 这是来自通信系统工具箱。您可以使用randi(4,N,1) 生成一个从 1 到 4 的随机整数向量,它们会调整两个分量的范围和比例。然后像你一样添加它们。
    • 非常感谢。我有一个概念性问题,它不属于这个问题的一部分。如果我想为 64-QAM 生成,那么我将使用 Randi(8,N,1) 吗?另外,如果我只想要真实信号,那么可以忽略想象并仅使用 TxS = (Randi(4,N,1)*2-5) 吗?还是经常使用复杂的方法?
    • @SKM:如果你忽略虚部,你就不会有正交。复数表示只是正交编码两个分量,就好像它们是实部和虚部一样,因为实部和虚部也彼此正交。
    • @SKM:不客气。是的,您将使用 8 来表示 64 QAM。对于您的另一个问题,所有信号都是真实的。这只是基带表示。复数部分仅代表正交分量,它将转化为通带中的 90 度相移。
    【解决方案2】:

    是的,通常使用复数(表示 I/Q(同相/正交)平面)而不是实数。这是因为在软件定义无线电中,您通常会考虑复杂的基带。

    当然,您不能仅用两个维度和两个值来表示 16 个点。您可能想阅读数字通信理论。

    【讨论】:

      猜你喜欢
      • 2019-12-13
      • 2020-09-28
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2016-02-15
      相关资源
      最近更新 更多