私のアプリでは、AVAudioRecorder を使用してマイクからの入力を検出しています。ただし、ハイパス フィルターを作成して、より高い音だけを登録する必要があります。FFT を調べましたが、実装方法がわかりません。そこで、ハイパス フィルターを使用して FFT をごまかそうとしています。
どんな助けでも大歓迎です!ありがとう!
私のアプリでは、AVAudioRecorder を使用してマイクからの入力を検出しています。ただし、ハイパス フィルターを作成して、より高い音だけを登録する必要があります。FFT を調べましたが、実装方法がわかりません。そこで、ハイパス フィルターを使用して FFT をごまかそうとしています。
どんな助けでも大歓迎です!ありがとう!
ウィキペディアのハイパス フィルターに関する記事、特に1 つのアルゴリズム実装に関するセクションをご覧ください。
怠け者のために、擬似コードの実装を次に示します。
// 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 ポイント)、パスバンド リップル、ストップバンド ゲイン、およびフィルターを気にするかどうかを決定する必要があります。位相応答かどうか。