Signal Processing Toolbox    
freqz

ディジタルフィルタの周波数応答

表示

詳細

[h,w] = freqz(b,a,n) は、ベクトルab で各々表されている(実数または複素数)分子と分母の多項式で決定されるディジタルフィルタの伝達関数から周波数応答ベクトル h と対応する周波数ベクトル wを出力します。ベクトルhwは、共に長さnです。周波数ベクトルw は、0から ラデアン/サンプルの範囲の値です。整数nを設定していない場合、または、空ベクトルを設定していない場合、周波数応答は、デフォルトの512サンプルを使って計算します。

h = freqz(b,a,w) は、ベクトルwで設定した(ラデアン/サンプル)周波数で計算された周波数応答ベクトルhを出力します。ベクトルw は、任意の長さに設定できます。

[h,w] = freqz(b,a,n,'whole') は、周波数応答を計算するために、単位円全体をn個の等間隔で分割したものを使います。周波数ベクトルw は、長さnをもち、0から2ラデアン/サンプルの範囲内の値を取ります。

[h,w,units] = freqz(b,a,...) は、周波数ベクトル w に設定した単位をオプション文字引数unitsに出力します。unitsに出力される文字列は、'rad/sample'で、ラデアン/サンプルを意味しています。

[h,f] = freqz(b,a,n,fs) は、ディジタルフィルタの伝達関数が、ベクトルba で表される(実数または複素数)分子多項式と分母多項式であるものに対する周波数応答ベクトルhと対応する周波数ベクトルfを出力します。ベクトルhfは共に長さnです。この書式で、周波数応答は、スカラfsで指定されるサンプル周波数(単位は Hz)を使って、計算されます。周波数ベクトルfは、ヘルツ単位で、0からfs/2 Hzの範囲の値を取ります。

h = freqz(b,a,f,fs) は、ベクトルfで設定された周波数(Hz単位)で周波数応答ベクトルhを計算します。ベクトルfは、任意の長さを取ることができます。

[h,f] = freqz(b,a,n,'whole',fs) は、周波数応答を計算するために単位円全体をn等分した点を使います。周波数ベクトルfは、0からfs  Hzの範囲の値をもつnの長さです。

[h,f,units] = freqz(b,a,n,'whole',fs) は、周波数ベクトルfを設定している単位をオプションの文字引数unitsに出力します。unitsに出力される文字列は、'Hz'で、ヘルツを意味しています。

freqz(b,a,...) は、フィルタの周波数応答の大きさと連続性をもたせた位相をプロットします。プロットは、カレントフィギュアウインドウ内に表示されます。

例題

FIRフィルタの大きさと位相応答をプロットします。

注意

freqzは、周波数応答を計算するためにFFTアルゴリズムを使っているので、3番目の引数を2のベキ乗数を設定することをお勧めします。詳細は、fftのリファレンスを参照してください。

アルゴリズム

デジタルフィルタの周波数応答[1]は、ejで計算した伝達関数として内挿されます。つぎの型で有理伝達関数を常に書き表します。

freqzは、ユーザが設定した(実数または複素数)分子多項式や分母多項式から伝達関数を決定します。そして、デジタルフィルタの複素数周波数応答H(ej) を出力します。周波数応答は、ユーザが使用した書式で決定したサンプル点で計算します。

freqzは、入力引数として周波数ベクトルを設定しない場合、FFTアルゴリズムを使って、周波数応答を計算します。これは、伝達関数の分子係数と分母係数の比として、周波数応答を計算します。分子係数と分母係数の長さが、希望する長さになるように(2のベキ乗数)ゼロを付加します。

周波数ベクトルを入力引数として設定すると、freqzは、参考文献[1]に記述している入れ子になった多項式計算のHorner法を使って、各周波数点で多項式を計算し、分子の応答を分母の応答で割り算します。

参考
abs
絶対値(ゲイン)
angle
位相角
fft
1次元高速フーリエ変換
filter
巡回型(IIR)または非巡回型(FIR)フィルタによるデータのフィルタリング
freqs
アナログフィルタの周波数応答
freqzplot
ディジタルフィルタの周波数応答をプロット
impz
ディジタルフィルタのインパルス応答
invfreqz
周波数データから離散系フィルタの同定
logspace
対数等間隔ベクトルの生成(MATLAB Function Referenceを参照)

参考文献

[1] Oppenheim, A.V., and R.W. Schafer, Discrete-Time Signal Processing, Prentice-Hall, 1989, pp. 203-205.


 freqspace freqzplot