信号アナライザーでのスペクトル計算
信号のスペクトルを計算する際、互いに近い周波数成分の分解能を向上させようとすると、ノイズから弱い成分を検出する能力が低下します。信号アナライザーは、これらの相反する目的のバランスをとり、用途に最適な分解能を達成するための 3 つのオプションを提供します。オプションは、[スペクトル] タブの [分解能タイプ] セクションで利用できます。
信号アナライザーは、信号の周波数成分がビンに正確に収まる場合、そのビン内の振幅が信号の真の平均パワーになるようにスペクトルをスケールします。たとえば、正弦波の平均パワーは、正弦波の振幅の 2 乗の半分です。詳細については、確定的周期信号のパワーの測定を参照してください。
分解能と漏れ
実際の信号はいずれも有限の時間に対してのみ測定可能です。この事実は、信号が無限長であることを前提とするフーリエ解析に無視できない影響をもたらします。異なる信号サンプルに異なる重みを割り当てることで構成される "スペクトル ウィンドウ処理" は、有限サイズの影響をシステマチックに処理します。
最も簡単な方法は、測定間隔外では信号が等しくゼロであり、すべてのサンプルが等しく重要であると仮定することです。この方法は、"箱型ウィンドウ" を使用する方法と同じです。この箱型ウィンドウには、両端にスペクトル リンギングをもたらす不連続のジャンプがあります。その他のスペクトル ウィンドウはすべて両端が細くなっており、信号のエッジに近づくにつれて、より小さい重みをサンプルに割り当てることで、この影響を小さくします。
ウィンドウ処理には、分解能の改善と漏れの低減という相反する目的の間で妥協することが伴います。
"分解能" は、信号エネルギーが周波数空間にどのように分布しているかを正確に把握するための能力です。理想的な分解能のスペクトル アナライザーは、信号内に存在する 2 つの異なるトーン (基本的な正弦波) を、周波数がどれほど近くても識別できます。理想的ではないアナライザーについて、"分解能帯域幅" では、2 つのトーンが分解可能なままどのくらい近接できるかを測定します。
"漏れ" は、有限の信号で、すべての周波数成分が周波数範囲全体にわたってエネルギー量を投影することです。スペクトル内の漏れの量は、隣接する強いトーンの存在下で、ノイズから弱いトーンを検出する能力によって測定できます。
メモ
分解能を高くすると、漏れも高くなります。メインローブが狭くサイドローブの減衰が低いウィンドウでは、同様のエネルギー量をもつ近接したトーンを分解できますが、隣接する強いトーンの存在下で、より弱いトーンを検出することができません。
漏れが少ないほど、分解能は悪くなります。サイドローブの減衰が高くメインローブが広いウィンドウでは、弱いトーンを検出できますが、近い周波数がかたまって不鮮明になります。
ウェルチ ピリオドグラム
ほとんどの場合、信号アナライザーは "ウェルチ ピリオドグラム" を使用して信号のスペクトルを計算します。アプリは以下を行います。
信号をオーバーラップ セグメントに分割する。"ストライド長" は、連続するセグメントの最初のサンプル間の距離です。隣接セグメント間の "オーバーラップ" は、セグメント長からストライド長を引いたものです。
各セグメントを個別にウィンドウ処理する。"ウィンドウの長さ" は各セグメントの長さです。
NFFT 個の離散フーリエ変換点から成るセットで各セグメントのピリオドグラムを計算する。
すべてのセグメントのピリオドグラムを平均化する。
ウェルチの手順は、信号の異なる "実現" を平均化し、ウィンドウを使用して冗長データを除去することでスペクトル推定の分散を軽減するように設計されています。詳細については、pwelch
を参照してください。
漏れの制御
[スペクトル] タブの [分解能タイプ] セクションで [漏れ] を選択した場合、信号アナライザーは、分解能帯域幅に基づいて計算するために、最初にスペクトルのタイプを判定します。
分解能帯域幅には、次の理論値があります。
ENBW はスペクトル ウィンドウの "等価ノイズ帯域幅" です。[スペクトル] タブで [漏れ] スライダーを使用して、ENBW を制御します。詳細については、
enbw
を参照してください。tmax – tmin ("レコード長") は、選択した信号領域の時間領域の持続時間です。レコード長または関心領域を選択して調整するには、パナーを使用するか、時間領域プロットでズームインするか、[時間] タブで制限を変更します。
メモ
[表示] タブのいずれかのズーム操作を使用して信号スペクトルの領域にズームインすると、アプリは分解能帯域幅を変更しません。代わりに、信号アナライザーは帯域制限された内挿を使用して滑らかなスペクトル曲線を表示する光学ズームを実行します。
選択した時間間隔が信号の両端を超える場合、信号アナライザーは信号をゼロパディングします。信号に選択した時間間隔内のサンプルがない場合、アプリは何も表示しません。
実際には、合理的な時間でスペクトルを計算して、有限のピクセル数で表示するために、アプリは分解能を低くすることがあります。アプリが使用できる最も低い分解能帯域幅は次になります。
ここで、fspan は、[スペクトル] タブの [周波数範囲] の値を設定することで指定された周波数範囲の幅です。周波数範囲を指定しない場合、アプリはディスプレイ内のすべての信号からの最大サンプル レートとして fspan の値を使用します。
メモ
RBWperformance を直接調整することはできません。
信号のスペクトルを計算するために、アプリは次の 2 つの値のうち大きい方を選択します。 アプリは、[スペクトル] タブの [周波数分解能] セクションに実際の分解能帯域幅を表示します。
分解能帯域幅が RBWtheory の場合、信号アナライザーは NFFT = 4096 個の離散フーリエ変換点で、信号全体に対する単一の "修正ピリオドグラム" を計算します。アプリは、カイザー ウィンドウと調整可能な形状係数を使用して、座標軸の時間範囲が信号の持続時間を超える場合にゼロパディングを適用します。詳細については、
periodogram
を参照してください。分解能帯域幅が RBWperformance の場合、信号アナライザーは信号のウェルチ ピリオドグラムを計算します。
ウィンドウの長さ
漏れを制御してスペクトル分解能を調整する場合、信号アナライザーは次のウィンドウ長を選択します。
ここで、max(fNyquist) は、ディスプレイ内のすべての信号の中で最も高いナイキスト周波数です。(エイリアシングがない場合、ナイキスト周波数はサンプル レートの半分になります。)
メモ
信号に時間情報がない場合、信号アナライザーは正規化された周波数で動作します。正規化された周波数を使用することは、2π のサンプル レートを指定することと等価です。
離散フーリエ変換点
漏れを制御してスペクトル分解能を調整する場合、信号アナライザーは NFFT = 4096 個の離散フーリエ変換点で各セグメントのピリオドグラムを計算します。
ウィンドウ タイプと減衰
漏れを制御してスペクトル分解能を調整する場合、信号アナライザーはカイザー ウィンドウを使用します。カイザー ウィンドウには、β = 40(1 – ℓ) によって漏れ ℓ に関連付けられる調整可能な "形状係数" β があります。
スライダー範囲の最小値は、β = 40 のカイザー ウィンドウに対応します。このウィンドウでは、広いメインローブが基本的に倍精度で表現可能なすべてのスペクトル エネルギーを取得するため、サイドローブに含まれるエネルギーは無視できます。
β ≈ 6 の中間値はハン ウィンドウを正確に近似します。
スライダー範囲の最大値は、β = 0 のカイザー ウィンドウに対応します。これは、狭いメインローブと大きなサイドローブをもつ箱型ウィンドウと等価です。
β 値を選択することは、ウィンドウのサイドローブ減衰を指定することと等価です。α が dB 単位の減衰である場合、2 つの量は次によって関連付けられます。
オーバーラップ
信号アナライザーは、次を使用してストライド長の初期推定を行います。
これは、次のオーバーラップ率に対応します。
また、最初のウィンドウが最初のセグメントの最初のサンプルで正確に始まり、最後のウィンドウが最後のセグメントの最後のサンプルで正確に終了するように調整します。セグメント数は、ウィンドウの長さとオーバーラップによって異なります。オーバーラップが大きいと、セグメント数も多くなります。
分解能帯域幅の制御
R2023b 以降
[スペクトル] タブの [分解能タイプ] セクションで [RBW] を選択した場合、信号アナライザーは信号のウェルチ ピリオドグラムを計算します。一部のウィンドウでは、RBW、ウィンドウ タイプ、隣接するセグメント間のオーバーラップ、およびサイドローブ減衰を指定できます。
ウィンドウの長さ
[スペクトル] タブの [帯域幅] セクションで RBW 値を指定した場合、信号アナライザーは次の式を解くことによって、ウィンドウの長さを反復的に判定します。
[スペクトル] タブの [帯域幅] セクションで [自動] を選択した場合、信号アナライザーは ⌈N/d⌉ サンプルのウィンドウ長を選択します。ここで、大かっこは天井関数を表します。また、N は信号長、d は N に依存する序数です。
信号の長さ (N) 除数 (d) セグメント長 2
サンプル –63
サンプル2
1
サンプル –32
サンプル64
サンプル –255
サンプル8
8
サンプル –32
サンプル256
サンプル –2047
サンプル8
32
サンプル –256
サンプル2048
サンプル –4095
サンプル16
128
サンプル –256
サンプル4096
サンプル –8191
サンプル32
128
サンプル –256
サンプル8192
サンプル –16383
サンプル64
128
サンプル –256
サンプル16384
サンプル – N サンプル128
128
サンプル – ⌈N /128
⌉ サンプル
離散フーリエ変換点
分解能帯域幅を制御してスペクトル分解能を調整する場合、信号アナライザーは常に NFFT とウィンドウの長さが等しくなるようにします。
ウィンドウ タイプと減衰
分解能帯域幅を制御してスペクトル分解能を調整する場合は、次のスペクトル ウィンドウのいずれかを選択できます。
ブラックマン・ハリス
チェビシェフ
フラットトップ
ハミング (既定)
ハン
カイザー
矩形
チェビシェフ ウィンドウとカイザー ウィンドウのサイドローブの減衰を制御することができます。目的の減衰をデシベル単位の正の数値として指定します。
チェビシェフ ウィンドウの場合、すべてのサイドローブの振幅が、指定された減衰値だけメインローブ レベルより小さくなります。指定する値は少なくとも 45 dB でなければなりません。
カイザー ウィンドウの場合、最も高いサイドローブの振幅が、指定された減衰値だけメインローブ レベルより小さくなります。指定する値は少なくとも 21 dB でなければなりません。α dB のサイドローブ減衰を選択することは、次の β 値を指定することと等価です。
オーバーラップ
ウィンドウの長さと隣接するセグメント間のオーバーラップを同時に指定できます。オーバーラップを指定すると、セグメント数が変化します。オーバーラップが大きいと、セグメント数も多くなります。信号の端点を越えるセグメントにはゼロが付加されます。
たとえば、7 サンプルの信号 [s0 s1 s2 s3 s4 s5 s6]
と 4 サンプルのウィンドウ長の場合について考えてみましょう。
オーバーラップするサンプル数 | 結果のセグメント数 |
---|---|
0 | s0 s1 s2 s3 s4 s5 s6 0 |
1 | s0 s1 s2 s3 s3 s4 s5 s6 |
2 | s0 s1 s2 s3 s2 s3 s4 s5 s4 s5 s6 0 |
3 | s0 s1 s2 s3 s1 s2 s3 s4 s2 s3 s4 s5 s3 s4 s5 s6 |
オーバーラップ値をウィンドウの長さに対する割合として指定します。既定値は 50% です。
メモ
100% のオーバーラップを指定することはできません。達成可能な最大値は、ウィンドウの長さよりも 1 サンプル少ない値に相当します。その値を指定した場合、信号アナライザーは信号を [Signal length – (Window length – 1)] 個のセグメントに分割します。
ウィンドウの長さの制御
R2023b 以降
[スペクトル] タブの [分解能タイプ] セクションで [ウィンドウの長さ] を選択した場合、信号アナライザーは信号のウェルチ ピリオドグラムを計算します。一部のウィンドウでは、ウィンドウの長さ、離散フーリエ変換点の数、ウィンドウのタイプ、隣接するセグメント間のオーバーラップ、およびサイドローブの減衰を指定できます。
ウィンドウの長さ
ウィンドウの長さをサンプル単位で指定します。[スペクトル] タブの [帯域幅] セクションで [自動] を選択した場合、信号アナライザーは次のウィンドウ長を使用します。
これにより、信号は、⌊Window length × Overlap percent/100⌋ サンプルの隣接するセグメント間のオーバーラップを含む 8 つのセグメントに分割されます。⌊⌋ 記号は床関数を表します。
離散フーリエ変換点
ウィンドウの長さを制御してスペクトル分解能を調整する場合は、NFFT を指定できます。NFFT はウィンドウの長さ以上でなければなりません。値を指定しない場合、信号アナライザーはウィンドウの長さを使用します。
ウィンドウ タイプと減衰
ウィンドウの長さを制御してスペクトル分解能を調整する場合は、次のスペクトル ウィンドウのいずれかを選択できます。
ブラックマン・ハリス
チェビシェフ
フラットトップ
ハミング (既定)
ハン
カイザー
矩形
チェビシェフ ウィンドウとカイザー ウィンドウのサイドローブの減衰を制御することができます。目的の減衰をデシベル単位の正の数値として指定します。
チェビシェフ ウィンドウの場合、すべてのサイドローブの振幅が、指定された減衰値だけメインローブ レベルより小さくなります。指定する値は少なくとも 45 dB でなければなりません。
カイザー ウィンドウの場合、最も高いサイドローブの振幅が、指定された減衰値だけメインローブ レベルより小さくなります。指定する値は少なくとも 21 dB でなければなりません。α dB のサイドローブ減衰を選択することは、次の β 値を指定することと等価です。
オーバーラップ
ウィンドウの長さと隣接するセグメント間のオーバーラップを同時に指定できます。オーバーラップを指定すると、セグメント数が変化します。オーバーラップが大きいと、セグメント数も多くなります。アプリは、信号の端点を超えるセグメントについてゼロパディングします。
たとえば、7 サンプルの信号 [s0 s1 s2 s3 s4 s5 s6]
と 4 サンプルのウィンドウ長の場合について考えてみましょう。
オーバーラップするサンプル数 | 結果のセグメント数 |
---|---|
0 | s0 s1 s2 s3 s4 s5 s6 0 |
1 | s0 s1 s2 s3 s3 s4 s5 s6 |
2 | s0 s1 s2 s3 s2 s3 s4 s5 s4 s5 s6 0 |
3 | s0 s1 s2 s3 s1 s2 s3 s4 s2 s3 s4 s5 s3 s4 s5 s6 |
オーバーラップ値をウィンドウの長さに対する割合として指定します。既定値は 50% です。
メモ
100% のオーバーラップを指定することはできません。達成可能な最大値は、ウィンドウの長さよりも 1 サンプル少ない値に相当します。その値を指定した場合、信号アナライザーは信号を [Signal length – (Window length – 1)] 個のセグメントに分割します。
参照
[1] harris, fredric j. “On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform.” Proceedings of the IEEE®. Vol. 66, January 1978, pp. 51–83.
[2] Welch, Peter D. “The Use of Fast Fourier Transform for the Estimation of Power Spectra: A Method Based on Time Averaging Over Short, Modified Periodograms.” IEEE Transactions on Audio and Electroacoustics. Vol. 15, June 1967, pp. 70–73.
[3] Oppenheim, Alan V., and Ronald W. Schafer, with John R. Buck. Discrete-Time Signal Processing. Upper Saddle River, NJ: Prentice Hall, 1999.
参考
アプリ
関数
enbw
|kaiser
|periodogram
|pspectrum
|pwelch
関連する例
- ウィンドウの漏れを変化させることでトーンを分解する
- パーシステンス スペクトルを使用した干渉の検出
- 複素包絡線を使用した変調と復調
- 再代入したスペクトログラムを使用したリッジの検出と追跡
- 音楽信号からの音声の抽出
- 振動信号の包絡線スペクトルの計算