YaZhibiangbiang 2023-04-17 16:11 采纳率: 0%
浏览 22

matlab的qam函数运行的结果与老版函数不同

我在2013版本的matlab运行一下这段代码时

h=modem.qammod('M',mod_num,'InputType','bit','symbolorder','Gray');%qam调制
s=modulate(h,msg);

输出的s为1*40的矩阵。
然后在初始条件相同的情况下,在2022a版本运行相同性质的代码(由于新版本没有“modem.qammod”,所以我按照论坛里的修改方式改了代码),代码如下:

 s=qammod(msg,mod_num);

然而,修改之后s的输出为2*40的矩阵,这是为什么呢?

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-04-17 17:08
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    在 Matlab R2022a 中,qammod 函数的默认参数已经发生了变化,可能会导致您得到的输出与老版本不同。具体而言,新版本的 qammod 函数默认使用 "Normalized" 符号幅度缩放方式,而旧版本默认使用 "Average power" 缩放方式。

    为了使您的代码在新版本中产生与旧版本相同的结果,您需要将 qammod 函数的参数修改为与旧版本相同的选项。具体而言,您需要将 qammod 函数的参数修改为:

    s = qammod(msg, mod_num, 'gray', 'UnitAveragePower', true);
    

    这样,您可以使用 "Average power" 缩放方式并开启灰度映射,得到与旧版本相同的输出。

    希望这个解决方案能够帮到您!


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 创建了问题 4月17日