このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Simulink における群遅延の推定
この例では、Simulink® でフィルターの群遅延を推定する方法を説明します。
フィルターの群遅延を推定するには、位相応答を抽出して周波数に対する負の微分を計算します。群遅延は、 のように定義されます。
モデル例
Simulink モデル GroupDelayEstimator は、次のブロックを使用して指定されたフィルターの群遅延を推定します。
Discrete Transfer Function Estimator - 入力と出力を使ってフィルターの離散伝達関数を推定します。
Phase Extractor - フィルターの伝達関数推定から位相応答を抽出します。
Gain (Simulink) - 位相応答をスケーリングして周波数を 0 からサンプルレートの半分まで非正規化します。ここでは、サンプルレートが 44.1kHz に設定されています。この値の負数を使用して群遅延のサンプル数を推定しています。
Differentiator Filter - 周波数に対する位相の微分を取得します。
Array Plot - サンプル数によりフィルターの群遅延を表示します。
Filter Selector ブロックを使用するとさまざまなフィルターを選択できます。群遅延の推定器の出力にはノイズが含まれています。ノイズをフィルター処理するために、推定器の出力はローパス フィルターを通されるため、推定された群遅延が滑らかに可視化されます。このローパス フィルターにはフィルターの次数の半分に相当する群遅延があります。そのため、この群遅延を補正するために最初のサンプルがいくつか除外されています。
例の検証
モデルを開いて実行する。Array Plot ブロックで、選択したフィルターの群遅延をサンプル数で見ることができます。線形位相の FIR Filter ブロックの理論値はフィルターの次数の半分になります。Biquad フィルターと Notch フィルターでは、ブロック マスクを開いて [フィルター応答の表示] ボタンをクリックすると理論上の群遅延を可視化できます。Notch Filter ブロックでは、ノッチ周波数を調整してそれに伴う群遅延の変化を見ることができます。
群遅延の推定器の後にある Lowpass Filter ブロックは推定を平滑化するために使用します。このフィルターのカットオフ周波数を調整すると推定された群遅延のノイズがよくわかるようになります。
参考
ブロック
- Discrete Transfer Function Estimator | Phase Extractor | Gain (Simulink) | Differentiator Filter | Array Plot | Biquad Filter | Lowpass Filter