## Documentation Center |

2-D FIR filter using frequency sampling

`h = fsamp2(Hd)h = fsamp2(f1, f2, Hd,[m n])`

`h = fsamp2(Hd)` designs a
two-dimensional FIR filter with frequency response `Hd`,
and returns the filter coefficients in matrix `h`.
(`fsamp2` returns `h` as a computational
molecule, which is the appropriate form to use with `filter2`.)
The filter `h` has a frequency response that passes
through points in `Hd`. If `Hd` is `m`-by-`n`,
then `h` is also `m`-by-`n`.

`fsamp2` designs two-dimensional FIR filters
based on a desired two-dimensional frequency response sampled at points
on the Cartesian plane. `Hd` is a matrix containing
the desired frequency response sampled at equally spaced points between
-1.0 and 1.0 along the *x* and *y* frequency
axes, where 1.0 corresponds to half the sampling frequency, or π
radians.

For accurate results, use frequency points returned by `freqspace` to create `Hd`.

`h = fsamp2(f1, f2, Hd,[m n])` produces
an `m`-by-`n` FIR filter by matching
the filter response at the points in the vectors `f1` and `f2`.
The frequency vectors `f1` and `f2` are
in normalized frequency, where 1.0 corresponds to half the sampling
frequency, or π radians. The resulting filter fits the desired
response as closely as possible in the least squares sense. For best
results, there must be at least `m*n` desired frequency
points. `fsamp2` issues a warning if you specify
fewer than `m*n` points.

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

Use `fsamp2` to design an approximately 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)

Design the filter that passes through this response.

h = fsamp2(Hd); freqz2(h)

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

Was this topic helpful?