Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

fsamp2

周波数サンプリングを使用する 2 次元 FIR フィルター

説明

h = fsamp2(Hd) は周波数応答が Hd の 2 次元 FIR フィルターを設計し、フィルター係数を行列 h で返します。フィルター h には、Hd の点を通過する周波数応答があります。fsamp2 はデカルト平面の点でサンプリングされた目的の 2 次元周波数応答を基に 2 次元の FIR フィルターを設計します。

h = fsamp2(f1,f2,Hd,[m n])mn 列の FIR フィルターを生成します。具体的には、ベクトル f1f2 の点でフィルター応答のマッチングを行います。周波数ベクトル f1f2 は正規化された周波数にあります。ここで、1.0 はサンプリング周波数の 1/2 つまり π ラジアンに相当します。結果として得られるフィルターは、最小二乗法で目的の応答に可能な限り近似します。最適な結果を得るには、目的の周波数点が m*n 個以上存在しなければなりません。指定する点の数が m*n 未満の場合、fsamp2 は警告を表示します。

すべて折りたたむ

fsamp2 を使用してほぼ対称な 2 次元バンドパス フィルターを設計します。通過帯域は 0.1 ~ 0.5 です (これは正規化された周波数であり、1.0 はサンプリング周波数の 1/2 つまり π ラジアンに相当します)。

目的とするバンドパス応答を格納する行列 Hd を作成します。freqspace を使用して、周波数ベクトル f1 および f2 を作成します。

[f1,f2] = freqspace(21,'meshgrid');
Hd = ones(21); 
r = sqrt(f1.^2 + f2.^2);
Hd((r<0.1)|(r>0.5)) = 0;
colormap(jet(64))
mesh(f1,f2,Hd)

この応答を通過するフィルターを設計します。

h = fsamp2(Hd);
freqz2(h)

入力引数

すべて折りたたむ

周波数応答。数値行列として指定します。Hd は周波数軸 xy に沿って -1.0 ~ 1.0 に等間隔に配置された点でサンプリングされた目的の周波数応答を格納する行列です。1.0 の値がサンプリング周波数の 1/2、つまり π ラジアンに対応します。

Hd(f1,f2)=Hd(ω1,ω2)|ω1=πf1,ω2=πf1

最適の結果を得るには、freqspace によって返される周波数点を使用して Hd を作成してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

データ型: double

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

データ型: double

出力 FIR フィルター h のサイズ。正の整数の 2 要素ベクトルとして指定します。このフィルターには m 個の行と n 個の列があります。

データ型: double

出力引数

すべて折りたたむ

2 次元 FIR フィルター。数値配列として返されます。fsamp2h を計算用分子として返します。これは、filter2 で使用するのに適した形式です。周波数応答行列 Hd を指定すると、h は、それと同じサイズになります。Hdsingle クラスの場合は、hsingle クラスになります。それ以外の場合、h はクラス double です。

データ型: single | double

アルゴリズム

fsamp2 は目的とする周波数応答の逆離散フーリエ変換を行ってフィルター h を計算します。目的とする周波数応答が実数で対称 (ゼロ位相) となる場合、結果として得られるフィルターもゼロ位相になります。

参照

[1] Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, pp. 213-217.

バージョン履歴

R2006a より前に導入