Powered by Invision Power Board


Forum Rules Forum Rules (Please read before posting)
  Reply to this topicStart new topicStart Poll

> Matlab Iir Filter Design
kingneb
Posted: August 03, 2014 11:29 pm
Reply to this postQuote Post


Member
****

Group: Trusted Members
Posts: 221
Member No.: 2,202
Joined: March 11, 2005




I am using Matlab's fdatool to compute the coefficients for a filter I plan on running as an algorithm in a PC program I will write.

The standard formula for computing IIR is here:

http://en.wikipedia.org/wiki/Infinite_impulse_response

user posted image

Matlab spits out the numerator coefficients, denominator coefficients, and groups them into filter sections. How does this categorization translate into the standard IIR equation?


--------------------
Remember to take your records off the turntable when you are done listening to them, otherwise they will warp.
PMEmail Poster
Top
Sch3mat1c
Posted: August 04, 2014 04:09 am
Reply to this postQuote Post


Forum Addict ++
Group Icon

Group: Moderators
Posts: 20,543
Member No.: 73
Joined: July 24, 2002




I believe you're looking at the x[n - i] being the input (numerator) coefficients, and y[n - j] being the denominator (feedback) coefficients.

Check out a textbook for more info (Wikipedia tends to be rather... unavailable, as far as teaching those outside the field goes).

Tim


--------------------
Answering questions is a tricky subject to practice. Not due to the difficulty of formulating or locating answers, but due to the human inability of asking the right questions; a skill that, were one to possess, would put them in the "answering" category.
PMEmail PosterUsers Website
Top
CoulombMagician
Posted: August 09, 2014 05:29 pm
Reply to this postQuote Post


Forum Addict ++
*******

Group: Spamminator Taskforce
Posts: 1,047
Member No.: 3,131
Joined: August 29, 2005




When you apply the z transform the delays all map to powers of z. Regroup the aj terms on the left side and then divide which moves them to the denominator on the right side. This leaves you with output = input * Num(z)/Denom(z).

To implement the filter you have to factor the rational function into biquadratic sections which can be realized. It sounds like you will be using floating point variables( PC software implementation) so you probably don't need to check the dynamic range between each of the sections. If you were implementing a fixed point hardware filter you would want to verify dynamic range in simulation.

On a practical level I believe that MatLab will spit out a C source code implememntation for you, that might save you some work.
PMEmail Poster
Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:

Topic Options Reply to this topicStart new topicStart Poll

 


:: support us ::




ElectronicsSkin by DutchDork & The-Force