2017-12-14 29 views
1

私は、(ラップトップマイクからの)入力信号の周波数(第1高調波)を(リアルタイムで)見たいと思っています。私はFFTを計算する方法を探しました、私はリアルタイムでそれを見る必要があるtho、これを行う簡単な方法はありますか?入力信号の周波数をリアルタイムで確認する方法は?

+0

基本コンポーネントの大きさが他のどのコンポーネントよりもはるかに高く、比較的安定している場合は、ソフトウェア[Phase Locked Loop](https://en.m.wikipedia.org/wiki/Phase- locked_loop)。 –

+0

リッチ信号の第1高調波のみを「見る」ようにするには、ピッチ検出器が必要です。これはFFTマグニチュードピーク推定器とは異なります。 「簡単な」ピッチ検出器は非常に高い誤り率を有する。 – hotpaw2

+0

また、ビデオのリフレッシュレートは60 Hzである可能性があります。これはオーディオのリアルタイムよりもはるかに低速ですが、 – hotpaw2

答えて

2

FFTは、周波数を測定するための完全に正当な方法です。周波数の読み取り値を更新するレートでFFTを実行するだけで済みますので、通常はリア​​ルタイムで実行する必要はありません。それでも、現代のコンピュータでは、リアルタイムよりもFFTを行うことができます(IOW、オーディオサンプルによってI/Oが制限されます)。 FFT周波数測定に関する1つの問題は、FFTビンの周波数間隔が等しくなることです。つまり、高周波数では周波数分解能が高く、低周波では分解能が低くなります。低周波数を測定するには、実際に長いFFTが必要で、高周波数を測定するには、実際に短い周波数を使用できます。

周波数カウンタ(ゼロクロスをカウントする)を使用することもできますが、信号にノイズが含まれている場合や他の信号が存在する場合は、欠点があります。

0

Slot DFTを使用すると、stackoverflowの答えの1つとして提案されています(Doing FFT in realtime)。そこにもソースコードがあります。しかし、すでに書かれたコードに遭遇しない限り、簡単かつ簡単に実装することはできません。

関連する問題