• ### Nth order IIR filter

Hi,

I have been using PD for half a year, and I have been running into the same problem. How to design effective Nth order IIR filter? What I need is exactly like biquad~, but a lot higher order(like 30). Has some developer made an external suitable for this or is there an effective way to do Nth order IIR with existing patches?

• Posts 4 | Views 4790
• No. here's a fundamenral limitation in the design that stops this. Because of the sample delay in any feedback route you can only really do finite impulse response filters in Pd. To do an IIR you will have to create an external in C. I would talk to Mathieu Bouchard on the pd-list if I were you.

Use the Source.

• @obiwannabe said:

No. here's a fundamenral limitation in the design that stops this. Because of the sample delay in any feedback route you can only really do finite impulse response filters in Pd. To do an IIR you will have to create an external in C. I would talk to Mathieu Bouchard on the pd-list if I were you.

This is what I have realized. I have tested that very uneffective IIR can be done by setting [block~ 1] and using one sample delays, but that is not what I'm looking for. I quess I'll have to make an external in C, if one does not exist yet....

• There is the [fexpr~] object. with which you can build any IIR or FIR filters, when you calculate its difference equation from its transfer function. And I suppose (but I'm not sure) it overcomes the blocksize problem.

example:
[fexpr~ 0.5*\$x1[0] + \$x1[-1] + \$y1[-10]]

x's are input signals (\$x1, \$x3...) and y's are outputs. It has two limitations: You can't use y[0] and for \$y1[-n], n cannot be greater than block size.

Posts 4 | Views 4790
Internal error.

Oops! Looks like something went wrong!