fft と解像度に関するウィキペディアの記事とスタックオーバーフローの記事をすべて読みました。ただし、大きな遅延の問題を発生させずに高解像度の周波数を取得する方法を学ぶのに役立つものは何もありません.
信号処理を正しく理解している場合:
サンプリング レートは 44,100 で、ブロック数は 256 です。その場合、周波数分解能は、FFT を使用した周波数ビンごとに 44,100/2/256 = 86.1 Hz になります。
http://www.tunelab-world.com/やhttp://www.spectraplus.com/のような、周波数を 0.01 Hz まで測定できる例をよく見かけます。
上記の方法でそれを行った場合、そのような解像度を得るには 4410,000 個のビンが必要になります。44,100 のサンプリング レートでは、入力からデータを入力するのに 100 秒かかります。
私は何かが欠けていることを知っていますが、何がわかりません。
どうすれば信号を取得し、膨大な数のビンを取得したり、永遠に待機したりすることなく、そのような精度でグラフを描画したり、ピークの周波数を表示したりできますか?
よろしくお願いします。