Hi there. So, I've been studying a lot about filters, and I'm doing this clone of max's z-plane in Pd.
I hope anyone can help me guide where to find how to convert the values of the complex poles and zeros to biquad coefficients. I really needed that...
Sorry if I missed it in Miller's book or some other obvious reference, I'm just really a newbie in filter design.
Thanks Alex
Hi Alexandre,
Great that you're doing this! For extra inspiration you could have a look at PoZeTools (http://kmt.hku.nl/~pieter/SOFT/RESP/html/PoZeTools.html). It's great software by Pieter Suurmond. He's the one who taught me filter design and he probably has some info about Z-transform on his website as well.
Regards, --Funs
On Mon, Sep 23, 2013 at 7:37 AM, Alexandre Torres Porres porres@gmail.comwrote:
Hi there. So, I've been studying a lot about filters, and I'm doing this clone of max's z-plane in Pd.
I hope anyone can help me guide where to find how to convert the values of the complex poles and zeros to biquad coefficients. I really needed that...
Sorry if I missed it in Miller's book or some other obvious reference, I'm just really a newbie in filter design.
Thanks Alex
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Great that you're doing this!
thanks, here's a pic of what I have so far
https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/11212_101518729960466...
For extra inspiration you could have a look at PoZeTools
It sure does look like what I need. Thanks. But extracting what I need to know about the math of converting from coordinates to coefficients was just over my head :P unfortunately, sorry.
I was hoping for something simpler, like just the operations needed. If the info is in code, I need it to more explicit. I'd really appreciate if anyone knows how to read from this and just points it out for me so I can put it in a patch.
I'm assuming it's rather simple math
Cheers Alex
2013/9/23 Funs Seelen funsseelen@gmail.com
Hi Alexandre,
Great that you're doing this! For extra inspiration you could have a look at PoZeTools (http://kmt.hku.nl/~pieter/SOFT/RESP/html/PoZeTools.html). It's great software by Pieter Suurmond. He's the one who taught me filter design and he probably has some info about Z-transform on his website as well.
Regards, --Funs
On Mon, Sep 23, 2013 at 7:37 AM, Alexandre Torres Porres <porres@gmail.com
wrote:
Hi there. So, I've been studying a lot about filters, and I'm doing this clone of max's z-plane in Pd.
I hope anyone can help me guide where to find how to convert the values of the complex poles and zeros to biquad coefficients. I really needed that...
Sorry if I missed it in Miller's book or some other obvious reference, I'm just really a newbie in filter design.
Thanks Alex
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On Mon, Sep 23, 2013 at 5:35 PM, Alexandre Torres Porres porres@gmail.comwrote:
thanks, here's a pic of what I have so far
https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/11212_101518729960466...
Cool.
For extra inspiration you could have a look at PoZeTools
It sure does look like what I need. Thanks. But extracting what I need to know about the math of converting from coordinates to coefficients was just over my head :P unfortunately, sorry.
I was hoping for something simpler, like just the operations needed. If the info is in code, I need it to more explicit. I'd really appreciate if anyone knows how to read from this and just points it out for me so I can put it in a patch.
I'm assuming it's rather simple math
I remember I once learned how to do this but never repeated the practice. If I find time to do that I would gladly try to figure it out again, but if someone more experienced feels the urge to chime in before that time I would be very happy too :).
for what i see, it's not some sort of straight formula, right? seems a bit more complicated than that.
cheers
2013/9/23 Funs Seelen funsseelen@gmail.com
On Mon, Sep 23, 2013 at 5:35 PM, Alexandre Torres Porres <porres@gmail.com
wrote:
thanks, here's a pic of what I have so far
https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/11212_101518729960466...
Cool.
For extra inspiration you could have a look at PoZeTools
It sure does look like what I need. Thanks. But extracting what I need to know about the math of converting from coordinates to coefficients was just over my head :P unfortunately, sorry.
I was hoping for something simpler, like just the operations needed. If the info is in code, I need it to more explicit. I'd really appreciate if anyone knows how to read from this and just points it out for me so I can put it in a patch.
I'm assuming it's rather simple math
I remember I once learned how to do this but never repeated the practice. If I find time to do that I would gladly try to figure it out again, but if someone more experienced feels the urge to chime in before that time I would be very happy too :).
Hi Alexandre,
This is the online tool: http://kmt.hku.nl/~pieter/cgi-bin/resp/nph-PZT.cgi.
It starts with an example and every time you refresh the page it gives you a new one. If you scroll down there's a link that tells you how the coefficients were calculated, e.g.: 2 zeros give 3 coefficients: *a0* = G *a1* = -G(Z0 + Z1) *a2* = G(Z0*Z1)
2 poles give 3 coefficients: *b0* = 1 *b1* = -(P0 + P1) *b2* = (P0*P1)
The linear difference equation is derived from these as you can see.
Regards, --Funs
On Tue, Sep 24, 2013 at 7:36 AM, Alexandre Torres Porres porres@gmail.comwrote:
for what i see, it's not some sort of straight formula, right? seems a bit more complicated than that.
cheers
2013/9/23 Funs Seelen funsseelen@gmail.com
On Mon, Sep 23, 2013 at 5:35 PM, Alexandre Torres Porres < porres@gmail.com> wrote:
thanks, here's a pic of what I have so far
https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/11212_101518729960466...
Cool.
For extra inspiration you could have a look at PoZeTools
It sure does look like what I need. Thanks. But extracting what I need to know about the math of converting from coordinates to coefficients was just over my head :P unfortunately, sorry.
I was hoping for something simpler, like just the operations needed. If the info is in code, I need it to more explicit. I'd really appreciate if anyone knows how to read from this and just points it out for me so I can put it in a patch.
I'm assuming it's rather simple math
I remember I once learned how to do this but never repeated the practice. If I find time to do that I would gladly try to figure it out again, but if someone more experienced feels the urge to chime in before that time I would be very happy too :).
This is the online tool:
http://kmt.hku.nl/~pieter/cgi-bin/resp/nph-PZT.cgi.
damn, it says it cant load it here :P
but this seems like a simple formula to try out, from what you copied here. If that's all, and if I got what it means, I can see a patch coming right now :) let's see!
thanks
2013/9/24 Funs Seelen funsseelen@gmail.com
Hi Alexandre,
This is the online tool: http://kmt.hku.nl/~pieter/cgi-bin/resp/nph-PZT.cgi.
It starts with an example and every time you refresh the page it gives you a new one. If you scroll down there's a link that tells you how the coefficients were calculated, e.g.: 2 zeros give 3 coefficients: *a0* = G *a1* = -G(Z0 + Z1) *a2* = G(Z0*Z1)
2 poles give 3 coefficients: *b0* = 1 *b1* = -(P0 + P1) *b2* = (P0*P1)
The linear difference equation is derived from these as you can see.
Regards, --Funs
On Tue, Sep 24, 2013 at 7:36 AM, Alexandre Torres Porres <porres@gmail.com
wrote:
for what i see, it's not some sort of straight formula, right? seems a bit more complicated than that.
cheers
2013/9/23 Funs Seelen funsseelen@gmail.com
On Mon, Sep 23, 2013 at 5:35 PM, Alexandre Torres Porres < porres@gmail.com> wrote:
thanks, here's a pic of what I have so far
https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/11212_101518729960466...
Cool.
For extra inspiration you could have a look at PoZeTools
It sure does look like what I need. Thanks. But extracting what I need to know about the math of converting from coordinates to coefficients was just over my head :P unfortunately, sorry.
I was hoping for something simpler, like just the operations needed. If the info is in code, I need it to more explicit. I'd really appreciate if anyone knows how to read from this and just points it out for me so I can put it in a patch.
I'm assuming it's rather simple math
I remember I once learned how to do this but never repeated the practice. If I find time to do that I would gladly try to figure it out again, but if someone more experienced feels the urge to chime in before that time I would be very happy too :).
one doubt emerges really soon anyway. Since they are complex (there are two coordinate numbers for each pole and zero) how do I get only one number by, for example, summing or multiplying one pole to the other? as in:
*b1* = -(P0 + P1) *b2* = (P0*P1)
cheers!
2013/9/24 Alexandre Torres Porres porres@gmail.com
This is the online tool:
http://kmt.hku.nl/~pieter/cgi-bin/resp/nph-PZT.cgi.
damn, it says it cant load it here :P
but this seems like a simple formula to try out, from what you copied here. If that's all, and if I got what it means, I can see a patch coming right now :) let's see!
thanks
2013/9/24 Funs Seelen funsseelen@gmail.com
Hi Alexandre,
This is the online tool: http://kmt.hku.nl/~pieter/cgi-bin/resp/nph-PZT.cgi.
It starts with an example and every time you refresh the page it gives you a new one. If you scroll down there's a link that tells you how the coefficients were calculated, e.g.: 2 zeros give 3 coefficients: *a0* = G *a1* = -G(Z0 + Z1) *a2* = G(Z0*Z1)
2 poles give 3 coefficients: *b0* = 1 *b1* = -(P0 + P1) *b2* = (P0*P1)
The linear difference equation is derived from these as you can see.
Regards, --Funs
On Tue, Sep 24, 2013 at 7:36 AM, Alexandre Torres Porres < porres@gmail.com> wrote:
for what i see, it's not some sort of straight formula, right? seems a bit more complicated than that.
cheers
2013/9/23 Funs Seelen funsseelen@gmail.com
On Mon, Sep 23, 2013 at 5:35 PM, Alexandre Torres Porres < porres@gmail.com> wrote:
thanks, here's a pic of what I have so far
https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/11212_101518729960466...
Cool.
For extra inspiration you could have a look at PoZeTools
It sure does look like what I need. Thanks. But extracting what I need to know about the math of converting from coordinates to coefficients was just over my head :P unfortunately, sorry.
I was hoping for something simpler, like just the operations needed. If the info is in code, I need it to more explicit. I'd really appreciate if anyone knows how to read from this and just points it out for me so I can put it in a patch.
I'm assuming it's rather simple math
I remember I once learned how to do this but never repeated the practice. If I find time to do that I would gladly try to figure it out again, but if someone more experienced feels the urge to chime in before that time I would be very happy too :).
On Tue, Sep 24, 2013 at 2:50 PM, Alexandre Torres Porres porres@gmail.comwrote:
one doubt emerges really soon anyway. Since they are complex (there are two coordinate numbers for each pole and zero) how do I get only one number by, for example, summing or multiplying one pole to the other? as in:
*b1* = -(P0 + P1) *b2* = (P0*P1)
You don't, the coefficients can be complex too. However, I discovered that mirroring (*) every pole and zero results in just real values without imaginary part. I don't have any mathematical proof for this, but it probably wouldn't be too hard to find such.
*) adding another pole/zero for each complex one, like z=-j if you already have a z=j.
well, not sure what you mean, again way over my head, but I was giving it a hard shot in the dark and it seemed to have worked out :)
I just summed both parts of Z0, for instance, and tried the given math, numbers came out!
now to make more tests and see if this is consistent, then finish the patch ;)
thanks!
2013/9/24 Funs Seelen funsseelen@gmail.com
On Tue, Sep 24, 2013 at 2:50 PM, Alexandre Torres Porres <porres@gmail.com
wrote:
one doubt emerges really soon anyway. Since they are complex (there are two coordinate numbers for each pole and zero) how do I get only one number by, for example, summing or multiplying one pole to the other? as in:
*b1* = -(P0 + P1) *b2* = (P0*P1)
You don't, the coefficients can be complex too. However, I discovered that mirroring (*) every pole and zero results in just real values without imaginary part. I don't have any mathematical proof for this, but it probably wouldn't be too hard to find such.
*) adding another pole/zero for each complex one, like z=-j if you already have a z=j.
On Tue, Sep 24, 2013 at 3:08 PM, Funs Seelen funsseelen@gmail.com wrote:
On Tue, Sep 24, 2013 at 2:50 PM, Alexandre Torres Porres <porres@gmail.com
wrote:
one doubt emerges really soon anyway. Since they are complex (there are two coordinate numbers for each pole and zero) how do I get only one number by, for example, summing or multiplying one pole to the other? as in:
*b1* = -(P0 + P1) *b2* = (P0*P1)
You don't, the coefficients can be complex too. However, I discovered that mirroring (*) every pole and zero results in just real values without imaginary part. I don't have any mathematical proof for this, but it probably wouldn't be too hard to find such.
I remembered again, it's called the complex conjugate. http://en.wikipedia.org/wiki/Complex_conjugate
*) adding another pole/zero for each complex one, like z=-j if you already have a z=j.
so you're basically saying all i need to use is use only the real part, right?
my frankenstein was working and alive for several times until i tried some bandpass coeff, let's se if i fix this now :)
2013/9/24 Funs Seelen funsseelen@gmail.com
On Tue, Sep 24, 2013 at 3:08 PM, Funs Seelen funsseelen@gmail.com wrote:
On Tue, Sep 24, 2013 at 2:50 PM, Alexandre Torres Porres < porres@gmail.com> wrote:
one doubt emerges really soon anyway. Since they are complex (there are two coordinate numbers for each pole and zero) how do I get only one number by, for example, summing or multiplying one pole to the other? as in:
*b1* = -(P0 + P1) *b2* = (P0*P1)
You don't, the coefficients can be complex too. However, I discovered that mirroring (*) every pole and zero results in just real values without imaginary part. I don't have any mathematical proof for this, but it probably wouldn't be too hard to find such.
I remembered again, it's called the complex conjugate. http://en.wikipedia.org/wiki/Complex_conjugate
*) adding another pole/zero for each complex one, like z=-j if you already have a z=j.
hey, starting to see what you mean much more clear, cool, really excited. Thanks a lot!!!!!
2013/9/24 Alexandre Torres Porres porres@gmail.com
so you're basically saying all i need to use is use only the real part, right?
my frankenstein was working and alive for several times until i tried some bandpass coeff, let's se if i fix this now :)
2013/9/24 Funs Seelen funsseelen@gmail.com
On Tue, Sep 24, 2013 at 3:08 PM, Funs Seelen funsseelen@gmail.comwrote:
On Tue, Sep 24, 2013 at 2:50 PM, Alexandre Torres Porres < porres@gmail.com> wrote:
one doubt emerges really soon anyway. Since they are complex (there are two coordinate numbers for each pole and zero) how do I get only one number by, for example, summing or multiplying one pole to the other? as in:
*b1* = -(P0 + P1) *b2* = (P0*P1)
You don't, the coefficients can be complex too. However, I discovered that mirroring (*) every pole and zero results in just real values without imaginary part. I don't have any mathematical proof for this, but it probably wouldn't be too hard to find such.
I remembered again, it's called the complex conjugate. http://en.wikipedia.org/wiki/Complex_conjugate
*) adding another pole/zero for each complex one, like z=-j if you already have a z=j.
On Tue, Sep 24, 2013 at 3:35 PM, Alexandre Torres Porres porres@gmail.comwrote:
so you're basically saying all i need to use is use only the real part, right?
No, I meant that I have the idea that the imaginary part in the calculated coefficients will disappear automatically if you add complex conjugates for all poles and zeros, probably when somehow i^2 gets -1 somewhere. But I must say I'm not a mathematician and not sure at all.
On 24/09/13 21:46, Funs Seelen wrote:
On Tue, Sep 24, 2013 at 3:35 PM, Alexandre Torres Porres porres@gmail.comwrote:
so you're basically saying all i need to use is use only the real part, right?
No, I meant that I have the idea that the imaginary part in the calculated coefficients will disappear automatically if you add complex conjugates for all poles and zeros, probably when somehow i^2 gets -1 somewhere. But I must say I'm not a mathematician and not sure at all.
indeed it will ... a conjugate is the number with the imaginary part negated ... so adding a number and its conjugate will certainly end up with a real part only.
Simon
On Tue, Sep 24, 2013 at 6:32 PM, Simon Wise simonzwise@gmail.com wrote:
On 24/09/13 21:46, Funs Seelen wrote:
On Tue, Sep 24, 2013 at 3:35 PM, Alexandre Torres Porres porres@gmail.comwrote:
so you're basically saying all i need to use is use only the real part,
right?
No, I meant that I have the idea that the imaginary part in the calculated coefficients will disappear automatically if you add complex conjugates for all poles and zeros, probably when somehow i^2 gets -1 somewhere. But I must say I'm not a mathematician and not sure at all.
indeed it will ... a conjugate is the number with the imaginary part negated ... so adding a number and its conjugate will certainly end up with a real part only.
Yes, true, and the imaginary part disappears as well when multiplying if the real parts are equal, e.g.:
i^2 = -1, so ...
(0.5 + 0.5i) * (0.5 - 0.5i) = 0.25 + 0.25i - 0.25i - 0.25i^2 = 0.5
Simon
______________________________**_________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/** listinfo/pd-list http://lists.puredata.info/listinfo/pd-list
On Tue, Sep 24, 2013 at 2:36 PM, Alexandre Torres Porres porres@gmail.comwrote:
This is the online tool:
http://kmt.hku.nl/~pieter/cgi-bin/resp/nph-PZT.cgi.
damn, it says it cant load it here :P
It doesn't load here either. Perhaps the server is too busy since I put this link here and sent a thousand robots over.
Hey Alexandre,
This blog - EarLevel Engineeringhttp://www.earlevel.com/main/2003/02/28/biquads/ - really helped with my understanding of poles/zeros and biquads. Hope it's useful!
Cheers, Joe
On 24 September 2013 06:36, Alexandre Torres Porres porres@gmail.comwrote:
for what i see, it's not some sort of straight formula, right? seems a bit more complicated than that.
cheers
2013/9/23 Funs Seelen funsseelen@gmail.com
On Mon, Sep 23, 2013 at 5:35 PM, Alexandre Torres Porres < porres@gmail.com> wrote:
thanks, here's a pic of what I have so far
https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/11212_101518729960466...
Cool.
For extra inspiration you could have a look at PoZeTools
It sure does look like what I need. Thanks. But extracting what I need to know about the math of converting from coordinates to coefficients was just over my head :P unfortunately, sorry.
I was hoping for something simpler, like just the operations needed. If the info is in code, I need it to more explicit. I'd really appreciate if anyone knows how to read from this and just points it out for me so I can put it in a patch.
I'm assuming it's rather simple math
I remember I once learned how to do this but never repeated the practice. If I find time to do that I would gladly try to figure it out again, but if someone more experienced feels the urge to chime in before that time I would be very happy too :).
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
hey joe, this blog is awesome, I stumbled upon it too, they even have an applet that does the job I want, but no code or formulas around :P it's the closest thing I found on the subject in the internet...
weird how I can't seem to find these formulas on google and all...
cheers
2013/9/24 Joe White white.joe4@gmail.com
Hey Alexandre,
This blog - EarLevel Engineeringhttp://www.earlevel.com/main/2003/02/28/biquads/ - really helped with my understanding of poles/zeros and biquads. Hope it's useful!
Cheers, Joe
On 24 September 2013 06:36, Alexandre Torres Porres porres@gmail.comwrote:
for what i see, it's not some sort of straight formula, right? seems a bit more complicated than that.
cheers
2013/9/23 Funs Seelen funsseelen@gmail.com
On Mon, Sep 23, 2013 at 5:35 PM, Alexandre Torres Porres < porres@gmail.com> wrote:
thanks, here's a pic of what I have so far
https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-prn1/11212_101518729960466...
Cool.
For extra inspiration you could have a look at PoZeTools
It sure does look like what I need. Thanks. But extracting what I need to know about the math of converting from coordinates to coefficients was just over my head :P unfortunately, sorry.
I was hoping for something simpler, like just the operations needed. If the info is in code, I need it to more explicit. I'd really appreciate if anyone knows how to read from this and just points it out for me so I can put it in a patch.
I'm assuming it's rather simple math
I remember I once learned how to do this but never repeated the practice. If I find time to do that I would gladly try to figure it out again, but if someone more experienced feels the urge to chime in before that time I would be very happy too :).
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-- Follow me on Twitter @diplojocus