Signal Processing Toolbox    
dfilt

Construct a discrete-time, filter object

Syntax

Hd = [dfilt.structure(input1,...),dfilt.structure(input1,...),...]

Description

Hd = dfilt.structure(input1,...) returns a discrete-time filter object, Hd, of type structure. You must use a structure with dfilt. Each structure takes one or more inputs. If you specify a dfilt.structure with no inputs, a default filter is created.

Hd = [dfilt.structure(input1,...),dfilt.structure(input1,...),...] returns a vector containing dfilt filter objects.

Structures

Structures for dfilt specify the type of filter structure. Available types of structures for dfilt are shown below.

dfilt.structure
Description
dfilt.df1
Direct-form I
dfilt.df1sos
Direct-form I, second-order sections
dfilt.df1t
Direct-form I transposed
dfilt.df1tsos
Direct-form I transposed, second-order sections
dfilt.df2
Direct-form II
dfilt.df2sos
Direct-form II, second-order sections
dfilt.df2t
Direct-form II transposed
dfilt.df2tsos
Direct-form II transposed, second-order sections


dfilt.dffir
Direct-form FIR
dfilt.dffirt
Direct-form FIR transposed
dfilt.dfsymfir
Direct-form symmetric FIR
dfilt.dfasymfir
Direct-form antisymmetric FIR
dfilt.fftfir
Overlap-add FIR


dfilt.latticeallpass
Lattice allpass
dfilt.latticear
Lattice autoregressive (AR)
dfilt.latticearma
Lattice autoregressive moving- average (ARMA)
dfilt.latticemamax
Lattice moving-average (MA) for maximum phase
dfilt.latticemamin
Lattice moving-average (MA) for minimum phase


dfilt.calattice
Coupled, allpass lattice (available only with the Filter Design Toolbox)
dfilt.calatticepc
Coupled, allpass lattice with power complementary output (available only with the Filter Design Toolbox)


dfilt.statespace
State-space


dfilt.scalar
Scalar gain object
dfilt.cascade
Filters arranged in series
dfilt.parallel
Filters arranged in parallel

For more information on each structure, refer to its reference page.

Methods

Methods provide ways of performing functions directly on your dfilt object without having to specify the filter parameters again. You can apply these methods directly on the variable you assigned to your dfilt object.

For example, if you create a dfilt object, Hd, you can check whether it has linear phase with islinphase(Hd), view its frequency response plot with fvtool(Hd), or obtain its frequency response values with h=freqz(Hd). You can use all of the methods below in this way.

Some of the methods listed below have the same name as functions in the Signal Processing Toolbox and they behave similarly. This is called overloading of functions.

Method
Description
addsection

Adds a section to a cascade or parallel object. See dfilt.cascade and dfilt.parallel.

block

(Available only with the DSP Blockset.)

block(Hd) creates a Simulink block of the dfilt object. The block method can specify these properties/values:

'Destination' --'Current' places the block in the current Simulink model. 'New' creates a new model. Default value is 'Current'.

'Blockname'--assigns the entered string to the block name. Default name is 'Filter'.

'OverwriteBlock'--'on' overwrites the block generated by the block method and defined by Blockame. Default is 'off'.

'MapStates'--'on' specifies initial conditions in the block. Default is 'off'. See Using Filter States.

cascade

Returns the series combination of two dfilt objects. See dfilt.cascade.

coefficients
Returns the filter coefficients.
convert
Converts a dfilt object from one filter structure to another filter structure.
filter
Performs filtering using the dfilt object.
freqz
Returns the frequency response in fvtool.
grpdelay
Returns the group delay in fvtool.
impz
Returns the impulse response in fvtool.

isallpass

Returns 1 if the dfilt object has allpass filter sections or 0 if it does not.

iscascade

Returns 1 if the dfilt object is cascaded or 0 if it is not.

isfir

Returns 1 if the dfilt object has finite impulse response (FIR) or 0 if it does not.

islinphase

Returns 1 if the dfilt object has linear phase sections or 0 if it does not.
ismaxphase
Returns 1 if the dfilt object has maximum-phase sections or 0 if it does not.
isminphase
Returns 1 if the dfilt object has minimum-phase sections or 0 if it does not.
isparallel
Returns 1 if the dfilt object has parallel sections or 0 if it does not.
isreal
Returns 1 if the dfilt object has real-valued coefficient or 0 if it does not.

isscalar

Returns 1 if the dfilt object is scalar or 0 if it is not scalar.

issos

