問題タブ [fft]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
12 に答える
61335 参照

audio - リアルタイムピッチ検出

歌っているユーザーのピッチ検出をリアルタイムで実行しようとしていますが、多くの問題が発生しています。FFT( FFT問題(ランダムな結果を返す))や自己相関(自己相関ピッチ検出はマイク入力でランダムな結果を返す)など、さまざまな方法を試しましたが、良い結果を得る方法がないようです。誰かがリアルタイムのピッチ追跡の方法や、私がすでに持っている方法を改善する方法を提案できますか?リアルタイムのピッチ検出に適したC/C++メソッドが見つからないようです。

ありがとう、

ニール。

編集:注意するために、マイク入力データが正しいこと、および正弦波を使用した場合の結果が多かれ少なかれ正しいピッチであることを確認しました。

編集:申し訳ありませんが、これは遅れていますが、現時点では、結果の配列と各インデックスから値を取り出し、X軸にインデックスをプロットし、Y軸に値をプロットすることで自動照合を視覚化しています(両方をで割っています) 100000か何か、そしてOpenGLを使用しているim)、データをVSTホストにプラグインし、VSTプラグインを使用することは私には選択肢ではありません。現時点では、ランダムなドットのように見えます。私はそれを正しく行っていますか、それともそれを行うためのコードを教えてください、または生のオーディオデータと自己相関データを視覚化する方法を理解するのを手伝ってください。

0 投票する
2 に答える
5011 参照

image-processing - 異なる次元の 2 つの画像のスペクトルを乗算するにはどうすればよいですか?

これは「プログラミング」の問題ではありません。しかし、それはこのコミュニティで広く知られ、理解されていることだと確信しています。

画像 x と、はるかに小さい画像 y があり、それらの FFT を乗算して 2 つを畳み込む必要があります。しかし、それらは同じサイズではないため、周波数領域の乗算を行う方法がわかりません。

x (次元 4096 x 4096 の整数行列) の (2 次元) FFT を取得すると、周波数領域表現 X (複素数の行列であり、次元は 2048 x 2048 だと思います) が得られます。 )。

同様に、(次元 64 x 64 の整数行列である y の 2 次元 FFT を取得します。これにより、周波数領域表現 Y (複素数の行列でもあり、次元は 32 であると思います) が得られます。 ×32)。

Numerical Recipes で fourn 関数を使用しているため、入力行列 x と y を 1 次元配列に折りたたむ必要があり、これが離散フーリエ変換 X と Y に置き換えられます。画像の二次元問題、私は一次元配列で作業しています。

まったく同じ次元の x と y の 2 つの画像を畳み込みたいとします。それはすべて非常に簡単です:

しかし、X と Y の長さが異なる場合、どのように乗算を行うのでしょうか?

1 つの可能性は、x と同じ次元になるように y をパディングすることです。しかし、これは恐ろしく非効率的です。別の可能性は、Y をパディングして X と同じ次元にすることです。しかし、これが周波数空間で何を意味するのかわかりません。

この質問の別の言い方は次のとおりです。FFT を使用して非常に異なる次元の 2 つの画像を畳み込みたい場合、それらのスペクトル (周波数領域表現) の乗算を行うことができます。その乗算を行うにはどうすればよいですか?

ありがとう、

〜マイケル。

0 投票する
5 に答える
5783 参照

iphone - iPhone:DSP /フーリエ変換/周波数領域を実行するCPUパワー?

MICオーディオを継続的に分析し(スニッパーや事前に録音されたサンプルだけでなく)、周波数グラフを表示して、オーディオの特定の側面を除外したいと考えています。iPhoneはそのために十分強力ですか?GoogleとiPhoneの音声認識、Shazaamやその他の音楽認識アプリ、ギターチューナーアプリを考えると、答えはイエスだと思います。ただし、どのような制限に対処する必要があるのか​​わかりません。

誰かがこのエリアで遊んでいますか?

0 投票する
4 に答える
9019 参照

iphone - 楽器チューナー用のAurioTouch&FFT

私は単純なチューナーを作成しようとしています(いいえ、さらに別のチューナーアプリを作成するためではありません)、AurioTouchサンプルソースを調べています(誰かがこのコードにコメントしようとしましたか??)。

私の心配は、周波数領域のグラフを見ると、aurioTouchが実際にはうまく機能していないように見えることです。楽器で1つの音を演奏しましたが、音の適切な周波数に1つの弦のピークがある、きちんと整理された小さな周波数のセットが表示されません。

基礎となるコードが機能しているかどうか、またはそれが単なる粗いサンプルであるかどうかを知るのに十分なaurioTouchを使用した人はいますか?

私が持っている他のオプションは、FFTWまたはKISSFFTを使用することです。誰かがそれらの経験がありますか?

ありがとう。

0 投票する
2 に答える
2706 参照

algorithm - フーリエ除算アルゴリズムの背後にあるロジックは何ですか?

ウィキペディアから:フーリエ除算.

これは同じスクリーンショットです: 代替テキスト (フル解像度で表示)

