関数 > 信号処理 > スペクトル解析 > 例: スペクトル解析
  
例: スペクトル解析
関数 coherencecspectrumpspectrumsnr を使用して、信号または信号ペアのコヒーレンス、クロススペクトル、パワースペクトル、SN 比を計算します。
Samuel Stearns/Ruth David 著 Signal Processing Algorithms (Prentice-Hall, Inc.) に、この平均化手法についての解説があります。
パワースペクトル - DFT の使用
ほんの一部のデータにしか信号に相当する値が含まれていない長い時系列では、必要なのはノイズやゼロの値についてのパワースペクトルではなく、信号の周波数についてのパワースペクトルです。
1. ウィンドウ幅を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 信号がゼロでない、2 つのウィンドウ w1w2 を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
3. ウィンドウ幅を 2 つの幅のいずれかに設定します。
クリックしてこの式をコピー
4. 信号とサンプリング周波数を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
5. sin 関数を使用して、選択したウィンドウの内部と外部の信号を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
6. 信号をプロットします。
クリックしてこの式をコピー
7. dft 関数を使用して、x の離散フーリエ変換を計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
8. 返された関数を周波数領域でプロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
純粋な正弦波信号の場合、DFT 係数の大きさからパワースペクトルを推定できます。この場合、信号の DFT は矩形のウィンドウの変換 (sinc 関数) によってコンボリューションされた構造化信号の周波数内容です。
手順 3 で W= w2 に設定すると、正弦波信号が存在するウィンドウが 230 から 300 から 0 から 499 (7.143 倍) に広がり、その結果 2 つのピークの大きさが 35 から 250 (これも 7.143 倍) に増大します。
ピークになる周波数は変わりません。
パワースペクトル: pspectrum の使用
pspectrum 関数は、元の時系列を重なり合うセグメントに分割します。各セグメントが DFT によって変換され、変換後の大きさの係数が平均化されます。セグメントの長さが信号内の分析する現象と同じ尺度である場合、pspectrum 関数は元の時系列の対象部分の成分の大きさの良好な近似値を返します。
一般的に、信号の長さは n + 1 以上でなければなりません。
1. 信号の長さ、重なりの比率、ウィンドウの種類 (逓減された矩形) を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. pspectrum 関数を使用して、x を重なりの比率 rn1 個の重なり合うセグメントに分割し、逓減された矩形のウィンドウを使用して各セグメントをウィンドウ処理することで、x のパワースペクトルを計算します。
クリックしてこの式をコピー
3. floor 関数と length 関数を使用して、区間の長さが、次のように定義される L の最大数になることを示します。
クリックしてこの式をコピー
4. 正規化された周波数軸に対してスペクトルをプロットします (1 はサンプリング周波数)。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
5. スペクトルの平均パワーを計算します。
クリックしてこの式をコピー
これは信号 x の二乗平均とほぼ等しい値になります。
クリックしてこの式をコピー
白色ノイズでの pspectrum
白色ノイズを含む信号のパワースペクトルを計算します。クロススペクトルの計算には 2 つの信号が必要なので、白色ノイズを含む信号を 2 つ生成します。Hamming ウィンドウを使用してデータブロックを逓減します。
1. 信号の幅を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
2. sin 関数と rnd 関数を使用して、共通周波数 fc を持つ 2 つの信号を定義しますrnd 関数は 0 から指定された数値の範囲で一様分布する乱数のベクトルを返すので、これらの信号は常に異なります。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
3. 2 つの信号の最初の 100 個のサンプルをプロットします。
クリックしてこの式をコピー
4. pspectrum 関数を使用して、重なりの比率 0.5 で 40 個の重なり合うセグメントに分割し、Hamming ウィンドウを使用して各セグメントをウィンドウ処理することで、y1 のパワースペクトルを取得します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
5. match 関数と max 関数を使用して、パワースペクトルのピークサンプルを求めます。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
6. スペクトルをデシベルでプロットします。マーカーを使用して、共通周波数と最大デシベル値をマーク付けします。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
このプロットは、すべての信号パワーが共通周波数 fc1-fc で発生していることを示しています。
7. ノイズパワーを計算します。
クリックしてこの式をコピー
8. ノイズパワーゲイン (単位: dB) を計算します。
クリックしてこの式をコピー
9. 上記の 2 つの周波数サンプルをスペクトル長さで割った値が正弦成分における平均パワー、すなわち 0.5 になるという事実に基づいて高さを計算します。
クリックしてこの式をコピー
または
クリックしてこの式をコピー
10. 理論上の高さと実際の高さをデシベルで比較します。
クリックしてこの式をコピー
クリックしてこの式をコピー
cspectrum 関数
一般的に、2 つの信号の類似性を検出するにはクロススペクトルを利用します。たとえば、既知の音声の波形 (母音 a など) を未知の音声の波形 (単語 apple など) と比較して、既知の波形が未知の波形の中に存在するかどうかを調べるときに、この手法を用います。時系列のパワースペクトルがその自己相関とほぼ等しいことと同様に、2 つの時系列のクロススペクトルはその相互相関とほぼ等しくなります。定常ランダムシーケンスの場合、スペクトル関数は相関関数と同じ値を返します。
1. 信号 y1y2cspectrum 関数を適用します。このとき、重なりの比率 0.5 で 40 個の重なり合うセグメントに分割し、逓減された矩形のウィンドウを使用して各セグメントをウィンドウ処理します。
クリックしてこの式をコピー
2. スペクトルをデシベルでプロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
3. クロススペクトルをプロットします。これは複素スペクトルなので、大きさに log 関数を適用する必要があります。
クリックしてこの式をコピー
y1y2 のクロススペクトルは共通周波数 fc1- fc でピークを示しています。
コヒーレンス関数と SN 比関数
coherence 関数は信号間の線形依存を測定し、2 つの信号のクロススペクトルの大きさの二乗を両方のパワースペクトルで割った値を返し、その値の範囲は 0 から 1 です。コヒーレンス関数の値 1 は、その周波数帯域で両方の信号にノイズがない強い成分が含まれていることを示し、値 0 はその周波数帯域内のほとんどがノイズであることを示す傾向にあります。
SN 比関数 snr は、コヒーレンス関数を (1 - コヒーレンス関数) で割った値と等しく、任意の成分の帯域内で 2 つの信号が強い成分を持つ場所で最大となり、信号の強さとセンサーまたは背景ノイズの強さの比に比例します。
1. 信号 y1y2coherence 関数を適用します。このとき、重なりの比率 0.5 で 40 個の重なり合うセグメントに分割し、Hamming ウィンドウを使用して各セグメントをウィンドウ処理します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. コヒーレンス関数をプロットします。マーカーを使用して、共通周波数と最大値をマーク付けします。
クリックしてこの式をコピー
クリックしてこの式をコピー
3. 信号 y1y2snr 関数を適用します。このとき、重なりの比率 0.5 で 40 個の重なり合うセグメントに分割し、Hamming ウィンドウを使用して各セグメントをウィンドウ処理します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
4. SN 比関数をプロットします。マーカーを使用して、共通周波数と最大値をマーク付けします。
クリックしてこの式をコピー
クリックしてこの式をコピー
coherence 関数と snr 関数はどちらも、2 つの信号の 1 つの周波数成分で最大値となり、両側の 2 本の小さな棒によって付加ノイズが示されています。