メインコンテンツ

freqz2

2 次元の周波数応答

説明

[H,fx,fy] = freqz2(h) は、2 次元 FIR フィルター h の 64 行 64 列の周波数応答 H を返します。h は相関カーネルの形式でなければなりません。freqz2 は、-1.0 ~ 1.0 の範囲の正規化された周波数として周波数ベクトル fxfy も返します。ここで、1.0 は、サンプリング周波数の 1/2 つまり π ラジアンに相当します。

[H,fx,fy] = freqz2(h,[nx,ny]) は、2 次元 FIR フィルター hnynx 列の周波数応答 H を返します。

[H,fx,fy] = freqz2(h,nx,ny) のように、nxny を 2 つの個別の引数として指定することもできます。

[H,fx,fy] = freqz2(h,[nx,ny],[dx,dy]) は、[dx,dy] を使用して、h のサンプル間の間隔をオーバーライドします。スカラーを指定して、x 次元と y 次元で同じ間隔を使用することもできます。

H = freqz2(h,fx,fy) は、fxfy で指定された周波数値における 2 次元 FIR フィルター h の周波数応答を返します。これらの周波数値は -1.0 ~ 1.0 の範囲でなければなりません。ここで、1.0 はサンプリング周波数の 1/2 つまり π ラジアンに相当します。

freqz2(___) は、出力引数が指定されていない場合、2 次元の振幅の周波数応答のメッシュ プロットを表示します。

すべて折りたたむ

この例では、fwind1 を使用した 2 次元フィルターの作成方法と、freqz2 を使用したフィルターの周波数応答の表示方法を説明します。

理想的な周波数応答を作成します。

Hd = zeros(16,16);
Hd(5:12,5:12) = 1;
Hd(7:10,7:10) = 0;

1 次元ウィンドウを作成します。この例では、長さ 16 のバートレット ウィンドウを使用します。

w = [0:2:16 16:-2:0]/16;

fwind1 と 1 次元ウィンドウを使用して 16 行 16 列のフィルターを作成します。このフィルターで理想に最も近い周波数応答が得られます。

h = fwind1(Hd,w);

フィルターの実際の周波数応答を表示します。

colormap(parula(64))
freqz2(h,[32 32]);
axis ([-1 1 -1 1 0 1])

Figure contains an axes object. The axes object with xlabel F indexOf x baseline F_x, ylabel F indexOf y baseline F_y contains an object of type surface.

入力引数

すべて折りたたむ

相関カーネル形式の 2 次元 FIR フィルター。数値行列として指定します。

周波数応答の点の数。正の整数として指定するか、[nx ny] 形式の正の整数から成る 2 要素ベクトルとして指定します。正の整数を指定した場合、freqz2nxny の両方にその点の数を使用します。

サンプル間隔。数値スカラーまたは [dx dy] 形式の 2 要素数値ベクトルとして指定します。dx によって x 次元の間隔が決まり、dy によって y 次元の間隔が決まります。スカラーを指定した場合、freqz2 はその値を使用して両方の次元におけるサンプル間の間隔を指定します。既定の間隔 0.5 は、サンプリング周波数 2.0 に相当します。

dxdy を変更すると、fxfy の値の分散が変わります。たとえば、dx0.5 ではなく 0.25 に設定すると、fx の値の範囲は -1.0 ~ 1.0 ではなく -2.0 ~ 2.0 になります。dy0.5 ではなく 1.0 に設定すると、fy の範囲は -1.0 ~ 1.0 ではなく -0.5 ~ 0.5 になります。

周波数ベクトル。数値ベクトルとして指定します。

データ型: double

出力引数

すべて折りたたむ

周波数応答。数値配列として返されます。

周波数ベクトル。数値ベクトルとして返されます。

データ型: double

周波数ベクトル。数値ベクトルとして返されます。

バージョン履歴

R2006a より前に導入

参考

(Signal Processing Toolbox)