Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

fwind1

2-D FIR filter using 1-D window method

Syntax

h = fwind1(Hd,win)
h = fwind1(Hd,win1,win2)
h = fwind1(f1,f2,Hd,___)

Description

example

h = fwind1(Hd,win) designs a two-dimensional FIR filter h with frequency response Hd. (fwind1 returns h as a computational molecule, which is the appropriate form to use with filter2.) fwind1 uses the one-dimensional window win to form an approximately circularly symmetric two-dimensional window using Huang's method.

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

h = fwind1(Hd,win1,win2) uses the two 1-D windows, win1 and win2, to create a separable 2-D window. If length(win1) is n and length(win2) is m, then h is m-by-n. The length of the windows controls the size of the resulting filter.

h = fwind1(f1,f2,Hd,___) lets you specify the desired frequency response Hd at arbitrary frequencies (f1 and f2) along the x- and y-axes.

Examples

collapse all

This example shows how to design an approximately circularly symmetric two-dimensional bandpass filter using a 1-D window method.

Create the frequency range vectors f1 and f2 using freqspace. These vectors have length 21.

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

Compute the distance of each position from the center frequency.

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

Create a matrix Hd that contains the desired bandpass response. In this example, the desired passband is between 0.1 and 0.5 (normalized frequency, where 1.0 corresponds to half the sampling frequency, or radians).

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

Display the ideal bandpass response.

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

Design the 1-D window. This example uses a Hamming window of length 21.

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

Plot the 1-D window.

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

Using the 1-D window, design the filter that best produces this frequency response

h = fwind1(Hd,win);

Display the actual frequency response of this filter.

freqz2(h)

Input Arguments

collapse all

Desired frequency response, specified as a numeric matrix. Hd is sampled at equally spaced points between -1.0 and 1.0 (in normalized frequency, where 1.0 corresponds to half the sampling frequency, or π radians) along the x and y frequency axes. For accurate results, use frequency points returned by freqspace to create Hd.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

1-D window, specified as a numeric matrix. You can specify win using windows from the Signal Processing Toolbox software, such as boxcar, hamming, hanning, bartlett, blackman, kaiser, or chebwin. If length(win) is n, then h is n-by-n.The length of the window controls the size of the resulting filter.

Data Types: single | double

1-D window, specified as a numeric matrix.

Data Types: single | double

1-D window, specified as a numeric matrix.

Data Types: single | double

Desired frequency along the x-axis. The frequency vector should be in the range -1.0 to 1.0, where 1.0 corresponds to half the sampling frequency, or π radians.

Data Types: single | double

Desired frequency along the y-axis. The frequency vector should be in the range -1.0 to 1.0, where 1.0 corresponds to half the sampling frequency, or π radians.

Data Types: single | double

Output Arguments

collapse all

2-D FIR filter, returned as a numeric matrix of class double, when the input Hd is of class double or any integer class. If Hd is of class single, the output matrix is of class single.

Algorithms

fwind1 takes a one-dimensional window specification and forms an approximately circularly symmetric two-dimensional window using Huang's method,

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

where w(t) is the one-dimensional window and w(n1,n2) is the resulting two-dimensional window.

Given two windows, fwind1 forms a separable two-dimensional window:

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

fwind1 calls fwind2 with Hd and the two-dimensional window. fwind2 computes h using an inverse Fourier transform and multiplication by the two-dimensional window:

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

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

References

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

Introduced before R2006a

Was this topic helpful?