メインコンテンツ

filternorm

デジタル フィルターの 2 ノルムまたは無限大ノルム

    説明

    L = filternorm(b,a) では、分子係数 b と分母係数 a で定義される安定したデジタル フィルターの 2 ノルムが計算されます。

    L = filternorm(___,pnorm) は、デジタル フィルターの計算に使用するフィルター ノルムのタイプを指定します。

    L = filternorm(___,tol) は、フィルター ノルムの計算で許容される許容誤差を指定します。

    すべて折りたたむ

    許容誤差を 10-10 として、バタワース IIR フィルターの 2 ノルムを計算します。正規化されたカットオフ周波数 0.5π rad/s およびフィルター次数 5 を指定します。

    [b1,a1] = butter(5,0.5);
    L2 = filternorm(b1,a1,2,1e-10)
    L2 = 
    0.7071
    

    正規化された遷移幅が 0.2π rad/s で次数 30 の FIR ヒルベルト変換器の無限大ノルムを計算します。

    b2 = firpm(30,[.1 .9],[1 1],"Hilbert");
    Linf = filternorm(b2,1,inf)
    Linf = 
    1.0028
    

    入力引数

    すべて折りたたむ

    フィルターの分子係数。実数値ベクトルとして指定します。

    データ型: double
    複素数のサポート: あり

    フィルターの分母係数。実数値ベクトルとして指定します。

    データ型: double
    複素数のサポート: あり

    デジタル フィルターの計算に使用するフィルター ノルムのタイプ。次のいずれかとして指定します。

    • 2 — 関数はフィルターの 2 ノルムを計算します。

    • inf — 関数はフィルターの無限大ノルムを計算します。

    データ型: double

    フィルター ノルムの推定で許容される許容誤差。正のスカラーとして指定します。

    メモ

    tol 引数は、IIR の 2 ノルムの計算に対してのみ指定できます。これは、pnorm2 に設定した場合にのみ適用されます。

    データ型: single | double
    複素数のサポート: あり

    出力引数

    すべて折りたたむ

    フィルターのノルム。実数の正のスカラーとして返されます。

    ヒント

    • フィルターのノルムは、通常、量子化の影響を抑えるためにデジタル フィルターをスケーリングする際に使用されます。スケーリングを行うと、データをオーバーフローさせずに、フィルターの S/N 比が改善されることがよくあります。また、フィルターのインパルス応答のエネルギーの計算に 2 ノルムを使用することもできます。

    アルゴリズム

    周波数応答 H(e) のフィルターが与えられている場合、1 ≤ p < ∞Lp ノルムは以下によって与えられます。

    H(ejω)p=(12πππ|H(ejω)|pdω)1/p.

    p → ∞ の場合、L ノルムは次のようになります。

    H(ejω)=maxπωπ|H(ejω)|.

    p = 2 の場合、パーセバルの定理により、以下のようになります。

    H(ejω)2=(12πππ|H(ejω)|2dω)1/2=(n|h(n)|2)1/2,

    ここで、h(n) はフィルターのインパルス応答です。インパルス応答のエネルギーは L2 の 2 乗ノルムとなります。

    参照

    [1] Jackson, L. B. Digital Filters and Signal Processing: with MATLAB Exercises. 3rd Ed. Hingham, MA: Kluwer Academic Publishers, 1996, Chapter 11.

    拡張機能

    すべて展開する

    C/C++ コード生成
    MATLAB® Coder™ を使用して C および C++ コードを生成します。

    バージョン履歴

    R2006a より前に導入

    参考

    |