在我的应用程序中,我使用AVAudioRecorder来检测来自麦克风的输入。但是,我需要创建一个高通滤波器,这样我才能注册更高音调的声音。我看过FFT,但我无法弄清楚如何实现它。所以,现在我正在寻找一种带有高通滤波器的FFT。
任何帮助将不胜感激!谢谢!
答案 0 :(得分:5)
请查看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
答案 1 :(得分:2)
在这种情况下,使用FFT将是一个大锤解决方案。一个简单的FIR或IIR滤波器就足够了,但你需要首先确定滤波器的设计参数,即截止频率(-3 dB点),通带纹波,阻带增益,以及你是否关心阶段响应与否。