スペクトログラムとは何ですか?そのパラメータを設定するにはどうすればよいですか?

ベンゼン

与えられた時間領域信号のスペクトログラムをプロットしようとしています:

N=5000;
phi = (rand(1,N)-0.5)*pi;
a = tan((0.5.*phi));
i = 2.*a./(1-a.^2);
plot(i);
spectrogram(i,100,1,100,1e3);

問題は、パラメータとどの値を指定する必要があるかがわからないことです。私が使用しているこれらの値は、MATLABのオンラインドキュメントを参照しましたspectrogram私はMATLABを初めて使用しますが、アイデアが得られません。どんな助けでも大歓迎です!

rayryeng

そのMATLABコマンドが実際に何をするかを説明する前に、スペクトログラムが何であるかを知りたいと思うでしょう。そうすれば、各パラメーターがどのように機能するかについて、より多くの意味を得ることができます。

スペクトログラムは、短時間フーリエ変換を視覚的に表したものですこれは、入力信号のチャンクを取得し、各チャンクにローカルフーリエ変換を適用することと考えてください。各チャンクには指定された幅があり、このチャンクにフーリエ変換を適用します。各チャンクには関連する度数分布があることに注意してください。時間信号の特定の時点を中心とするチャンクごとに、一連の周波数成分を取得します。各チャンクでこれらすべての周波数成分を収集し、すべて一緒にプロットすると、本質的にスペクトログラムになります。

スペクトログラムは2Dビジュアルヒートマップであり、横軸は信号の時間を表し、縦軸は周波数軸を表します。視覚化されるのは、色が濃いということは、特定の時点と特定の周波数で、周波数成分の大きさが小さいほど、色が暗くなることを意味する画像です。同様に、周波数成分の大きさが大きいほど、色は明るくなります。

スペクトログラムの完璧な例を次に示します。

出典:ウィキペディア

したがって、各時点で、周波数成分の分布が見られます。各列は、この時点を中心としたチャンクの周波数分解と考えてください。各列について、さまざまな色のスペクトルが表示されます。色が濃いほど、その周波数での振幅成分は低くなり、逆もまた同様です。


それで!...これで準備が整いました。関数とそのパラメーターの観点からMATLABがどのように機能するかを見てみましょう。呼び出す方法spectrogramは、このバージョンの関数に準拠しています。

spectrogram(x,window,noverlap,nfft,fs) 

各パラメーターを1つずつ調べて、それぞれが何をするのかをより深く理解できるようにしましょう。

  • x-これは、スペクトログラムを検索する入力時間領域信号です。それ以上に単純になることはできません。あなたの場合、スペクトログラムを見つけたい信号は次のコードで定義されています。

    N=5000;
    phi = (rand(1,N)-0.5)*pi;
    a = tan((0.5.*phi));
    i = 2.*a./(1-a.^2);
    

    これiが、スペクトログラムを見つけたい信号です。

  • window-思い出してください。画像をチャンクに分解し、各チャンクには指定された幅があります。サンプルのwindow観点から各チャンクの幅を定義しますこれは離散時間信号であるため、この信号は特定のサンプリング周波数とサンプリング周期でサンプリングされたことがわかります。サンプルに関してウィンドウの大きさを決定するには、次の方法があります。

    window_samples = window_time/Ts

    Ts信号のサンプリング時間です。ウィンドウサイズの設定は実際には非常に経験的であり、多くの実験が必要です。基本的に、ウィンドウサイズが大きいほど、より多くの周波数をキャプチャするため、周波数分解能が向上しますが、時間のローカリゼーションは不十分です。同様に、ウィンドウサイズが小さいほど、時間内のローカリゼーションは向上しますが、周波数分解はそれほど大きくありません。ここでは、最適なサイズについての提案はありません...そのため、時間周波数分解に関してはウェーブレットが好まれます。「チャンク」ごとに、チャンクは動的な幅の小さなチャンクに分解されるため、適切な時間と周波数のローカリゼーションが混在します。

  • noverlap-良好な周波数ローカリゼーションを保証する別の方法は、チャンクがオーバーラップしていることです。適切なスペクトログラムは、各チャンクに各チャンクでオーバーラップする特定の数のサンプルがあることを保証しnoverlap、各ウィンドウでオーバーラップするサンプルの数を定義します。デフォルトは、各チャンクの幅の50%です。

  • nfft-基本的に、各チャンクのFFTを取得しています。nfftチャンクごとに計算する必要のあるFFTポイントの数を示します。デフォルトのポイント数は、256のいずれか最大ですfloor(log2(N))ここNで、は信号の長さです。nfftまた、周波数分解能がどの程度細かくなるかを測定します。FFTポイントの数が多いほど、周波数分解能が高くなるため、視覚化すると、スペクトログラムの周波数軸に沿って詳細が表示されます。

  • fs-信号のサンプリング周波数。デフォルトは1Hzですが、信号のサンプリング周波数にこれを上書きできます。


