このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
ウェルチ法を使用したストリーミング パワー スペクトル推定
時間領域入力信号のパワー スペクトル推定を Spectrum Estimator ブロックを使用して計算します。ブロックは次のいずれかの方法を使用して、パワー スペクトル推定を計算します。
平均修正ピリオドグラムのウェルチ法
フィルター バンク法
この例では、平均修正ピリオドグラムのウェルチ法を使用します。フィルター バンクベースのスペクトル推定法を使用した例については、High Resolution Spectral Analysis in MATLABを参照してください。同じ例で、フィルター バンク推定器とウェルチベースのスペクトル推定器の比較も示しています。一般に、フィルター バンクベースのスペクトル推定はスペクトル漏れが少なく、ピークが正確で、ノイズ フロアが正確な、より優れた分解能を示します。
これら 2 つの方法のアルゴリズムの詳細については、Spectrum Estimator ブロックのアルゴリズムの節を参照してください。
スペクトル推定器ブロックは、推定されたスペクトルに (単に可視化するだけではなく) 直接アクセスする必要がある場合に役に立ちます。出力されたパワー スペクトルは、モデル内の他のブロックへの入力として使用されるか、あるいは事後処理のためにワークスペースに記録される場合があります。スペクトルを可視化するには、スペクトル アナライザー スコープ ブロックを使用します。
平均修正ピリオドグラムのウェルチ法
ウェルチ法では、入力の時間領域データが、選択されたウィンドウ長とオーバーラップ パーセンテージに基づいてデータ セグメントに分割されます。この段階は、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 のチェビシェフ ウィンドウを使用してウィンドウ処理されています。周波数範囲は片側です。この場合、スペクトル推定の長さは 、計算区間は [0 Hz,22050 Hz] です。これに基づき、Array Plot スコープの "Sample increment" プロパティは、
に設定されます。ここでは、周波数単位を kHz でスケーリングするため、インクリメントが 1000 で除算されます。該当する [コンフィギュレーション プロパティ] ウィンドウを開くことで、スコープの Sample increment プロパティにアクセスできます。
分解能帯域幅は次のとおりです。
ここで、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 を以下のように計算します。
このモデルではハン ウィンドウが使用されていることに注意してください。この場合、FFT 長 NFFT は奇数であり、3073 (ウィンドウ長) と等しくなります。周波数範囲が片側であるため、スペクトル推定は長さ (NFFT + 1)/2 で、計算区間は [0,44100/2) になります。Array Plot スコープの "Sample increment" プロパティは、 kHz に設定されています。
ここでも、スペクトル アナライザーの結果とウェルチ法の推定ブロックは、モデルをシミュレートすることで検証できます。
参照
[1] Hayes, Monson H. Statistical Digital Signal Processing and Modeling Hoboken, NJ: John Wiley & Sons, 1996.