将 2 个 16 位有符号整数相乘并截断结果时的 SQNR?

信息处理 噪音
2022-02-02 17:37:32

如果我将 2 个 16 位有符号整数值相乘并将结果存储为 16 位有符号整数,去掉最低有效位,我试图弄清楚信号与量化噪声比 (SQNR) 是什么。由于这是有符号乘法,因此我将降低 15 位精度。

例如:

a(16 位有符号)* b(16 位有符号)= c(16 位有符号)没有 LSB。

为了更清楚地了解这之后的内容,我将结果“c”的许多连续值相加——这个和存储在一个无限长的有符号整数表示中。

在这种情况下如何计算 SQNR?

1个回答

当您将两个 16 位数字相乘时,您会得到“真正的”32 位数字,然后您截断以获得 16 位数字。截断时引入的噪声是随机值02161(65535),其平均值为32767.5并且具有平均功率(平方的平均值)1.43E9. 如果您是舍入而不是截断,它将是一个随机值(215)2151, 平均约为0(无偏差),并且具有平均功率3.58E8. 这就是为什么舍入比截断更好的原因,但这是另一天的故事。

因此,截断噪声为1.43E9. 您可以通过将截断的数据乘以216(将 16 位值变成 32 位值),对它们进行平方,然后计算平均值。然后通过将信号功率除以截断噪声来计算 SQNR,1.43E9.