Goertzel 算法为何使用整数 k?

问题描述 投票:0回答:1

在进行频率检测(例如dtmf)时,常用Goertzel算法。预先计算许多参数以供后续使用。这些参数之一通常称为 k,只是感兴趣的频率/采样频率 * bin 大小。

此参数随后会舍入为最接近的整数,然后再用于计算其他一些参数。

现在,我的问题是为什么我们对 k 进行舍入?在实际计算中,我们使用余弦(2 * Pi * k/bin 大小),因此在应用余弦之前我们不会通过对 k 进行舍入来获得任何速度(余弦的结果仍然是浮点/双精度/其他类型)您的语言使用相当高精度的数字)。

signal-processing dtmf
1个回答
0
投票

仍然不确定为什么建议使用整数 k,但我在检测某些频率时遇到问题,并发现这些频率从双精度 (c) 到整数精度 k 存在较大舍入误差。所以,我决定使用双精度 k 来计算我的欧米茄和系数......你瞧,这些问题就消失了:)

© www.soinside.com 2019 - 2024. All rights reserved.