したがって、おそらくこれから取り除くべきことは、パラメータの設定方法を実際に説明できないということです。それはすべてあなたが持っている信号に依存しますが、うまくいけば、上記の説明があなたにパラメータを設定する方法のより良い考えを与えるでしょう


幸運を!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SimulinkモデルでToFileブロックパラメーターをプログラムで設定するにはどうすればよいですか?

分類Dev

プログラムでWindowsPhone 8アプリのスタートページを設定するにはどうすればよいですか?

分類Dev

WordDelimiterTokenFilterでカスタムパラメータを設定するにはどうすればよいですか

分類Dev

ケラスのパラメーターをトレーニングできないように設定するにはどうすればよいですか?

分類Dev

グラフィックデバイスのデフォルトパラメータを設定するにはどうすればよいですか?

分類Dev

NodeJSの文字列コンストラクターにグローバルプロパティを設定するにはどうすればよいですか?

分類Dev

iOSでプログラムによってアスペクト比の制約を設定するにはどうすればよいですか?

分類Dev

iOSでedgeSDKラッパーを使用してマイクロサービスをデプロイするときのimagePathとapiRootUrlの値は何ですか?それらを設定するにはどうすればよいですか?

分類Dev

xpropでカスタムプロパティを設定し、そのプログラムを1行で開くにはどうすればよいですか?

分類Dev

ラジオボタンとヒストグラムプロットに別々の軸を設定するにはどうすればよいですか?

分類Dev

edcfをプロットするときにRでカラーパラメータを設定するにはどうすればよいですか?

分類Dev

プログラムでカスタムTALphaColorを設定するにはどうすればよいですか?

分類Dev

OSXターミナルでタイトルテキストの色をプログラムで設定するにはどうすればよいですか?

分類Dev

シェルスクリプトでケースパラメータを設定し、その後に別のパラメータを設定するにはどうすればよいですか?

分類Dev

プログラムでSketchupのページにカメラを設定するにはどうすればよいですか?

分類Dev

別のクラスのテストパラメータにIEqualityComparerを設定するにはどうすればよいですか?

分類Dev

ナビゲーターハンドルをプログラムでハイストックに設定するにはどうすればよいですか?

分類Dev

出現ドライバーのカスタムクロームバイナリパスを設定するにはどうすればよいですか?

分類Dev

関数パラメータのデフォルト値をプログラムで決定するにはどうすればよいですか?

分類Dev

Angular 9では、フォームをローカルストレージに設定するときに、保存されない特定のパラメーターを指定するにはどうすればよいですか?

分類Dev

クラス内で関数のデフォルトパラメータを設定するにはどうすればよいですか?

分類Dev

Parse ServerのCLPにプログラムでポインターのアクセス許可を設定するにはどうすればよいですか?

分類Dev

Clutterツールキットでプログラムのタイトルとアイコンを設定するにはどうすればよいですか?

分類Dev

