Main Content

Multirate and Multistage Filters

Decimation, interpolation, rate conversion, and filter banks

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 several 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 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.

The designMultistageDecimator and 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.

Objects

expand all

dsp.FarrowRateConverterPolynomial sample rate converter with arbitrary conversion factor
dsp.FIRDecimatorPolyphase FIR decimator
dsp.FIRHalfbandDecimatorHalfband decimator
dsp.FIRHalfbandInterpolatorHalfband interpolator
dsp.FIRInterpolatorPolyphase FIR interpolator
dsp.FIRRateConverterSample rate converter
dsp.HDLFIRDecimatorFinite impulse response (FIR) decimation filter—optimized for HDL code generation
dsp.HDLFIRRateConverterUpsample, filter, and downsample—optimized for HDL code generation
dsp.IIRHalfbandDecimatorDecimate by factor of two using polyphase IIR
dsp.IIRHalfbandInterpolatorInterpolate by a factor of two using polyphase IIR
dsp.ComplexBandpassDecimatorExtract a frequency subband using a one-sided (complex) bandpass decimator
dsp.DigitalDownConverterTranslate digital signal from intermediate frequency (IF) band to baseband and decimate it
dsp.DigitalUpConverterInterpolate digital signal and translate it from baseband to IF band
dsp.FilterCascadeCreate cascade of filter System objects
dsp.SampleRateConverterMultistage sample rate converter
dsp.CICCompensationDecimatorCompensate for CIC decimation filter using FIR decimator
dsp.CICCompensationInterpolatorCompensate for CIC interpolation filter using FIR interpolator
dsp.CICDecimatorDecimate signal using cascaded integrator-comb (CIC) filter
dsp.CICInterpolatorInterpolate signal using cascaded integrator-comb filter
dsp.HDLCICDecimationDecimate signal using cascaded integrator-comb filter — optimized for HDL code generation
dsp.ChannelizerPolyphase FFT analysis filter bank
dsp.ChannelSynthesizerPolyphase FFT synthesis filter bank
dsp.HDLChannelizerPolyphase filter bank and fast Fourier transform—optimized for HDL code generation
dsp.DyadicAnalysisFilterBankDyadic analysis filter bank
dsp.DyadicSynthesisFilterBankReconstruct signals from subbands
dsp.SubbandAnalysisFilterDecompose signal into high-frequency and low-frequency subbands
dsp.SubbandSynthesisFilterReconstruct signal from high-frequency and low-frequency subbands

Functions

expand all

coeffsReturns the filter System object coefficients in a structure
costEstimate cost of implementing filter System object
cascadeCascade of filter system objects
freqzFrequency response of discrete-time filter System object
fvtoolVisualize frequency response of DSP filters
infoInformation about filter System object
measureMeasure frequency response characteristics of filter System object
polyphasePolyphase decomposition of multirate filter
designMultirateFIRMultirate FIR filter design
designMultistageDecimatorMultistage decimator design
designMultistageInterpolatorMultistage interpolator design
fdesign.decimatorDecimator filter specification object
fdesign.interpolatorInterpolator filter specification
fdesign.rsrcRational-factor sample-rate converter specification

Blocks

expand all

Farrow Rate ConverterPolynomial sample-rate converter with arbitrary conversion factor
FIR DecimationFilter and downsample input signals
FIR Decimation HDL OptimizedFinite impulse response (FIR) decimation filter—optimized for HDL code generation
FIR Halfband DecimatorDecimate signal using polyphase FIR halfband filter
FIR Halfband InterpolatorInterpolate signal using polyphase FIR half band filter
FIR InterpolationUpsample and filter input signals
FIR Rate ConversionUpsample, filter, and downsample input signals
FIR Rate Conversion HDL OptimizedUpsample, filter, and downsample input signal and generates optimized HDL code
IIR Halfband DecimatorDecimate signal using polyphase IIR halfband filter
IIR Halfband InterpolatorInterpolate signal using polyphase IIR halfband filter
Complex Bandpass DecimatorExtract a frequency subband using a one-sided (complex) bandpass decimator
Digital Down-ConverterTranslate digital signal from Intermediate Frequency (IF) band to baseband and decimate it
Digital Up-ConverterInterpolate digital signal and translate it from baseband to Intermediate Frequency (IF) band
Sample-Rate ConverterMultistage sample-rate conversion
CIC Compensation DecimatorCompensate for CIC filter using FIR decimator
CIC Compensation InterpolatorCompensate for CIC filter using FIR interpolator
CIC DecimationDecimate signal using cascaded integrator-comb filter
CIC InterpolationInterpolate signal using cascaded integrator-comb filter
CIC Decimation HDL OptimizedDecimate signal using cascaded integrator-comb filter optimized for HDL code generation
ChannelizerPolyphase FFT analysis filter bank
Channelizer HDL OptimizedPolyphase filter bank and fast Fourier transform—optimized for HDL code generation
Channel SynthesizerPolyphase FFT synthesis filter bank
Dyadic Analysis Filter BankDecompose signals into subbands with smaller bandwidths and slower sample rates or compute discrete wavelet transform (DWT)
Dyadic Synthesis Filter BankReconstruct signals from subbands with smaller bandwidths and slower sample rates or compute inverse discrete wavelet transform (IDWT)
Two-Channel Analysis Subband FilterDecompose signal into high-frequency and low-frequency subbands
Two-Channel Synthesis Subband FilterReconstruct signal from high-frequency and low-frequency subbands

Topics

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.

Multirate Filters

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.

Multistage Filters

Overview of Multistage Filters

Different types of multistage filters and their uses. Learn how to implement decimators and interpolators using the multistage approach.

Multistage Rate Conversion

Design multistage rate conversion filters.

Filter Banks

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.

Dataflow

Model Multirate Signal Processing Systems Using Dataflow

Use a Dataflow Subsystem to automatically calculate frame sizes in multirate systems.

Delay and Latency

Time-Based Scheduling and Code Generation (Simulink Coder)

Generate code that meets real-time execution requirements after reviewing sample time and tasking mode considerations.

Delay and Latency

Configure the Simulink environment to minimize delay and increase simulation performance.

Featured Examples