Arbitrary response magnitude and phase filter specification object
d = fdesign.arbmagnphase
d = fdesign.arbmagnphase(specification)
d = fdesign.arbmagnphase(specification,specvalue1,specvalue2,...)
d = fdesign.arbmagnphase(specvalue1,specvalue2,specvalue3)
d = fdesign.arbmagnphase(...,fs)
d = fdesign.arbmagnphase constructs
an arbitrary magnitude filter specification object
d = fdesign.arbmagnphase(specification) initializes
Specification property for specifications
specification must be one of the
choices shown in the following table. Specification options are not
Description of Resulting Filter
Single band design (default). FIR and IIR (
FIR multiband design where
IIR single band design.
The following table describes the specification arguments.
Number of bands in the multiband filter.
Frequency vector. Frequency values specified in
Complex frequency response values.
Filter order for FIR filters and the numerator and denominator
orders for IIR filters (when not specified by
Numerator order for IIR filters.
Denominator order for IIR filter designs.
By default, this method assumes that all frequency specifications are supplied in normalized frequency.
h are the input
arguments you use to define the filter response desired. Each frequency
value you specify in
f must have a corresponding
response value in
h. This example creates a filter
with two passbands (
4) and shows how
related. This example is for illustration only. It is not an actual
Define the frequency vector
0.1 0.2 0.4 0.5 0.6 0.9 1.0]
Define the response vector
0.5 0.5 0.1 0.1 0.8 0.8 0]
These specifications connect
shown in the following table.
f (Normalized Frequency)
h (Response Desired at f)
A response with two passbands—one roughly between 0.1
and 0.2 and the second between 0.6 and 0.9—results from the
the following figure that resembles a filter with two passbands.
The second example in Examples shows this plot in more detail
with a complex filter response for
h. In the example,
complex values for the response.
Different specification types often have different design methods
get a list of design methods available for a given specification option
and specifications object.
d = fdesign.arbmagnphase(specification,specvalue1,specvalue2,...) initializes
the filter specification object with
and so on. Use
get(d,'description') for descriptions
of the various specifications
d = fdesign.arbmagnphase(specvalue1,specvalue2,specvalue3) uses
the default specification option
the filter order, filter frequency vector, and the complex frequency
response vector to the values
d = fdesign.arbmagnphase(...,fs) specifies
the sampling frequency in Hz. All other frequency specifications are
also assumed to be in Hz when you specify
fdesign.arbmagnphase to model a complex analog filter.
d = fdesign.arbmagnphase('n,f,h',100); % N=100, f and h set to defaults. design(d,'freqsamp','SystemObject',true);
For a more complex example, design a bandpass filter with low group delay by specifying the desired delay and using f and h to define the filter bands.
n = 50; % Group delay of a linear phase filter would be 25. gd = 12; % Set the desired group delay for the filter. f1=linspace(0,.25,30); % Define the first stopband frequencies. f2=linspace(.3,.56,40);% Define the passband frequencies. f3=linspace(.62,1,30); % Define the second stopband frequencies. h1 = zeros(size(f1)); % Specify the filter response at the freqs in f1. h2 = exp(-1j*pi*gd*f2); % Specify the filter response at the freqs in f2. h3 = zeros(size(f3)); % Specify the response at the freqs in f3. d=fdesign.arbmagnphase('n,b,f,h',50,3,f1,h1,f2,h2,f3,h3); D = design(d,'equiripple','SystemObject',true); fvtool(D,'Analysis','freq');