在我的应用程序中,我使用AVAudioRecorder来检测来自麦克风的输入。但是,我需要创建一个高通滤波器,以便只录制更高音的声音。我研究过FFT,但我无法弄清楚如何实现它。所以,现在我正在寻找一种具有高通滤波器的FFT。iPhone麦克风高通滤波器
任何帮助将不胜感激!谢谢!
在我的应用程序中,我使用AVAudioRecorder来检测来自麦克风的输入。但是,我需要创建一个高通滤波器,以便只录制更高音的声音。我研究过FFT,但我无法弄清楚如何实现它。所以,现在我正在寻找一种具有高通滤波器的FFT。iPhone麦克风高通滤波器
任何帮助将不胜感激!谢谢!
看一看Wikipedia's article on High-pass filters,特别是section on algorithmic implementation of one。
对于懒,这里的伪代码实现:
// 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
使用FFT会在这种情况下大锤的解决方案。一个简单的FIR或IIR滤波器应该足够了,但是您需要首先确定滤波器的设计参数,即截止频率(-3 dB点),通带纹波,阻带增益以及您是否关心阶段响应与否。