Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Digital IIR Filter with variable cutting frequency

Status
Not open for further replies.

therealpaulie

Newbie level 6
Newbie level 6
Joined
Oct 6, 2009
Messages
11
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
austria
Activity points
1,411
Hi,

I want to design a IIR low pass filter with variable cutting frequency. The order should be > 10. Order 1 or 2 is simple to be made. But when it comes to order > 4 the equation are pretty big and it's not feasibly anymore.

I don't search for something very precises. I need resolution for the Fc (cutting frequency) and not accuracy. E.g.: to be able to vary Fc with one step = pi/64, but the actual value doesn't have to be pi/64.

I though about designing several filters (for example with Matlab) and save the coefficients to a RAM. There are two problems: 1. RAM is required and 2. I want to be able to adjust the filter Fc when the system works. And if I change the entire set of coefficients I could have jumps in the output signals.

It doesn't really matter what type of filter. I only need small ripple in pass band (Chebyshev -I- an example that doesn't fit).

Any link, any idea, any hint is welcomed.
Thanks,
Paulie
 

The order should be > 10. Order 1 or 2 is simple to be made. But when it comes to order > 4 the equation are pretty big and it's not feasibly anymore.
There's no such thing as a free lunch.
But basically the effort is increasing linearly. One more order means just one more denominator and numerator coefficient. So I don't exactly understand the problem.
Changing the filter setting abruptly must be generally expected to create unwanted output signals. Changing it slowly, using interpolated intermediate coefficients would be one option.
I only need small ripple in pass band (Chebyshev -I- an example that doesn't fit).
Chebyshev ripple can be made as low as you want it. But if you want 0.00x dB ripple, simply use butterworth.
 

Hi,

Thanks for answer.

The problem, or how I see it, is the following:
- if I use a simple IIR filter (Direct Form I) i will need more than 25bits for storing the coefficients. I started with a simple Low Pass filter (1+z^-1)/(1-a x z^-1). But if I add more poles and zeroes I need more than 25bits to store the coefficients. For small Fc and high (4,5 and so on) filter order the coefficients are way to small (1 * 10^-5 or so).
- I wanted to implement a Chebyshev II or a Butterworth but the transfer functions are not that simple, and I didn't find out a way in which I can vary (liniary) only one parameter in order to change the Fc.

Paul
 

When saying the effort rises linearly, I didn't particularly consider coefficient ranges. I aggree, that they may effectively increase the effort when going to higher order. With a common filter prototype, I would expect all coefficients to change when scaling the frequency. I didn't yet hear of an elegant trick to overcome it. Perhaps other forum members know?
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top