Decimation/Interpolation - Anti-Aliasing and Anti-imaging Filter Design in MATLAB

42 views (last 30 days)
I've got a discrete time signal that I'm looking to decimate and interpolate.
To decimate, I understand that the signal must first be passed through a low pass filter (anti-aliasing filter) before being decimated (taking 1 sample every M as output, where M is the decimation factor). See diagram below
To interpolate, the signal must be filled with zeros according to the factor of interpolation and the signal must then be passed through a low pass (anti-imaging) filter. See diagram below.
How can I go about designing an anti-aliasing and anti-imaging filter using MATLAB? I want to create my filter as an FIR filter.
Any resources would be greatly appreciated!

Answers (1)

Star Strider
Star Strider on 5 Mar 2022
All this is already implemented in the resample function.
Have you experimented with it, or do you simply want to reproduce its results?
  4 Comments
William Greenway
William Greenway on 5 Mar 2022
Makes sense - are there any signal processing textbooks that you can reccommend specific to anti-aliasing and anti-imaging filters?
Star Strider
Star Strider on 5 Mar 2022
The old stand-bys in signal processing are Oppenheim and Proakis (textbooks I used in grad school in different courses) although there are others, and much can be found online. I’ve not used these specific techniques to design filters since grad school (a while ago), letting MATLAB do everything for me, so you will need to see which is best for your needs.
I would experiment with the coding them in MATLAB and then compare them with the filter designs MATLAB produces as the ‘correct’ result.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!