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 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.
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|
|Polyphase FIR decimator|
|Polyphase FIR interpolator|
|Sample rate converter|
|Finite impulse response (FIR) decimation filter—optimized for HDL code generation|
|Upsample, filter, and downsample—optimized for HDL code generation|
|Decimate by factor of two using polyphase IIR|
|Interpolate by a factor of two using polyphase IIR|
|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|
|Decimate signal using cascaded integrator-comb filter — optimized for HDL code generation|
|Polyphase FFT analysis filter bank|
|Polyphase FFT synthesis filter bank|
|Polyphase filter bank and fast Fourier transform—optimized for HDL code generation|
|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|
|Cascade of filter system objects|
|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|
|Polyphase decomposition of multirate filter|
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||Filter and downsample input signals|
|FIR Decimation HDL Optimized||Finite impulse response (FIR) decimation filter—optimized for HDL code generation|
|FIR Halfband Decimator||Decimate signal using polyphase FIR halfband filter|
|FIR Halfband Interpolator||Interpolate signal using polyphase FIR half band filter|
|FIR Interpolation||Upsample and filter input signals|
|FIR Rate Conversion||Upsample, filter, and downsample input signals|
|FIR Rate Conversion HDL Optimized||Upsample, filter, and downsample input signal and generates optimized HDL code|
|IIR Halfband Decimator||Decimate signal using polyphase IIR halfband filter|
|IIR Halfband Interpolator||Interpolate signal using polyphase IIR halfband filter|
|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 digital signal and translate it from baseband to Intermediate Frequency (IF) band|
|Sample-Rate Converter||Multistage sample-rate conversion|
|CIC Compensation Decimator||Compensate for CIC filter using FIR decimator|
|CIC Compensation Interpolator||Compensate for CIC filter using FIR interpolator|
|CIC Decimation||Decimate signal using cascaded integrator-comb filter|
|CIC Interpolation||Interpolate signal using cascaded integrator-comb filter|
|CIC Decimation HDL Optimized||Decimate signal using cascaded integrator-comb filter optimized for HDL code generation|
|Channelizer||Polyphase FFT analysis filter bank|
|Channelizer HDL Optimized||Polyphase filter bank and fast Fourier transform—optimized for HDL code generation|
|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
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.
Learn how direct-rate conversion blocks impact the sample rate and frame rate of signals in Simulink models.
Learn how frame rebuffering blocks impact the sample rate and frame rate of signals in Simulink models.
Define multirate filters and understand decimation and interpolation. Understand aliasing and imaging and ways to avoid them.
This example shows how to design filters for decimation and interpolation of discrete sequences.
Perform multirate filtering using rate conversion objects and blocks.
This example shows how to design lowpass FIR Nyquist filters.
Provides an overview of the channelizer, channel synthesizer, and the two-channel filter bank.
Implement a two-channel filter bank using the FIR and IIR halfband filters. Compare the implementation cost and group delay.
Channelize and synthesize sinusoidal signal in MATLAB.
Synthesize and channelize audio signals.
Understand dyadic analysis and dyadic synthesis multilevel filter banks.
Learn how to calculate the latencies required for perfect wavelet reconstruction.
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.
Configure the Simulink environment to minimize delay and increase simulation performance.