Main Content

filternorm

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

構文

L = filternorm(b,a)
L = filternorm(b,a,pnorm)
L = filternorm(b,a,2,tol)

説明

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

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

L = filternorm(b,a,pnorm) では、デジタル フィルターの 2 ノルムまたは無限大ノルムが計算されます。ここで、pnorm は、2 または inf のいずれかです。

L = filternorm(b,a,2,tol) では、指定許容誤差を tol として、IIR フィルターの 2 ノルムが計算されます。許容誤差は、IIR の 2 ノルムの計算でのみ指定できます。この場合、pnorm は 2 でなければなりません。tol を指定しない場合、既定値の 10-8 になります。

すべて折りたたむ

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

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

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

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

アルゴリズム

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

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

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

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

p = 2 の場合、Parseval の定理により、以下のようになります。

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 より前に導入

参考

|