我想以定义的采样率(44100Hz)对音乐信号执行 STFT。我想获得比最大可用频率范围更小的 FFT 结果(不是22050Hz,而是4000Hz),因此结果将具有更好的频率分辨率。所以我认为我应该对其进行下采样,但是如何下采样到与输入频率不成整数关系的频率(你不能离开第 k 个样本)?您是否进行某种插值来获取新样本的值?它如何影响信号?
我也知道我应该滤除高于8000Hz信号混叠的频率。在 STFT 中是否有某种与使用相关的过滤器?
我对过滤器的了解是,要获得更好(更清晰)的过滤器,您需要更多的系数,因此需要更多的时间来计算。我知道有 IIR 滤波器和 FIR 滤波器。我读到 IIR 过滤器可能不稳定,但如果我使用现成的实现(并且我认为它做得对),我应该关心它吗?
一次过滤整个信号(整个音频文件)会更好吗?如果我从 IIR 滤波器获得无限响应,并且我一次过滤整个信号,那么能量会在信号的末端部分被最模糊吗?
我还读到滤波器可能会对频率造成某种延迟,并且对于不同的频率会有所不同。您如何分析和补偿这种现象?
编辑:我发现你可以得到具有线性延迟的 FIR,而且现在它们比 IIR 更常用。但是还是有延迟,这是什么意思?频率事件(如音符)将在样本编号时间的后期发生?这个延迟会是什么?
Edit2:当我想降低采样率时,8000Hz我必须过滤,这样就不会有任何频率超过4000Hz. 这实际上是否可行,因为我查看了不同的 FIR 滤波器特性,它们似乎只是极大地抑制了阻带频率而不是消除它们?如果我在信号中只有一点高频,那么在下采样时信号看起来是否正常(混叠不会很明显)?