Filter specification object
filtSpecs = fdesign.
response
filtSpecs = fdesign.response
(spec)
filtSpecs = fdesign.response
(...,Fs)
filtSpecs = fdesign.response
(...,magunits)
filtSpecs = fdesign.
returns
a filter specification object, response
filtSpecs
, of filter
response response
. To create filters from filtSpecs
,
use one of the design methods listed in Using Filter Design Methods with Specification Objects.
Several of the filter response types described below are only available if your installation includes the DSP System Toolbox™. The DSP System Toolbox significantly expands the functionality available for the specification, design, and analysis of filters.
Here is how you design filters using fdesign
.
Use fdesign.
response
to
construct a filter specification object.
Use designmethods
to
determine which filter design methods work for your new filter specification
object.
Use design
to
apply your filter design method from step 2 to your filter specification
object to construct a filter object.
Use FVTool to inspect and analyze your filter object.
fdesign
does not create filters. fdesign
returns
a filter specification object that contains the specifications for
a filter, such as the passband cutoff or attenuation in the stopband.
To design a filter from a filter specification object filtSpecs
,
use filtSpecs
with a filter design method such
as butter
— IIRbutter = design(filtSpecs,'butter','SystemObject',true)
.
response
can be one of the entries
in the following table that specify the filter response desired, such
as a bandstop filter or an interpolator.
fdesign Response Method  Description 



















































Use the doc fdesign.
response
syntax
at the MATLAB prompt to get help on a specific structure. Using doc
in
a syntax like
doc fdesign.lowpass doc fdesign.bandstop
gets more information about the lowpass or bandstop structure objects.
Each response
has a property Specification
that
defines the specifications to use to design your filter. You can use
defaults or specify the Specification
property
when you construct the specifications object.
Using the Specification
property, you can
provide filter constraints such as the filter order or the passband
attenuation to use when you construct your filter from the specification
object.
fdesign
returns a filter specification
object. Every filter specification object has the following properties.
Property Name  Default Value  Description 

 Depends on the chosen type  Defines the type of filter to design, such as an interpolator or bandpass filter. This is a readonly value. 
 Depends on the chosen type  Defines the filter characteristics used to define the
desired filter performance, such as the cutoff frequency 
 Depends on the filter type you choose  Contains descriptions of the filter specifications used to define the object, and the filter specifications you use when you create a filter from the object. This is a readonly value. 
 Logical  Determines whether the filter calculation uses normalized
frequency from 0 to 1, or the frequency band from 0 to F_{s}/2,
the sampling frequency. Accepts either 
In addition to these properties, filter specification objects may have other properties as well, depending on whether they design singlerate filters or multirate filters.
Added Properties for Multirate Filters  Description 

 Specifies the amount to decrease the sampling rate. Always a positive integer. 
 Specifies the amount to increase the sampling rate. Always a positive integer. 
 Polyphase length is the length of each polyphase subfilter
that composes the decimator or interpolator or ratechange factor
filters. Total filter length is the product of 
filtSpecs = fdesign.
.
In response
(spec)spec
, you specify the variables to use that
define your filter design, such as the passband frequency or the stopband
attenuation. The specifications are applied to the filter design method
you choose to design your filter.
For example, when you create a default lowpass filter specification
object, fdesign.lowpass
sets the passband frequency Fp
,
the stopband frequency Fst
, the stopband attenuation Ast
,
and the passband ripple Ap
:
filtSpecs = fdesign.lowpass
Use without a terminating semicolon to display the filter specifications.
The default specification 'Fp,Fst,Ap,Ast'
is
only one of the possible specifications for fdesign.lowpass
.
To see all available specifications:
filtSpecs = fdesign.lowpass;
set(filtSpecs,'Specification')
The DSP System Toolbox software supports all available specification options. The Signal Processing Toolbox™ supports a subset of the specification options. See the reference pages for the filter specification object to determine which specification option your installation supports.
One important note is that the specification option you choose determines which design methods apply to the filter specifications object.
Specifications that do not contain the filter order result in
minimum order designs when you invoke the design
method:
filtSpecs = fdesign.lowpass; % Specification is 'Fp,Fst,Ap,Ast' FIReq = design(filtSpecs,'equiripple','SystemObject',true); length(FIReq.Numerator) % Returns 43. The filter order is 42 fvtool(FIReq) % View magnitude
filtSpecs = fdesign.
specifies
the sampling frequency in Hz to use in the filter specifications.
The sampling frequency is a scalar trailing all other input arguments.
If you specify a sampling frequency, all frequency specifications
are in Hz.response
(...,Fs)
filtSpecs = fdesign.
specifies
the units for any magnitude specification you provide in the input
arguments. response
(...,magunits)magunits
can be one of the following
options:
'linear'
— specify the magnitude
in linear units
'dB'
— specify the magnitude
in decibels
'squared'
— specify the
magnitude in power units
When you omit the magunits
argument, fdesign
assumes
that all magnitudes are in decibels. Note that fdesign
stores
all magnitude specifications in decibels (converting to decibels when
necessary) regardless of how you specify the magnitudes.
After you create a filter specification object, you use a filter
design method to implement your filter with a selected algorithm.
Use designmethods
to determine valid design methods
for your filter specification object.
filtSpecs = fdesign.lowpass('N,Fc,Ap,Ast',10,0.2,0.5,40); designmethods(filtSpecs) % Design FIR equiripple filter FIReq = design(filtSpecs,'equiripple','SystemObject',true);
When you use any of the design methods without providing an output argument, the resulting filter design appears in FVTool by default.
Along with filter design methods, fdesign
works
with supporting methods that help you create filter specification
objects or determine which design methods work for a given specifications
object.
Supporting Function  Description 

Set all of the specifications simultaneously.  
Return the design methods.  
Return the input arguments and default values that apply to a specifications object and method 
You can set filter specification values by passing them after
the Specification
argument, or by passing the values
without the Specification
.
Filter object constructors take the input arguments in the same
order as setspecs
and Specification
.
Enter doc setspecs
at
the prompt for more information about using setspecs
.
When the first input to fdesign
is not a
valid Specification
option like 'N,Fc'
, fdesign
assumes
that the input argument is a filter specification and applies it using
the default Specification
option — 'Fp,Fst,Ap,Ast'
for
a lowpass object, for example.