Filter Design Toolbox    
mfilt.firfracdecim

Construct a direct-form FIR polyphase fractional decimator filter object

Syntax

Description

hm = mfilt.firfracdecim(l,m,num) returns a direct-form FIR polyphase fractional decimator. Input argument l is the interpolation factor. l must be an integer. When you omit l in the calling syntax, it defaults to 2. m is the decimation factor. It must be an integer. If not specified, it defaults to l+1.

num is a vector containing the coefficients of the FIR lowpass filter used for decimation. If omitted, a lowpass Nyquist filter of gain l and cutoff frequency of /max(l,m) is used by default.

By specifying both a decimation factor and an interpolation factor, you can decimate your input signal by noninteger amounts. The fractional decimator first interpolates the input, then decimates to result in an output signal whose sample rate is l/m of the input rate. By default, the resulting decimation factor is 2/3 when you do not provide l and m in the calling syntax. Specify l smaller than m for proper decimation.

Input Arguments

The following table describes the input arguments for creating hm.

Input Argument
Description
l
Interpolation factor for the filter. It must be an integer. When you do not specify a value for l it defaults to 2.
num
Vector containing the coefficients of the FIR lowpass filter used for interpolation. When num is not provided as an input, firfracdecim uses a lowpass Nyquist filter with gain equal to l and cutoff frequency equal to /max(l,m) by default.
m
Decimation factor for the filter. m specifies the amount to reduce the sampling rate of the input signal. It must be an integer. When you do not specify a value for m it defaults to l + 1.

mfilt.firfracdecim Object Properties

Every multirate filter object has properties that govern the way it behaves when you use it. Note that many of the properties are also input arguments for creating mfilt.firfracdecim objects.The next table describes each property for an mfilt.firfracdecim filter object.

Name
Values
Description
FilterStructure
String
Reports the type of filter object, such as a decimator or fractional decimator. You cannot set this property--it is always read only and results from your choice of mfilt object.
Numerator
Vector
Vector containing the coefficients of the FIR lowpass filter used for interpolation.
RateChangeFactors
[l,m]
Reports the decimation (m) and interpolation (l) factors for the filter object. Combining these factors results in the final rate change for the signal.
NonProcessedSamples
0
Shows the values of the samples that were not processed during the filtering operation. Note that this is not the number of samples that were not processed.
ResetBeforeFiltering
'off' or 'on'
Determine whether the filter states get restored to their starting values for each filtering operation. The starting values are the values in place when you create the filter if you have not changed the filter since you constructed it. ResetBeforeFiltering returns to zero any state that the filter changes during processing. States that the filter does not change are not affected.
States
Matrix
Stored conditions for the delays between each interpolator phase, the states, and the states at the output of each phase in the filter, including values for the interpolator and comb states.
The number of states is (lh-1)*m+(l-1)*(lo+mo) where lh is the length of each subfilter, and l and m are the interpolation and decimation factors. lo and mo, the input and output delays between each interpolation phase, are integers from Euclid's theorem such that lo*l-mo*m = -1 (refer to the reference for more details). Use euclidfactors to get lo and mo for an mfilt.firfracdecim object
NumSamplesProcessed
Integer
Returns the number of samples processed during filtering. As a check, the number of samples reported processed plus the number of nonprocessed samples should be the total number of input samples.

Example

To demonstrate firfracdecim, perform a fractional decimation by a factor of 2/3. This is one way to downsample a 48 KHz signal to 32 KHz, commonly done in audio processing.

See Also

mfilt.firsrc, mfilt.firfracinterp, mfilt.firinterp, mfilt.firdecim

References

Fliege, N.J., Multirate Digital Signal Processing, John Wiley & Sons, Ltd., 1994


  mfilt.firdecim mfilt.firfracinterp 

Learn more about the latest releases of MathWorks products:

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