ストリームタスクのログメンバーにSBTlogLevelを設定するにはどうすればよいですか?

分類Dev

パラメータ/設定をScalaマクロに渡すにはどうすればよいですか?

分類Dev

すべての一般的なパラメータのリストをプログラムで取得するにはどうすればよいですか?

分類Dev

Javascriptの.forEachループ内で値とインデックスパラメータを設定するにはどうすればよいですか?

分類Dev

SSIS 2012でSSISプロジェクトパラメータの設定を自動化するにはどうすればよいですか?

分類Dev

Springでクエリパラメータを追加/設定するにはどうすればよいですか?

Related 関連記事

  1. 1

    SimulinkモデルでToFileブロックパラメーターをプログラムで設定するにはどうすればよいですか?

  2. 2

    プログラムでWindowsPhone 8アプリのスタートページを設定するにはどうすればよいですか?

  3. 3

    WordDelimiterTokenFilterでカスタムパラメータを設定するにはどうすればよいですか

  4. 4

    ケラスのパラメーターをトレーニングできないように設定するにはどうすればよいですか?

  5. 5

    グラフィックデバイスのデフォルトパラメータを設定するにはどうすればよいですか?

  6. 6

    NodeJSの文字列コンストラクターにグローバルプロパティを設定するにはどうすればよいですか?

  7. 7

    iOSでプログラムによってアスペクト比の制約を設定するにはどうすればよいですか?

  8. 8

    iOSでedgeSDKラッパーを使用してマイクロサービスをデプロイするときのimagePathとapiRootUrlの値は何ですか?それらを設定するにはどうすればよいですか?

  9. 9

    xpropでカスタムプロパティを設定し、そのプログラムを1行で開くにはどうすればよいですか?

  10. 10

    ラジオボタンとヒストグラムプロットに別々の軸を設定するにはどうすればよいですか?

  11. 11

    edcfをプロットするときにRでカラーパラメータを設定するにはどうすればよいですか?

  12. 12

    プログラムでカスタムTALphaColorを設定するにはどうすればよいですか?

  13. 13

    OSXターミナルでタイトルテキストの色をプログラムで設定するにはどうすればよいですか?

  14. 14

    シェルスクリプトでケースパラメータを設定し、その後に別のパラメータを設定するにはどうすればよいですか?

  15. 15

    プログラムでSketchupのページにカメラを設定するにはどうすればよいですか?

  16. 16

    別のクラスのテストパラメータにIEqualityComparerを設定するにはどうすればよいですか?

  17. 17

    ナビゲーターハンドルをプログラムでハイストックに設定するにはどうすればよいですか?

  18. 18

    出現ドライバーのカスタムクロームバイナリパスを設定するにはどうすればよいですか?

  19. 19

    関数パラメータのデフォルト値をプログラムで決定するにはどうすればよいですか?

  20. 20

    Angular 9では、フォームをローカルストレージに設定するときに、保存されない特定のパラメーターを指定するにはどうすればよいですか?

  21. 21

    クラス内で関数のデフォルトパラメータを設定するにはどうすればよいですか?

  22. 22

    Parse ServerのCLPにプログラムでポインターのアクセス許可を設定するにはどうすればよいですか?

  23. 23

    Clutterツールキットでプログラムのタイトルとアイコンを設定するにはどうすればよいですか?

  24. 24

    ストリームタスクのログメンバーにSBTlogLevelを設定するにはどうすればよいですか?

  25. 25

    パラメータ/設定をScalaマクロに渡すにはどうすればよいですか?

  26. 26

    すべての一般的なパラメータのリストをプログラムで取得するにはどうすればよいですか?

  27. 27

    Javascriptの.forEachループ内で値とインデックスパラメータを設定するにはどうすればよいですか?

  28. 28

    SSIS 2012でSSISプロジェクトパラメータの設定を自動化するにはどうすればよいですか?

  29. 29

    Springでクエリパラメータを追加/設定するにはどうすればよいですか?

ホットタグ

アーカイブ