如果我将 2 个 16 位有符号整数值相乘并将结果存储为 16 位有符号整数,去掉最低有效位,我试图弄清楚信号与量化噪声比 (SQNR) 是什么。由于这是有符号乘法,因此我将降低 15 位精度。
例如:
a(16 位有符号)* b(16 位有符号)= c(16 位有符号)没有 LSB。
为了更清楚地了解这之后的内容,我将结果“c”的许多连续值相加——这个和存储在一个无限长的有符号整数表示中。
在这种情况下如何计算 SQNR?
如果我将 2 个 16 位有符号整数值相乘并将结果存储为 16 位有符号整数,去掉最低有效位,我试图弄清楚信号与量化噪声比 (SQNR) 是什么。由于这是有符号乘法,因此我将降低 15 位精度。
例如:
a(16 位有符号)* b(16 位有符号)= c(16 位有符号)没有 LSB。
为了更清楚地了解这之后的内容,我将结果“c”的许多连续值相加——这个和存储在一个无限长的有符号整数表示中。
在这种情况下如何计算 SQNR?
当您将两个 16 位数字相乘时,您会得到“真正的”32 位数字,然后您截断以获得 16 位数字。截断时引入的噪声是随机值到(),其平均值为并且具有平均功率(平方的平均值). 如果您是舍入而不是截断,它将是一个随机值到, 平均约为(无偏差),并且具有平均功率. 这就是为什么舍入比截断更好的原因,但这是另一天的故事。
因此,截断噪声为. 您可以通过将截断的数据乘以(将 16 位值变成 32 位值),对它们进行平方,然后计算平均值。然后通过将信号功率除以截断噪声来计算 SQNR,.