Multirate and Multistage Filters
Multirate filters are digital filters that change the sample rate of a digital signal without introducing aliasing or imaging in the rate-converted signal. These filters are categorized as decimators that reduce the sample rate, interpolators that increase the sample rate, and rate converters that do a combination of both. For details on these rate conversion operations and their effect on the signal in time and frequency domains, see Overview of Multirate Filters. DSP System Toolbox™ offers MATLAB® System objects and Simulink® blocks that implement decimators, interpolators, and rate converters. Advanced filter technologies such as channelizers, channel synthesizers, two-channel halfband filter banks, and multilevel filter banks use these filters as building components.
You can implement a multirate filter with a large rate conversion factor efficiently in two or more stages rather than in one single stage. When the design is long (contains many coefficients) and costly (requires many multiplications and additions per input sample), the multistage approach is more efficient to implement compared to the single-stage approach. For more details, see Overview of Multistage Filters.
designMultistageInterpolator functions in DSP System Toolbox automatically determine the optimal configuration of the
filter, which includes determining the number of stages and the rate
conversion factor for each stage. An optimal configuration leads to the
least computational effort and you can measure the cost of such an
implementation using the
cost function. For an
example, see Multistage Rate Conversion.
Single Stage Filters
|Polynomial sample rate converter with arbitrary conversion factor|
|Perform polyphase FIR decimation|
|Perform polyphase FIR interpolation|
|Perform polyphase FIR sample rate conversion|
|Decimate by factor of two using polyphase IIR|
|Interpolate by a factor of two using polyphase IIR|
|Create parallel sum filter structure (Since R2023b)|
|Extract a frequency subband using a one-sided (complex) bandpass decimator|
|Translate digital signal from intermediate frequency (IF) band to baseband and decimate it|
|Interpolate digital signal and translate it from baseband to IF band|
|Create cascade of filter System objects|
|Multistage sample rate converter|
|Compensate for CIC decimation filter using FIR decimator|
|Compensate for CIC interpolation filter using FIR interpolator|
|Decimate signal using cascaded integrator-comb (CIC) filter|
|Interpolate signal using cascaded integrator-comb filter|
|Polyphase FFT analysis filter bank|
|Polyphase FFT synthesis filter bank|
|Dyadic analysis filter bank|
|Reconstruct signals from subbands|
|Decompose signal into high-frequency and low-frequency subbands|
|Reconstruct signal from high-frequency and low-frequency subbands|
|Returns the filter System object coefficients in a structure|
|Estimate cost of implementing filter System object|
|Frequency response of discrete-time filter System object|
|Visualize frequency response of DSP filters|
|Information about filter System object|
|Measure frequency response characteristics of filter System object|
|Determine output delay of single-rate or multirate filter (Since R2022a)|
|Polyphase decomposition of multirate filter|
Single Stage and Multistage Filters
Multirate Multistage Filter Design
|Multirate FIR filter design|
|Multistage decimator design|
|Multistage interpolator design|
|Decimator filter specification object|
|Interpolator filter specification|
|Rational-factor sample-rate converter specification|
Single Stage Multirate Filters
|Farrow Rate Converter||Polynomial sample-rate converter with arbitrary conversion factor|
|FIR Decimation||Perform polyphase FIR decimation|
|FIR Halfband Decimator||Decimate signal using polyphase FIR halfband filter|
|FIR Halfband Interpolator||Interpolate signal using polyphase FIR half band filter|
|FIR Interpolation||Perform polyphase FIR interpolation|
|FIR Rate Conversion||Perform polyphase FIR sample rate conversion|
|IIR Halfband Decimator||Decimate signal using polyphase IIR halfband filter|
|IIR Halfband Interpolator||Interpolate signal using polyphase IIR halfband filter|
|Variable FIR Decimation||Polyphase FIR decimation with tunable decimation factor (Since R2023a)|
|Variable FIR Interpolation||Polyphase FIR interpolation with tunable interpolation factor (Since R2023a)|
|Complex Bandpass Decimator||Extract a frequency subband using a one-sided (complex) bandpass decimator|
|Digital Down-Converter||Translate digital signal from intermediate frequency (IF) band to baseband and decimate it|
|Digital Up-Converter||Interpolate and translate digital signal from baseband to intermediate frequency (IF) band|
|Sample-Rate Converter||Multistage sample-rate conversion|
|Channelizer||Polyphase FFT analysis filter bank|
|Channel Synthesizer||Polyphase FFT synthesis filter bank|
|Dyadic Analysis Filter Bank||Decompose signals into subbands with smaller bandwidths and slower sample rates or compute discrete wavelet transform (DWT)|
|Dyadic Synthesis Filter Bank||Reconstruct signals from subbands with smaller bandwidths and slower sample rates or compute inverse discrete wavelet transform (IDWT)|
|Two-Channel Analysis Subband Filter||Decompose signal into high-frequency and low-frequency subbands|
|Two-Channel Synthesis Subband Filter||Reconstruct signal from high-frequency and low-frequency subbands|
Sample and Frame Rates in Multirate Models
- Inspect Sample and Frame Rates in Simulink
Understand sample time, sample rate, frame period, and frame rate in the context of a Simulink model. Determine the sample and frame rates of signals in your model.
- Convert Sample and Frame Rates in Simulink Using Rate Conversion Blocks
Learn how direct-rate conversion blocks impact the sample rate and frame rate of signals in Simulink models.
- Convert Sample and Frame Rates in Simulink Using Frame Rebuffering Blocks
Learn how frame rebuffering blocks impact the sample rate and frame rate of signals in Simulink models.
- Overview of Multirate Filters
Define multirate filters and understand decimation and interpolation. Understand aliasing and imaging and ways to avoid them.
- Design of Decimators and Interpolators
This example shows how to design filters for decimation and interpolation of discrete sequences.
- Multirate Filtering in MATLAB and Simulink
Perform multirate filtering using rate conversion objects and blocks.
- FIR Nyquist (L-th band) Filter Design
This example shows how to design lowpass FIR Nyquist filters.
- Overview of Filter Banks
Provides an overview of the channelizer, channel synthesizer, and the two-channel filter bank.
- Two-Channel Filter Bank Using Halfband Decimators and Halfband Interpolators
Implement a two-channel filter bank using the FIR and IIR halfband filters. Compare the implementation cost and group delay.
- Channelize and Synthesize Sine Wave in MATLAB
Channelize and synthesize sinusoidal signal in MATLAB.
- Synthesize and Channelize Audio in Simulink
Synthesize and channelize audio signals.
- Multilevel Filter Banks
Understand dyadic analysis and dyadic synthesis multilevel filter banks.
- Calculate Channel Latencies Required for Wavelet Reconstruction
Learn how to calculate the latencies required for perfect wavelet reconstruction.
- Model Multirate Signal Processing Systems Using Dataflow
Use a Dataflow Subsystem to automatically calculate frame sizes in multirate systems.