2

私のアプリでは、AVAudioRecorder を使用してマイクからの入力を検出しています。ただし、ハイパス フィルターを作成して、より高い音だけを登録する必要があります。FFT を調べましたが、実装方法がわかりません。そこで、ハイパス フィルターを使用して FFT をごまかそうとしています。

どんな助けでも大歓迎です!ありがとう!

4

2 に答える 2

5

ウィキペディアのハイパス フィルターに関する記事、特に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
于 2010-01-21T17:47:40.977 に答える
2

この場合、FFTを使用することは大ハンマーソリューションになります。単純な FIR または IIR フィルターで十分ですが、最初にフィルターの設計パラメーター、つまりカットオフ周波数 (-3 dB ポイント)、パスバンド リップル、ストップバンド ゲイン、およびフィルターを気にするかどうかを決定する必要があります。位相応答かどうか。

于 2010-01-21T18:47:50.093 に答える