Interpolating FIR filters: Difference between revisions

From Class Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 13: Line 13:


This filter gives: <math> \ [.5 \ 1.0 \ 1.5 \ 2.0 \ 2.5 \ 3.0 \ 3.5 \ 4.0 \ 4.5 \ 5.0 \ 4.5 \ 4.0 \ 3.5 \ 3.0 \ 2.5 \ 2.0 \ 1.5 \ 1.0 \ 0.5] </math>. This is a linear interpolater.
This filter gives: <math> \ [.5 \ 1.0 \ 1.5 \ 2.0 \ 2.5 \ 3.0 \ 3.5 \ 4.0 \ 4.5 \ 5.0 \ 4.5 \ 4.0 \ 3.5 \ 3.0 \ 2.5 \ 2.0 \ 1.5 \ 1.0 \ 0.5] </math>. This is a linear interpolater.

==Multiply/add Operations==
I had a lot of trouble finding generic information about the number of multiply/add operations used in an interpolation FIR filter. I did find formula for the number of multiply/add operation used by the MATLAB function upfirdn, which upsamples, applies an FIR filter, and then downsamples. It is: <math> \ (LhLx-pLx)/q </math> where <math> \ Lh </math> and <math> \ Lx </math> are the lengths of <math> \ h[n] </math>(the impulse response of the FIR filter) and <math> \ x[n] </math>(the original signal), respectively.

Revision as of 14:43, 16 November 2010

This page offers a brief explanation of interpolation FIR filters.

Example

Assume we start with the sample . Padding with zeros gives: . Let's apply 2 filters.


Filter 1: (also written as ).

This filter gives: . This is a hold function.


Filter 2: (also written as

This filter gives: . This is a linear interpolater.

Multiply/add Operations

I had a lot of trouble finding generic information about the number of multiply/add operations used in an interpolation FIR filter. I did find formula for the number of multiply/add operation used by the MATLAB function upfirdn, which upsamples, applies an FIR filter, and then downsamples. It is: where and are the lengths of (the impulse response of the FIR filter) and (the original signal), respectively.