我正试着找一个吉他弦的音高。声音通过麦克风以44100的采样率进入。我使用2048个叮咬作为缓冲区大小。考虑到奈奎斯特速率,使用更大的缓冲区大小是没有意义的。在收到数据后,我申请了汉宁窗口......这就是我感到困惑的地方。我应该在时域中使用低通滤波器还是首先采用FFT?如果我先采用FFT,那么仅使用前半部分样本就不会更容易,而忽略另一半,因为我需要的频率范围为50-1000?在FFT之后,我将使用谐波乘积谱来寻找基频。
答案 0 :(得分:2)
你的建议是有道理的:如果你不需要低频,你不需要使用长样本。对于长采样,您可以获得频率分辨率,这在某些情况下可能很有用,但是您会失去时间分辨率(从某种意义上说,连续的采样距离更远)。
一些没有意义的事情:
1)在FFT之前的计算中使用低通数字滤波器(我假设这是你的意思)只需要额外的计算时间,并没有真正获得任何东西。
2)“考虑到奈奎斯特速率,没有必要使用更大的缓冲区大小”:这些并不是真正相关的。奈奎斯特速率决定了FFT的最大频率,缓冲区大小决定了频率分辨率,因此也决定了最低频率。
答案 1 :(得分:1)
使用的数据越少或FFT越短,得到的FFT频率分辨率就越低。
答案 2 :(得分:0)
这实际上取决于你的音高检测算法,但为什么你会首先使用低通滤波器?
此外,吉他通常会产生超过1000Hz的光谱信息。关于高E弦的注意事项很容易在4-5kHz及以上产生谐波,这些谐波正是使HPS变得美观和清晰的原因。
答案 3 :(得分:0)
从我读的here开始,吉他的音量范围从82.4(开放的第6弦)到659.2(第1弦的第12音品),最低的2音符之差约为5Hz。 如果可能的话,我会在麦克风之后但在采样电路之前应用模拟滤波器。如果不这样做,通常在使用Hanning函数对所有内容进行整形之前应用FIR滤波器。您也可以使用抽取来降低采样率,或者只是选择较低的采样率来开始 由于您无论如何都在进行FFT,因此只需丢弃高于1000 Hz的结果。遗憾的是,你无法削减样本数量 - 降低采样率会降低频率分辨率。
在44100 Hz处的2048个样本将提供与22050 Hz处的1024个样本相同的分辨率 与11025 Hz的512个样本相同。