Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ウェルチ法を使用したストリーミング パワー スペクトル推定

時間領域入力信号のパワー スペクトル推定を Spectrum Estimator ブロックを使用して計算します。ブロックは次のいずれかの方法を使用して、パワー スペクトル推定を計算します。

  • 平均修正ピリオドグラムのウェルチ法

  • フィルター バンク法

この例では、平均修正ピリオドグラムのウェルチ法を使用します。フィルター バンクベースのスペクトル推定法を使用した例については、高分解能スペクトル解析を参照してください。同じ例で、フィルター バンク推定器とウェルチベースのスペクトル推定器の比較も示しています。一般に、フィルター バンクベースのスペクトル推定はスペクトル漏れが少なく、ピークが正確で、ノイズ フロアが正確な、より優れた分解能を示します。

これら 2 つの方法のアルゴリズムの詳細については、Spectrum Estimator ブロックのアルゴリズムの節を参照してください。

スペクトル推定器ブロックは、推定されたスペクトルに (単に可視化するだけではなく) 直接アクセスする必要がある場合に役に立ちます。出力されたパワー スペクトルは、モデル内の他のブロックへの入力として使用されるか、あるいは事後処理のためにワークスペースに記録される場合があります。スペクトルを可視化するには、Spectrum Analyzer スコープ ブロックを使用します。

平均修正ピリオドグラムのウェルチ法

ウェルチ法では、入力の時間領域データが、選択されたウィンドウ長とオーバーラップ パーセンテージに基づいてデータ セグメントに分割されます。この段階は、Buffer ブロックを使用して実装されます。各セグメントにウィンドウが適用され、次に、ウィンドウが適用されたシーケンスに基づき平均ピリオドグラムが計算されます。この段階は、dsp.SpectrumEstimator System object™ を使用して実装されます。データ セグメントの長さとウィンドウの選択により、推定の分解能帯域幅 (RBW) が決定されます。RBW はパワー スペクトル推定で分解できる最小の正の周波数です。

ウィンドウの長さの指定

以下に示す dspstreamingwelch モデルでは、44100 Hz でサンプリングされた、ノイズを含むチャープ信号のスペクトル推定に Welch Spectrum Estimator ブロックが使用されています。パワー スペクトル推定は、Array Plot スコープを使用して表示されます。スペクトルのピーク値と、ピークが発生する周波数が検出され、スコープ上に表示されます。推定の RBW も表示されます。さらに、比較および検証のために、Spectrum Analyzer スコープ ブロックも含まれています。

ブロックの周波数分解能の方法は、Window length に設定されています。ウィンドウの長さは 1024 に設定されています。FFT 長 NFFT はウィンドウの長さと等価です。データは、サイドローブ減衰 60 dB のチェビシェフ ウィンドウを使用してウィンドウ処理されています。周波数範囲は片側です。この場合、スペクトル推定の長さは $NFFT/2+1 = 513$、計算区間は [0 Hz,22050 Hz] です。これに基づき、Array Plot スコープの Sample increment プロパティは、$Fs/NFFT = 44100/(1024 * 1000)$ に設定されます。ここでは、周波数単位を kHz でスケーリングするため、インクリメントが 1000 で除算されます。該当する [コンフィギュレーション プロパティ] ウィンドウを開くことで、スコープの Sample increment プロパティにアクセスできます。

分解能帯域幅は次のとおりです。

$$RBW = enbw(chebwin(N,SL)) * Fs / N$$

ここで、N はウィンドウの長さ、enbw はウィンドウの等価ノイズ帯域幅を計算する関数、SL は選択したチェビシェフ ウィンドウのサイドローブ減衰、Fs はサンプルレートです。この場合、RBW は 65.38 Hz になります。

モデルをシミュレートする際に、表示された RBW 値が Spectrum Analyzer スコープの下のバーに表示されている値と等価であることが確認できます。また、2 つのブロックのピーク測定値は同じになります。

非ゼロのオーバーラップの指定

前の節のモデルにはオーバーラップがありませんでした。dspstreamingwelch_overlap モデルでは、50% のオーバーラップがある Welch Estimation ブロックを使用します。モデルの他のパラメーターが前の節のパラメーターと同一であるため、RBW は変わらず 65.38 Hz です。ウィンドウの長さが 1024、オーバーラップ率が 50% であることから、新しいデータ セグメントを形成するには 512 個の入力サンプルが必要になります。入力データの長さが 1024 であるため、新しいデータ フレームがそれぞれ 2 つの新しいピリオドグラムを生成し、ブロックの出力端子は入力端子の 2 倍の速さで動作します。

この場合、ウェルチ法の推定ブロックにはゼロ レイテンシがないことに注意してください。最初のスペクトル推定出力はバッファーの初期条件に基づき、eps と等価になります。したがって、Spectrum Analyzer スコープのスペクトルと測定値を一致させるため、Spectrum Analyzer の入力に Delay ブロックを挿入します。

Spectrum Analyzer の結果とウェルチ法の推定ブロックは、モデルをシミュレートすることで検証できます。

RBW の指定

dspstreamingwelch_rbw モデルでは、Frequency Resolution Method パラメーターは RBW に設定されています。RBW Source は自動です。Spectrum Analyzer スコープ ブロックと同様に、このモードでは、分解能帯域幅は、指定した周波数範囲にわたって RBW 間隔が 1024 となるように選択されます。この例では範囲が 22050 Hz、RBW が 21.53 Hz になります。

データのバッファーに使用されるウィンドウの長さは、目的の RBW が得られるまで反復計算されます。この例でのウィンドウの長さは 3073 になります。この値を検証するには、このウィンドウの長さから結果として得られる RBW を以下のように計算します。

$$ RBW = enbw(hann(3073)) * 44100 / 3073 = 21.53 Hz $$

このモデルではハン ウィンドウが使用されていることに注意してください。この場合、FFT 長 NFFT は奇数であり、3073 (ウィンドウ長) と等しくなります。周波数範囲が片側であるため、スペクトル推定は長さ (NFFT + 1)/2 で、計算区間は [0,44100/2) になります。Array Plot スコープの Sample increment プロパティは、$Fs/NFFT = 44100/(3073 * 1000)$ kHz に設定されています。

ここでも、スペクトル アナライザーの結果とウェルチ法の推定ブロックは、モデルをシミュレートすることで検証できます。

参照

[1] Hayes, Monson H. Statistical Digital Signal Processing and Modeling Hoboken, NJ: John Wiley & Sons, 1996.

参考

ブロック