我正在写一个软件模拟合成器。我一直在使用Overlap-add 方法来使用 FFT 廉价地实现低通滤波器。
我的低通滤波器有一个恒定的脉冲响应;一个恒定的截止频率。现在我想让在播放音符时改变截止频率成为可能(这是模拟合成器的共同特征)。
我相信在仍然使用循环卷积定理技巧时这是不可能的(让我们使用 FFT 来实现 FIR 滤波器)。
- 我这样想对吗?
- 如果是这样,我可以使用其他一些技巧来有效地实现截止频率变化(“扫描”)的带通滤波器吗?
我正在写一个软件模拟合成器。我一直在使用Overlap-add 方法来使用 FFT 廉价地实现低通滤波器。
我的低通滤波器有一个恒定的脉冲响应;一个恒定的截止频率。现在我想让在播放音符时改变截止频率成为可能(这是模拟合成器的共同特征)。
我相信在仍然使用循环卷积定理技巧时这是不可能的(让我们使用 FFT 来实现 FIR 滤波器)。
这里的问题不是应用 FFT 进行滤波,而是您想使用线性时不变(LTI) 系统的方法对线性时变系统进行建模。
如果您使用线性卷积而不是循环卷积+重叠相加,您仍然会面临必须将音频信号划分为脉冲响应恒定的数据块的问题。
一种解决方案是使数据块足够短,以便脉冲响应在一个数据块期间可以被认为是准不变的。例如,如果您的音频采样率为 44.100 Hz,而您的 FFT 长度为 1024,则每个脉冲响应变化都需要近似为每秒 43 个离散步长。