## Documentation Center |

2-D FIR filter using 2-D window method

`h = fwind2(Hd, win)h = fwind2(f1, f2, Hd, win)`

Use `fwind2` to design two-dimensional FIR
filters using the window method. `fwind2` uses a
two-dimensional window specification to design a two-dimensional FIR
filter based on the desired frequency response `Hd`. `fwind2` works
with two-dimensional windows; use `fwind1` to work
with one-dimensional windows.

`h = fwind2(Hd, win)` produces
the two-dimensional FIR filter `h` using an inverse
Fourier transform of the desired frequency response `Hd` and
multiplication by the window `win`. `Hd` is
a matrix containing the desired frequency response at equally spaced
points in the Cartesian plane. `fwind2` returns `h` as
a computational molecule, which is the appropriate form to use with `filter2`. `h` is
the same size as `win`.

For accurate results, use frequency points returned by `freqspace` to
create `Hd`. (See the entry for `freqspace` for
more information.)

`h = fwind2(f1, f2, Hd, win)` lets
you specify the desired frequency response `Hd` at
arbitrary frequencies (`f1` and `f2`)
along the *x-* and *y*-axes.
The frequency vectors `f1` and `f2` should
be in the range -1.0 to 1.0, where 1.0 corresponds to half the sampling
frequency, or π radians. `h` is the same size
as `win`.

The input matrix `Hd` can be of class `double` or
of any integer class. All other inputs to `fwind2` must
be of class `double`. All outputs are of class `double`.

Use `fwind2` to design an approximately circularly
symmetric two-dimensional bandpass filter with passband between 0.1
and 0.5 (normalized frequency, where 1.0 corresponds to half the sampling
frequency, or π radians):

Create a matrix

`Hd`that contains the desired bandpass response. Use`freqspace`to create the frequency range vectors`f1`and`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)

Create a two-dimensional Gaussian window using

`fspecial`.win = fspecial('gaussian',21,2); win = win ./ max(win(:)); % Make the maximum window value be 1. mesh(win)

Design the filter using the window from step 2.

h = fwind2(Hd,win); freqz2(h)

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

Was this topic helpful?