Skip to content
MathWorks - Mobile View
  • Sign In to Your MathWorks AccountSign In to Your MathWorks Account
  • Access your MathWorks Account
    • My Account
    • My Community Profile
    • Link License
    • Sign Out
  • Products
  • Solutions
  • Academia
  • Support
  • Community
  • Events
  • Get MATLAB
MathWorks
  • Products
  • Solutions
  • Academia
  • Support
  • Community
  • Events
  • Get MATLAB
  • Sign In to Your MathWorks AccountSign In to Your MathWorks Account
  • Access your MathWorks Account
    • My Account
    • My Community Profile
    • Link License
    • Sign Out

Videos and Webinars

  • MathWorks
  • Videos
  • Videos Home
  • Search
  • Videos Home
  • Search
  • Contact sales
  • Trial software
9:09 Video length is 9:09.
  • Description
  • Full Transcript
  • Related Resources

How to Filter Signals in Simulink

Learn how to implement tunable and non-tunable filters for FIR and IIR filter implementations in Simulink® using DSP System Toolbox™. Use non-tunable filters when the filter response is known and fixed during simulation. On the other hand, tunable filters allow modification of block parameters and filter coefficients during model simulation varying the filter response as needed.

Digital filters are central to many signal processing systems and are used to suppress, or eliminate unwanted artifacts from signals to enhance their quality. When deciding how to design and implement a filter, there are a range of factors to consider, including frequency and phase responses, differing typologies, impulse response behaviors, implementation costs, and degrees of tuned ability. In Simulink the DSP system toolbox block library, includes blocks supporting an extensive range of filter design and implementation algorithms.

In this video, we'll provide an overview of these filter blocks to aid in the process of selecting appropriate filter types given a set of system requirements. Specifically, we'll focus on categorizing the filter blocks based on their tunability at runtime. Tunable simulating blocks can have their block parameters modified during a simulation, removing the need to update the model diagram between runs, and speeding up testing.

Shown here, the block parameters of a backward filter block are tuned during runtime, to filter a chirp signal with a varying frequency. DSP system toolbox filter blocks can be broadly classified as having finite duration, or infinite duration impulse responses. FIR or IIR for short. Within each of these groups there are several options for tunable and non tunable filters.

To start, let's examine the non tunable filters of each group. Nontunable filter blocks independently filter each channel of the input signal over time using the filter design specified by their block parameters, as they are non tunable their block parameters and filter response cannot be changed during runtime. The set of non tunable filter blocks shown here is located in the DSP system toolbox block library under filtering filter designs.

As we can see, there are many additional non tunable filter designed blocks available in the block library. Taking a closer look at low pass filter block as an example, we can see the options to modify block parameters for filter type, pass band edge frequency, stop band edge frequency, and more. With the filter type parameter, you can control whether the block implements in IIR or FIR filter.

Next, let's investigate the subset of filter blocks, that are tunable at runtime. The variable bandwidth FIR and variable bandwidth IIR blocks are for tunable filter implementations for lowpass, highpass, band pass, and band stop filters. Both blocks enable you to tune certain parameters during simulation without having to redesign the entire filter. Each blocks filter algorithm recomputes the filter coefficients whenever tunable parameter is modified.

Let's take a closer look at the variable bandwidth FIR block. With the filter type setup and pass, for example, the filter center frequency and bandwidth parameters are tunable during runtime. Note that this blocks tunable parameters can be edited directly from the dialog box is shown here, or via input ports to the block itself by checking this option. Selecting input ports, adds additional input ports to the filter block.

To exert even greater control over the tunability of filters in your signal processing system, consider implementing the discrete FIR filter or backward filter blocks. Both blocks allow filter coefficients to be tuned during simulation. Taking the backward filter block as an example, we can note the option to provide a filter coefficient values from input ports, dialogue parameters, or system filter object defined in the base MATLAB workspace.

Now, let's review the differing applications of the filter blocks we've covered with an example involving noise removal. To start, let's consider the case of a single frequency signal with added random noise. The primary signal has a frequency of six kilohertz, and is sampled at a rate of 44.1 kilohertz. Random noise is added across the range of sampled frequencies.

In order to isolate the main signal an IRS band pass filter block is added, and its output is compared to the original signal with a spectrum analyzer. The band pass filter block is implemented with an IIR impulse response, and the stop band and pass band frequencies shown here. Let's click View filter response to launch the filter visualization tool for this set of filter parameters. With this tool, we can analyze the filters magnitude and phase responses, impulse response, and pull zero plot amongst other filter characteristics.

Let's run the simulation to view the filter's effective. Comparing the power spectra of the original unfiltered signals, we can see that the band pass filter maintains the power of the primary signal, and attenuates noise located outside of the specified bandwidth. The non-tunable band pass filter block works well for this scenario, as we knew the frequency characteristics of the signal to isolate before starting the simulation.

Now, let's consider a second case where the frequency of the signal to be filtered is changing over time. In this case, the sine wave block has been replaced with a chirp block set to output a linear sweep of signal frequencies from 5 to eight kilohertz, the sample rate of 44.1 kilohertz. The same source of random noise is added to the chirp signal. To effectively reduce the noise from the chirp signal, we've implemented a tunable band pass filter in the form of a variable bandwidth IIR block.

