問題タブ [spectrogram]
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.
python - スペクトログラムのような色の行列の 2D プロット
Python を使用して、次のような 2D 行列をプロットする方法A[i,j]
:
i
は x 軸ですj
はy軸ですA[i,j]
色で描画する必要がある 0 から 100 までの値です (例: 0=青、100=赤)
そのためのPython関数はありますか?
(NB: などのスペクトログラムを実行する関数は必要ありませんspecgram
。信号の FFT を自分で計算したいためです。したがって、行列を色でプロットする関数のみが必要です)
matlab - wav ファイルのスペクトログラム図をループで保存する
非常に基本的な音声認識プロジェクトのために、後でそれらを単語サンプルと比較できるように、スペクトログラムを生成しようとしています。これはループで行われています。コードは次のとおりです。
私の問題は最後の 2 行にあります。スペクトログラムの図を .fig ファイルとして保存し (後で比較するためのより良い提案がない限り)、baseFileName と同じ名前を付けます。私はしばらくの間グーグルで調べてきましたが、フォーマットがわかりにくく、スペクトログラムが図として保存されることについてはあまりありません。
すべての数字がループ内に表示されなかった場合はそれが望ましいですが、対処できます。
編集:これをマットファイルとして保存する方が良いでしょうか?
matlab - Matlab のスペクトログラムの値を実際の範囲にスケーリングするには
走る
私は得る
0 から 1 の正規化された範囲ではなく、0 から 180 Hz の範囲を取得したい。
ただし、値は変更されません。
実行に失敗しました
範囲を正規化された範囲から実際の範囲にスケーリングするにはどうすればよいですか?
audio - スペクトログラム - 何か不足していますか?
次の信号があります。
スペクトログラム アルゴリズムを計算しようとしていますが、正しくやっているとは思えません..
私は以下を計算しました:
1) STFT (サイズ 256、オーバーラップ 128) 2) '10 * log10(sqrt(re * re + im + im) を使用してログを計算
これは私が得る結果です:
しかしpylab
、Pythonで使用する場合(同じ信号に対して):
x = pl.specgram(signal)
次の結果が得られます。
を使用するmatplotlib
と、次のようになります。
明らかに、これらは非常に異なる結果です.なぜこれらを取得しているのかわかりません.信号処理とスペクトログラムは初めてです。誰かが助けてくれることを願っています
編集:
これがPythonコードです。
python - Python - 範囲間の特定の周波数を削除する
私はスペクトログラムを持っています:
スペクトログラムをクリーンアップしたいので、特定の範囲内 (つまり、この例では 2627 ~ 3939) の周波数のみをキャプチャし、この周波数より下にあるすべてのブロックを削除します。私の全体的な目標は、この周波数範囲内にあり、識別できる 4 つのセグメントのみを残すことです。
これまでの私のコードは次のとおりです。
問題は、Python を使用してこれを行う方法がわからないことです。範囲 (2627 ~ 3939) はわかっていますが、2D 配列全体を反復処理してすべてのブロックを合計するか、スペクトログラム内の各ブロックについて周波数を計算し、それがしきい値よりも高い場合はそれを維持します。それ以外の場合、値は 0.0 になりますか?
各ビンを合計すると、次のようになります。
これらのブロックを保持する必要がありますが、これら以外のすべてのブロックを削除したいと考えています。
誰かが私を助けてくれることを願っています!