与えられた時間領域信号のスペクトログラムをプロットしようとしています:
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を初めて使用しますが、アイデアが得られません。どんな助けでも大歓迎です!
その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]
コメントを追加