Returns 1 if the dfilt object has second-order sections or 0 if it does not.

isstable

Returns 1 if all sections of the dfilt object are stable or 0 if they are not.
nstates
Returns the number of states for state-space objects.
order
Returns the filter order. If Hd is a single-section filter, the order is given by the number of delays needed for a minimum realization of the filter. If Hd has multiple sections, the order is given by the the number of delays needed for a minimum realization of the overall filter.

parallel

Returns the parallel combination of two dfilt objects. See dfilt.parallel.

realizemdl

(Available only with the DSP Blockset.)

realizemdl(Hd) creates a Simulink model containing a subsystem block realization of your dfilt object.

realizemdl(Hd,p1,v1,p2,v2,...) creates the block using the properties p1, p2,... and values v1, v2,... specified.

The following properties are available.

'Blockname' specifies the name of the block. The default value is 'Filter'.

'Destination' specifies whether to add the block to a current Simulink model or create a new model. Valid values are 'Current' and 'New'.

'OverwriteBlock' specifies whether to overwrite an existing block or create a new block. Valid values are 'on' and 'off'.

The following properties optimize the block structure. Specifying the value 'on' turns the optimization on and 'off' creates the block without optimization. The default for each block is 'off'.

'OptimizeZeros' removes zero-gain blocks.

'OptimizeOnes' replaces unity-gain blocks with a direct connection.

'OptimizeNegOnes' replaces negative unity-gain blocks with a sign change at the nearest summation block.

'OptimizeDelayChains' replaces cascaded chains of delay block with a single integer delay block set to the appropriate delay.

removesection

Removes a section from a cascade or parallel object. See dfilt.cascade and dfilt.parallel.

setsection

Overwrites a section of a cascade or parallel object. See dfilt.cascade and dfilt.parallel.

sos

Converts the object to a second-order sections object. If Hd has a single section, the returned filter has the same class.

sos(Hd,flag) specifies the ordering of the second-order sections. If flag='UP', the first row contains the poles closest to the origin, and the last row contains the poles closest to the unit circle. If flag='down', the sections are ordered in the opposite direction. The zeros are always paired with the poles closest to them.

sos(Hd,flag,scale) specifies the scaling of the gain and the numerator coefficients of all second-order sections. scale can be 'none', 'inf' (infinity-norm) or 'two' (2-norm). Using infinity-norm scaling with up ordering minimizes the probability of overflow in the realization. Using 2-norm scaling with down ordering minimizes the peak roundoff noise.

ss

Converts the object to state-space. To see the separate A,B,C,D matrices for the state-space model, use [A,B,C,D]=ss(Hd).
stepz
Returns the step response in fvtool.

stepz(Hd,n) computes the first n samples of the step response.

stepz(Hd,n,Fs) separates the time samples by T = 1/Fs, where Fs is assumed to be in Hz.
tf
Converts the object to a transfer function.

zpk

Converts the object to zeros-pole-gain form.

zplane

Returns a pole-zero plot in fvtool.

Viewing Object Properties

As with any object, you can use get to view a dfilt object's properties. To see a specific property, use

To see all properties for an object, use

Changing Object Properties

To set specific properties, use

Note that you must use single quotation marks around the property name.

Copying an Object

To create a copy of an object, use the copy method.

Converting Between Filter Structures

To change the filter structure of a dfilt object Hd, use

where structure_string is any valid structure name in single quotation marks. If Hd is a cascade or parallel structure, each of its sections is converted to the new structure.

Using Filter States

Two properties control the filter states:

Examples

Create a direct-form I filter object and use a method to see if it is stable:

If a dfilt's numerator values do not fit on a single line, a description of the vector is displayed. To see the specific numerator values for this example, use

Create an array containing two dfilt objects, apply a method and verify that the method acts on both objects, and use a method to test whether the objects are FIR objects.

Refer to the reference pages for each structure for more examples.

See Also

dfilt.cascade , dfilt.df1, dfilt.df1t, dfilt.df2, dfilt.df2t, dfilt.dfasymfir, dfilt.dffir, dfilt.dffirt, dfilt.dfsymfir, dfilt.latticeallpass, dfilt.latticear, dfilt.latticearma, dfilt.latticemamax, dfilt.latticemamin, dfilt.parallel, dfilt.statespace, filter, freqz, grpdelay, impz, sos, step, tf, zpk, zplane


  demod dfilt.cascade 

Learn more about the latest releases of MathWorks products:

 © 1994-2009 The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS