2

在我的应用程序中,我使用 AVAudioRecorder 来检测来自麦克风的输入。但是,我需要创建一个高通滤波器,以便只记录更高音调的声音。我已经研究过 FFT,但我不知道如何实现它。所以,现在我正在寻找一种带有高通滤波器的 FFT。

任何帮助将不胜感激!谢谢!

4

2 回答 2

5

看看维基百科关于高通滤波器的文章,特别是关于算法实现的部分

对于懒惰的人,这是伪代码实现:

// Return RC high-pass filter output samples, given input samples,
// time interval dt, and time constant RC
function highpass(real[0..n] x, real dt, real RC)
    var real[0..n] y
    var real α := RC / (RC + dt)
    y[0] := x[0]
    for i from 1 to n
        y[i] := α * y[i-1] + α * (x[i] - x[i-1])
    return y
于 2010-01-21T17:47:40.977 回答
2

在这种情况下,使用 FFT 将是一个大锤解决方案。一个简单的 FIR 或 IIR 滤波器就足够了,但您需要先确定滤波器的设计参数,即截止频率(-3 dB 点)、通带纹波、阻带增益,以及您是否关心相位响应与否。

于 2010-01-21T18:47:50.093 回答