スペクトログラム C++ ライブラリ
-
22-09-2019 - |
質問
C++ / Qt での現在のプロジェクトには、信号 (基本的に double の配列) からスペクトログラムを計算できるライブラリ (LGPL が推奨) が必要です。GUI部分にはすでにQwtを使用しています。
助言がありますか?ありがとう。
解決
独自のスペクトログラムを組み立てるのは非常に簡単です。手順は次のとおりです。
- window 関数 (かなり些細な、 例えば。ハニング)
- FFT(FFTWは 良い選択ですが、ライセンスが 問題の場合は、キスFFTまたは、 類似)
- 対数マグニチュードの計算 周波数領域成分数 (些細なこと:log(sqrt(re * re + im * im))
他のヒント
「周波数対時間のプロットを作成するにはどうすればよいですか?」 に、信号からスペクトログラムを計算できるライブラリをいくつかリストします。
私自身の回答からコピーして貼り付けました。
生成するいくつかのソースコード スペクトログラム / 滝のプロット 音声データから:
- SoX - サウンド交換 含まれています スペクトログラムのソースコード
- 大胆さ 含まれています スペクトログラムのソースコード
- グルファー ウォーターフォールスペクトル表示スペクトルソースコードが含まれています
- fftw を使用して計算するソース コード スペクトログラム オーディオストリームの
- OpenAL と fftw を使用して計算するソース コードの詳細 スペクトログラム オーディオストリームの場合
- 「C# のスペクトログラムを使用したサウンド起動レコーダー」 ジェフ・モートン著
- トポグラフィカ 含まれているようです スペクトログラムのソースコード
- iTunes 用スペクトログラフ
画像からスペクトログラムへ 上記のユーティリティとは逆の方向に進みます。
あなたはFFTW(fftw.org)スペクトログラムを計算するために、あなたはまだデータをプロットする必要があります使用することができ、それが問題になることはありません。
現在のページからFFTのコードを使用することができます>。それは、効率のためのC ++テンプレートメタプログラミングを使用しています。完全なソースは、ここで、著者によって提供さします。
これはこれを含めるようにする示唆されましたテンプレートの使用のために固有にコード(フレンドリ入力)コード
所属していません StackOverflow