最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fwind1

1 次元ウィンドウ法を使用する 2 次元 FIR フィルター

説明

h = fwind1(Hd,win) は目的の周波数応答 Hd に基づく 2 次元 FIR フィルター h を設計するために 1 次元ウィンドウ仕様を使用します。fwind1h を計算分子として返します。これは filter2 と共に使用するために最適な形式です。fwind1 は 1 次元ウィンドウ win を使用して、Huang 法でほぼ円対称な 2 次元ウィンドウを作成します。

fwind1 で使用できるのは 1 次元ウィンドウのみで、fwind2 を使用して、2 次元ウィンドウで処理します。

h = fwind1(Hd,win1,win2) では 2 つの 1 次元ウィンドウ win1win2 を使用して分離可能な 2 次元ウィンドウを作成します。length(win1)nlength(win2)m の場合、hmn 列です。ウィンドウの長さは結果として得られるフィルターのサイズを制御します。

h = fwind1(f1,f2,Hd,___) では目的とする周波数応答 Hdx 軸と y 軸に沿って任意の周波数 (f1f2) で指定することができます。

すべて折りたたむ

この例では、1 次元ウィンドウ法を使用して、ほぼ円対称な 2 次元バンドパス フィルターを設計する方法を説明します。

freqspace を使用して、周波数範囲ベクトル f1 および f2 を作成します。これらのベクトルの長さは 21 です。

[f1,f2] = freqspace(21,'meshgrid');

中心周波数から各位置までの距離を計算します。

r = sqrt(f1.^2 + f2.^2);

目的とするバンドパス応答を格納する行列 Hd を作成します。この例で目的とする通過帯域は 0.1 ~ 0.5 (正規化周波数。ここで、1.0 はサンプリング周波数の 1/2 つまり π ラジアンに相当します) です。

Hd = ones(21); 
Hd((r<0.1)|(r>0.5)) = 0;

理想的なバンドパス応答を表示します。

colormap(parula(64))
mesh(f1,f2,Hd)

1 次元ウィンドウを設計します。この例では、長さ 21 のハミング ウィンドウを使用します。

win = 0.54 - 0.46*cos(2*pi*(0:20)/20);

1 次元ウィンドウをプロットします。

figure
plot(linspace(-1,1,21),win);

1 次元ウィンドウを使用して、この周波数応答を最適に引き出すフィルターを設計します。

h = fwind1(Hd,win);

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

freqz2(h)

入力引数

すべて折りたたむ

目的の周波数応答。数値行列として指定します。Hd は周波数軸 xy に沿って正規化された周波数で -1.0 ~ 1.0 に等間隔に配置された点でサンプリングされた目的の周波数応答を格納する行列です。ここで、1.0 はサンプリング周波数の 1/2 つまり π ラジアンに相当します。結果の精度を上げるには、freqspace によって返される周波数点を使用して Hd を作成してください

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

1 次元ウィンドウ。数値行列として指定します。win を指定するには、Signal Processing Toolbox ソフトウェアのウィンドウとして、boxcarhamminghanningbartlettblackmankaiserchebwin などを使用できます。length(win)n の場合、hnn 列です。ウィンドウの長さは結果として得られるフィルターのサイズを制御します。

データ型: single | double

1 次元ウィンドウ。数値行列として指定します。

データ型: single | double

1 次元ウィンドウ。数値行列として指定します。

データ型: single | double

x 軸上の目的の周波数。周波数ベクトルは -1.0 ~ 1.0 の範囲でなければなりません。ここで、1.0 はサンプリング周波数の 1/2 つまり π ラジアンに相当します。

データ型: single | double

y 軸上の目的の周波数。周波数ベクトルは -1.0 ~ 1.0 の範囲でなければなりません。ここで、1.0 はサンプリング周波数の 1/2 つまり π ラジアンに相当します。

データ型: single | double

出力引数

すべて折りたたむ

2 次元 FIR フィルター。入力 Hd がクラス double または任意の整数クラスである場合、クラス double の数値行列として返されます。Hdsingle クラスの場合は、出力行列は single クラスです。

アルゴリズム

fwind1 は 1 次元ウィンドウ仕様を使用して Huang 法を使用するほぼ円対称な 2 次元ウィンドウを形成します。

w(n1,n2)=w(t)|t=n12+n22,

ここで、w(t) は 1 次元ウィンドウ、w(n1,n2) は結果として得られる 2 次元ウィンドウです。

2 つのウィンドウが与えられると、fwind1 は分離可能な 2 次元ウィンドウを形成します。

w(n1,n2)=w1(n1)w2(n2).

fwind1Hd と 2 次元ウィンドウで fwind2 を呼び出します。fwind2 は逆フーリエ変換と 2 次元ウィンドウによる乗算を使用して h を計算します。

hd(n1,n2)=1(2π)2ππππHd(ω1,ω2)ejω1n1ejω2n2dω1dω2

h(n1,n2)=hd(n1,n2)w(n2,n2).

参照

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

R2006a より前に導入