Interpolating FIR filters: Difference between revisions

From Class Wiki
Jump to navigation Jump to search
Cdxskier (talk | contribs)
Cdxskier (talk | contribs)
No edit summary
Line 16: Line 16:
==Multiply/add Operations==
==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> \ (L_h L_x-pL_x)/q </math> where <math> \ L_h </math> and <math> \  L_x </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.
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> \ (L_h L_x-pL_x)/q </math> where <math> \ L_h </math> and <math> \  L_x </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.
==Related Topics==
Check out my article on [[Decimating FIR Filters]].
===Author===
[[Christopher Garrison Lau I]]

Revision as of 17:26, 16 November 2010

This page offers a brief explanation of interpolation FIR filters.

Example

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


Filter 1: [11] (also written as y(kT)=1.0x(kT)+1.0x(k1)T).

This filter gives: [112233445544332211]. This is a hold function.


Filter 2: [0.510.5] (also written as y(kT)=0.5x(kT)+1.0x(k1)T+0.5x(k2)T

This filter gives: [.51.01.52.02.53.03.54.04.55.04.54.03.53.02.52.01.51.00.5]. 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: (LhLxpLx)/q where Lh and Lx are the lengths of h[n](the impulse response of the FIR filter) and x[n](the original signal), respectively.

Related Topics

Check out my article on Decimating FIR Filters.

Author

Christopher Garrison Lau I