We've set the center frequency of the band pass filter to be specified from an input port, Instead of fixed filter bandwidth of 1.25 kilohertz. Setting the cutoff frequency Fc to be specified by the input port, causes it to become a tunable parameter that can be modified during simulation. To calculate the center frequency for the band pass filter at each time step, we've included a MATLAB function block to incorporate a portion of MATLAB code in the simulation model. This block contains a script designed to output the frequency associated with the maximum value of the signals power spectrum at each time set. The p welch function, is used to calculate the input signals power spectrum. In the index of the maximum value is used to output the frequency of the desired signal.

Let's run the simulation to view the tunable filter in action. As we can see the center frequency of the variable bandwidth IIR block closely follows the frequency of the desired signal during simulation. Comparing the original signal to the filtered signal across the range of sample frequencies, we can note that the filtered signals, signal to noise ratio of about 60 DVC is greater than the original signal to noise ratio of about 45 DVC signifying noise reduction.

Finally, let's consider how a tunable filter whose design is instead specified by coefficient values could be implemented to achieve a similar response. In this third case, will employ a tunable backward filter block driven by numerator and denominator coefficients to act as a band pass filter to reduce noise from the same gerb signal in the last example. Inspecting the backward filter further we can note the coefficient sources is set to input ports allowing the numerator and denominator filter coefficients to be tunable at runtime.

Once more, a MATLAB function block is included. This time to calculate the tunable filter block parameters at each time step. After determining the center frequency for the band pass filter with p welch as before, the design program EQ function is used to compute the numerator and denominator coefficients of the band pass filter. The filter design function accepts multiple inputs for gain, center frequency, and bandwidth, which we've defined above. Let's run the simulation to see the effect of the backward filter.

As we can see from the spectrum analyzer. The background filter block is dynamically tuned with filter coefficients, redesigning the filter at each time step to effectively track and filter the desired signal. Looking once more to the signal to noise ratios, we can note that the filtered signals SNR value of about 90 DVC is much greater than the original signal's value of about 45 DVC, a sign of reduced noise.

To summarize, DSP system toolbox supports a range of tunable and tunable filter designs for both FIR and IIR filters. If you know beforehand that your filters response will be unchanging at runtime, the non tunable filter designed blocks can be used to design and implement FIR and IIR filters. On the other hand, the variable bandwidth FIR and IIR filters discrete FIR filter, and backward filter blocks can be used to tune filter responses at runtime via filter parameters and coefficients. For more information and examples related to designing and implementing filters with DSP system toolbox, please visit our documentation.

Related Products

  • DSP System Toolbox
  • Simulink

Learn More

Download Models
Filter Design and Analysis
Filter Implementation

3 Ways to Speed Up Model Predictive Controllers

Read white paper

A Practical Guide to Deep Learning: From Data to Deployment

Read ebook

Bridging Wireless Communications Design and Testing with MATLAB

Read white paper

Deep Learning and Traditional Machine Learning: Choosing the Right Approach

Read ebook

Hardware-in-the-Loop Testing for Power Electronics Control Design

Read white paper

Predictive Maintenance with MATLAB

Read ebook

Electric Vehicle Modeling and Simulation - Architecture to Deployment : Webinar Series

Register for Free

How much do you know about power conversion control?

Start quiz
Related Information
Related Information
Tunable Lowpass Filtering of Noisy Input in Simulink

Feedback

Featured Product

DSP System Toolbox

  • Request Trial
  • Get Pricing

Up Next:

36:42
Simulink: Tips and Tricks

Related Videos:

41:49
How to Develop Interactive User Interfaces for Simulink...
4:05
Grouping Large Arrays of Signals in a Model
4:26
When and How to Use a Data Dictionary
4:45
Run a Simulink Model on Zynq: Exploring the Simulink Model...

View more related videos

MathWorks - Domain Selector

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

  • Switzerland (English)
  • Switzerland (Deutsch)
  • Switzerland (Français)
  • 中国 (简体中文)
  • 中国 (English)

You can also select a web site from the following list:

How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

Americas

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
    • 简体中文Chinese
    • English
  • 日本Japanese (日本語)
  • 한국Korean (한국어)

Contact your local office

  • Contact sales
  • Trial software

MathWorks

Accelerating the pace of engineering and science

MathWorks is the leading developer of mathematical computing software for engineers and scientists.

Discover…

Explore Products

  • MATLAB
  • Simulink
  • Student Software
  • Hardware Support
  • File Exchange

Try or Buy

  • Downloads
  • Trial Software
  • Contact Sales
  • Pricing and Licensing
  • How to Buy

Learn to Use

  • Documentation
  • Tutorials
  • Examples
  • Videos and Webinars
  • Training

Get Support

  • Installation Help
  • MATLAB Answers
  • Consulting
  • License Center
  • Contact Support

About MathWorks

  • Careers
  • Newsroom
  • Social Mission
  • Customer Stories
  • About MathWorks
  • Select a Web Site United States
  • Trust Center
  • Trademarks
  • Privacy Policy
  • Preventing Piracy
  • Application Status

© 1994-2022 The MathWorks, Inc.

  • Facebook
  • Twitter
  • Instagram
  • YouTube
  • LinkedIn
  • RSS

Join the conversation