Main Content

filter2

2 次元のデジタル フィルター

説明

Y = filter2(H,X) は、行列 H の係数に従って、有限インパルス応答フィルターをデータ行列 X に適用します。

Y = filter2(H,X,shape) は、shape に従って、フィルター処理されたデータのサブセクションを返します。たとえば、Y = filter2(H,X,'valid') は、ゼロが加えられたエッジを含めずに計算された、フィルター処理されたデータのみを返します。

すべて折りたたむ

関数 filter2 を使用して、イメージやその他の 2 次元データをデジタル フィルター処理できます。この関数は関数 conv2 と密接に関連しています。

内部の高さが 1 と等しい 2 次元台座を作成してプロットします。

A = zeros(10);
A(3:7,3:7) = ones(5);
mesh(A)

Figure contains an axes object. The axes object contains an object of type surface.

フィルター係数の行列 H に従って A 内のデータをフィルター処理し、処理済みデータの非スパース行列を返します。

H = [1 2 1; 0 0 0; -1 -2 -1];
Y = filter2(H,A,'full');
mesh(Y)

Figure contains an axes object. The axes object contains an object of type surface.

H を 180 度回転して、その結果を A と畳み込みます。出力は、H の係数を使用して A 内のデータをフィルター処理した結果と等価です。

C = conv2(A,rot90(H,2));
mesh(C)

Figure contains an axes object. The axes object contains an object of type surface.

入力引数

すべて折りたたむ

有理伝達関数の係数。行列として指定します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
複素数のサポート: あり

入力データ。行列として指定します。XH の一方または両方が single 型である場合、出力も single 型になります。それ以外の場合、filter2double 型を返します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
複素数のサポート: あり

フィルター処理されたデータのサブセクション。次の値のいずれかとして指定します。

  • 'same' — フィルター処理されたデータの中央部分を X と同じサイズで返します。

  • 'full' — 非スパース 2 次元のフィルター処理されたデータを返します。

  • 'valid' — フィルター処理されたデータのうち、ゼロが加えられたエッジを含めずに計算された部分のみを返します。

アルゴリズム

関数 filter2 は、入力 X と、係数行列 H を 180 度回転した行列との 2 次元の畳み込みを実行して、データをフィルター処理します。具体的には、filter2(H,X,shape)conv2(X,rot90(H,2),shape) と等価です。

拡張機能

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

バージョン履歴

R2006a より前に導入

参考

| |