このアルゴリズムの背後にあるロジックは何ですか?

非常に大きな数の割り算に使用できることは知っていますが、正確にはどのように機能するのでしょうか?

0 投票する
5 に答える
13532 参照

audio - スマートフォンでの音符のピッチ認識

低速のCPU、コードサイズ、RAMなどの限られたリソースで、電子チューナーやソフトウェアチューナーと同様に、音符のピッチを検出するのに最適な方法はありますか?

使用する必要があります:

  • キスFFT
  • FFTW
  • 離散ウェーブレット変換
  • 自己相関
  • ゼロクロッシング分析
  • オクターブ間隔のフィルター

他の?

一言で言えば、私がやろうとしているのは、任意の(合理的な)楽器で演奏された、中央Cから2オクターブ下から2オクターブ上にある単一の音符を認識することです。半音の20%以内にしたいのですが、つまり、ユーザーがフラットすぎたりシャープすぎたりする場合は、それを区別する必要があります。ただし、チューニングに必要な精度は必要ありません。

0 投票する
3 に答える
22917 参照

c++ - FFTを使用したリアルタイムのピッチ検出

C++を使用してリアルタイムのピッチ検出を行おうとしています。他のすべてがうまくいかなかったので、performous(http://performous.org/ )からいくつかのコードをテストしています。私はこれがうまくいくことを確かに知っています、しかし私はそれをうまく動かすことができません。私はこれを数週間試しましたが、ピッチ検出コードを機能させることができませんでした。

0 投票する
2 に答える
8063 参照

math - Matlabで信号の低周波数バージョンを生成するにはどうすればよいですか?

サイン入力を使用して、周波数を変更し、スペクトル内のいくつかの低い周波数をカットして、メイン周波数をゼロにシフトしようとしました。信号はfftshiftされていないので、fftベクトルの最初と最後でいくつかのサンプルを削除することでそれを試みました。

しかし、期待どおりに機能しませんでした。また、スペクトルの中央部分を削除しようとしましたが、より高い周波数の正弦波も使用しました。

それを正しくする方法は?

0 投票する
1 に答える
936 参照

audio - スマートフォンでの音符のピッチ認識、pt。2

前の質問のフォローアップとして、スマートフォンアプリケーションで特定の音符を検出したい場合、着信音がその音符であるかどうかを知るだけで、ある程度のあいまいさがあり、 xセントオフキーであることに注意してください。

それを考えると、速度と精度の点で他の方法よりも優れた方法はありますか?つまり、探しているメモがたとえば#C3であることを知ることで、そのメモが存在するかどうかを判断するのに最適な方法はありますか?すべての波形を分離してから基本周波数の結果を確認するよりも、1つの音符を検索する方が簡単だと思います。

私の最初の質問への回答で、ある回答者は、メモが特定の範囲内にあることがわかっている場合、自己相関がうまく機能する可能性があると提案しました。特定の音符(+/- xセント)の有無を確認するだけでよい場合、自己相関がさらにうまく機能するのではないかと思います。

それらの方法は次のとおりです。

  • キスFFT
  • FFTW
  • 離散ウェーブレット変換
  • 自己相関
  • ゼロクロッシング分析
  • オクターブ間隔のフィルター
  • DWT

どんな考えでもいただければ幸いです。

0 投票する
5 に答える
101140 参照

math - 信号のスペクトル解析を行う際のフーリエ変換 (FFT) の単位

私の質問は、信号のスペクトル分析を行った結果、または信号を FFT に投入し、適切な数値パッケージを使用して結果を解釈した結果の物理的な意味に関係しています。

具体的には:

  • 時変電圧 v(t) などの信号を受け取る
  • それをFFTに投げます(複素数のシーケンスが返されます)
  • ここでモジュラス (abs) を取り、結果を 2 乗します。つまり |fft(v)|^2 です。

これで、y 軸に実数が表示されました。これらをスペクトル係数と呼びましょうか。

  • サンプリング解像度を使用して、クックブックのレシピに従い、スペクトル係数を周波数に関連付けます。
  • この時点で、x 軸に周波数を持つ周波数スペクトル g(w) がありますが、y 軸にはどのような物理単位がありますか?

私の理解では、この周波数スペクトルは、電圧信号にさまざまな周波数がどれだけ存在するかを示しています。これらは、元の信号を再構成するために必要なさまざまな周波数のサインとコサインの係数であるという意味でスペクトル係数です。

最初の質問は、これらのスペクトル係数の UNITS は何ですか?

これが重要な理由は、スペクトル係数が非常に小さい場合と非常に大きい場合があるためです。そのため、dB スケールを使用してそれらを表現したいと考えています。

しかし、そのためには、次の選択をしなければなりません。

  • 電圧などのフィールド測定に対応する 20log10 dB 変換を使用します。
  • または、電力などのエネルギー測定に対応する 10log10 dB 変換を使用します。

どのスケーリングを使用するかは、単位が何であるかによって異なります。

これに光を当てていただければ幸いです。