周波数対時間プロットを作成するにはどうすればよいですか?


9

私はEEではなく化学エンジニアなので、これは少し難しいです。

振幅と時間のデータを取得して、周波数と時間に変換する方法を理解しようとしています。私の最初の本能は、データをチャンクにスライスし、各チャンクでFFTを実行し、それをプロットすることです。残念ながら、各スライスの継続時間がゼロに近づくと、正確な周波数情報を取得するのに十分な情報がなくなります(低周波数には非常に小さなタイムスライス以上のものが必要です)。だから...どうすればいいですか?これは誰かがすでに解決しているある種の有名な問題だと確信しています。

これが私が探している一種の変形で、音波で示されています(ピアノのノートG)。ご覧のとおり、このグラフは3つの軸として表示され、3番目の軸は色で表されています。

ありがとう!

ここに画像の説明を入力してください

回答:


5

時間対周波数分解能はよく知られた問題であり、実際にそれを克服するためのアプローチがあります。オーディオ信号の場合、一般的に使用される手法には次のようなものがあります。適応解像度(さまざまな時間/周波数構成で分析し、結果にパッチを当てる-Wen X.およびM. Sandler、「複数のフーリエ変換を使用した複合スペクトログラム」)過剰完了ベースのウェーブレット/分解; 位相情報を使用して、周波数ピーク(IFgram)の正確な位置を抽出します。

ただし、表示したグラフはこれらの手法の一部を使用していないようです。これはあなたが探しているものではないのではないかと思います。横軸に「にじみ」が見られるようになり(たとえば、t = 1.2sの場合)、これは、分析がチャンク間の高いオーバーラップで行われたことの確かな兆候です。

実際、フレームのオーバーラップを許可する場合、チャンクの継続時間と1秒あたりの分析フレームの数を互いにリンクする必要はありません。したがって、40msの分析フレームを使用する場合、グリッドは次のようにする必要はありません。

フレーム1:t = 0..t = 40ms; フレーム2:t = 40ms..t = 80ms

それは非常によくある:

フレーム1:t = 0..t = 40ms; フレーム2:t = 10ms..t = 50ms

このオーバーラップにより、FFTウィンドウサイズをあまり小さくしなくても、時間分解能が高くなるような錯覚を与えることができます。これは時間軸上のイベントを正確に特定するのに役立つだけであることに注意してください-2つのイベントを時間内に解決するのに役立ちません... FFTサイズを増やすのと同じように、周波数ピークの場所を特定するのに役立つかもしれませんが、 2つの隣接する周波数ピークの分解能。


どのようにして他の方向に進みますか(スペクトログラムからオーディオ信号に変換します)
ピート2015

4

はい、多くの人々が時間-周波数分析に取り組んできました。

「データをチャンクにスライスし、各チャンクでFFTを実行する」というアプローチは良い考えです。FFTを実行する直前に、各チャンクに「ウィンドウ関数」を適用すると、多くのアーティファクトを回避できます。チャンクのオーバーラップを許可することも役立ちます。これらの微調整の後、Gabor変換が得られます。これは、最も人気のある短時間フーリエ変換(STFT)のようです。

すでに指摘したように、そしてウィキペディアの記事が指摘しているように、すべての短時間フーリエ変換手法にはトレードオフがあります。

  • あなたは非常に短い断片に時系列を切断した場合、あなたは正確にと高精度の時刻情報を取得するのトーンが開始され、停止しますが、周波数情報が非常にぼやけています。
  • 時系列を非常に長い断片にカットすると、トーンの正確な周波数に関する非常に正確な周波数情報が得られますが、開始と停止の正確な時間は不明瞭です。

これは有名な問題ですが、残念ながら、2間の不確実性が不可避であることが証明されています、解決されていないだけではなく-ガボールの制限、ハイゼンベルグ・ガボールの制限、不確定性原理など、

もし私があなたなら、ガボール変換を計算するための多くの既製のライブラリーの1つから始めて、時系列をさまざまな長さにカットする実験をします。あなたが幸運になるかなりのチャンスがあり、十分な時間のローカリゼーションと適切な周波数識別を提供するある程度の長さで終わるでしょう。

これがこのアプリケーションで機能しない場合時間周波数表現時間周波数分析の他のアプローチに進みます -ウェーブレット変換、チャープレット変換分数フーリエ変換(FRFT)など。

編集:オーディオデータからスペクトログラム / ウォーターフォールプロットを生成するためのいくつかのソースコード:

Image to Spectrogramは、上記のユーティリティとは逆の方向に進みます。


ガボール変換はガウスウィンドウでのみ使用できます。別のウィンドウを使用する場合、それは単なるSTFTです。(そして、真のガウスウィンドウは、無限に先細りするため、デジタルには存在しません。)
内部石

@endolith:その通りです。ガボール変換では、有限長に切り捨てられた「ガウスウィンドウ関数」が使用されます。これは、理想的なガウスにかなり近いですが、数学的には同じではありません。
David Cary

ガボール変換は積分を使用した連続変換であるため、ウィンドウとして切り捨てられていないガウスを使用できますか?
内部石

@endolith:はい、原則として、切り捨てられていないガウシアンをウィンドウとして使用できます。実際には、ガウスのエネルギーは事実上すべて、中心のこぶから数シグマ以内であるため、切り捨てられたウィンドウを使用しても、出力チャートではほとんど違いがわかりません。スペクトログラム ウォーターフォールプロットを生成するソフトウェアは、ガウスウィンドウを繰り返し適用し、グラフのすべての列に対してFFTを実行するため、「切り捨てない」と、そのソフトウェアは耐えられないほど遅くなります。
David Cary
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.