Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Triple Pole ZDF.. But it need a fix...

DSP related issues, mathematics, processing and techniques

Triple Pole ZDF.. But it need a fix...

Postby Tepeix » Sun Sep 03, 2023 1:45 pm

I was so much happy to see this filter working at low cutoff !)
(As i don't understand well all the logic of ZDF... was almost sure to get more a crash than a filter.)

But at high cutoff we could see that there's a problem and it crash...!
I try to find some fix.. changing g1 and g2 value.. But maybe d must also change ??

What i do wrong here ?

The idea is to add one more pole to a SVF ZDF filter.. Not sure it really make sense, but just to try..
But i miss something in the logic...
Attachments
tripleSVFZDF.png
tripleSVFZDF.png (7.13 KiB) Viewed 17482 times
Triple pole ZDF (need a fix).fsm
(94.79 KiB) Downloaded 779 times
Tepeix
 
Posts: 354
Joined: Sat Oct 16, 2021 3:11 pm

Re: Triple Pole ZDF.. But it need a fix...

Postby Tepeix » Mon Sep 04, 2023 11:58 am

hahaha it seams to work now...
I laugh, because my first attempt was just vaguely the idea, but inverting almost everything !)

Going back to the VaFilterDesign famous book, the equation become more clear..
Even if i'm surprise when it works..
Attachments
Triple pole ZDF v2.fsm
(43 KiB) Downloaded 645 times
Tepeix
 
Posts: 354
Joined: Sat Oct 16, 2021 3:11 pm

Re: Triple Pole ZDF.. But it need a fix...

Postby Tepeix » Wed Sep 06, 2023 1:29 pm

A more usable and a real-time version. Using the Tan approximation of Martin Vicaneck.

At first i was thinking that this filter as no real advantage..
Yet i'm not sure what they are but they are some interesting feature and difference with a classic SVF.
With no resonance (negative or positive) and only the Lp and Hp we get an allpass,
the allpass is 1th or 2th if they are mixed in positive or negative way..
Then with resonance to get a constant magnitude we need to add some Bandpass with it..

But the most fun is to use a positive and negative resonance then to mix the result..



I was so confuse trying to understand this zero delay feedback that i need to explain what was my problem to get it..

I needed to see more clearly what's on page 110 of the book : https://www.native-instruments.com/file ... _2.1.0.pdf

Image

So my confusion was to think that we need to take the entire filter and make an equation Y=X+ Y... ...
Then modify it to to isolate the Y part of the equation on the right, then make it disappear from the response..

For example : Y=X+Y*g become Y-Y*g=X then Y*(1-g)=X then Y=X/(1-g)
Then use this formula, and use some "magic rules" to update the state and filter..
But how did we get this Y in the right of the formula ? My mind itself could go in a feedback thinking about it..

Concentrate on page 110 i finaly understand the logic.

We need first to solve the delayless feedback that is at the beginning of the circuit. So here YHp.
Then no magic rules, but just forget about this particular feedback and solve the rest of the filter normally.

But from where did i find the Right YHp part of the equation ? (That's where my mind go to a feedback)
You just take the YHp point in the shematic, then see what operation happen to it in all the road of the feedback.

So here Y is * by g then 2R for the first feedback path and g*g for the second one. Yhp= -Yhp*(2R*g+g*g) + x - ... ... ...
Now we could also solve for the states to get the entire equation. Then Solve for YHp !)
Attachments
Triple pole ZDF v4 (Real-Time).fsm
(155.13 KiB) Downloaded 656 times
Tepeix
 
Posts: 354
Joined: Sat Oct 16, 2021 3:11 pm

Re: Triple Pole ZDF.. But it need a fix...

Postby Tepeix » Thu Sep 07, 2023 4:37 pm

Now for those who like mind game ;)

I try to make a sort of ZDF Moog Ladder, But with another lowpass system.
(this type of lowpass multiply the signal by 2, at the end it might be divide by 16)
How many Y, and S1,S2,S3,S4 did i get in my ZDF equation ?

Héhé i try to solve it but there's a trap as there's many path to follow...
Attachments
LadAlp.png
LadAlp.png (22.66 KiB) Viewed 16301 times
Tepeix
 
Posts: 354
Joined: Sat Oct 16, 2021 3:11 pm

Re: Triple Pole ZDF.. But it need a fix...

Postby Tepeix » Thu Sep 07, 2023 8:39 pm

It works ;)

Yet it's very complex to find the equation.
To help i count the number of possible path, for Y it's 2*2*2*2 so 16 path (or 4bit) to take into account..
I would better also use a negative R to help the calculation...

One think i like with this Lp is the more easy coefficient to get.
It's also based on tan. But (tan (f/sr*pi)-1) / (tan (f/sr*pi)+1)
Which seams similar to tan ((wc*pi)-(pi*0.25)) so a shift of tan.
Then it's more easy to approximate this portion of tan. (-0.25pi - 0.25pi).

But i'm not sure that we get any advantage doing like this for this filter.
(I have yet to understand more the classic zdf form)
For more Lp component it will become probably to much complex..
But i thing about a way to separate the resonance from the rest of the filter, then using volume to adjust..
Attachments
Moog4LadAlpZDF.fsm
(293.38 KiB) Downloaded 624 times
Tepeix
 
Posts: 354
Joined: Sat Oct 16, 2021 3:11 pm

Re: Triple Pole ZDF.. But it need a fix...

Postby Tepeix » Mon Sep 11, 2023 2:06 pm

Yep, this LP (or here HP) type seams in the end a little slower..
But seams also more easy to deal..
Maybe my misunderstanding of how the classical one might have one delayless feedback
for each pole and how to resolve all of them...
(maybe for non linearity this could make thing easy too?)

Now for the calculation of the equation i find some Helpers that are useful.

Considering one pole, we get 2 Y path and 2 S path.. Once a S is out of his pole, it take the same path as a Y.

Then we could simulate the circuit with a String system !

Y Going to the input of an HP pole we get -Y and GY
Just adding a - or a G or -G to the text..

Then each result of the first pole is entered in the next one. And we get all the path easily.

Well, almost easily.. We might be sure to see when they are 2 negative in series,
and keep in mind that the result is a multiplication.. For example -G-GY would say -G*-G*Y. So GGY.
Attachments
ZDF Helper.fsm
(65 KiB) Downloaded 617 times
Text ZDF simulator.png
Text ZDF simulator.png (78.59 KiB) Viewed 15227 times
Tepeix
 
Posts: 354
Joined: Sat Oct 16, 2021 3:11 pm

Re: Triple Pole ZDF.. But it need a fix...

Postby Tepeix » Fri Sep 15, 2023 4:05 pm

A more experimental one. I was avoiding 2th allpass, to make coefficients easy..
But this one have some advantage to make a zero delay feedback.

The state S2 is not to take into account. So we only need to calculate for Y and S3.
(initially i wanted to add the 1th/S1 path but it seams fine without.)

Yes, when some path lead to a state there's no more need to calculate them, so S2 is not a part of the ZDF equation.

Now the frustrating part sometime with filter is that coefficients take more instruction than the filter itself..
Here we could adjust the slope with G1b but with some more complexity..
I make very approximate coefficient in the end, but it seams to be ok with this level of precision.

(Edit: Just a little limiting of the value of H and R.. When H is big and the slope longer there's some strange behavior at nyquiest that could break the filter..)
Attachments
DualAlpZDF v2.fsm
(210.93 KiB) Downloaded 626 times
DualAlp.png
DualAlp.png (26.84 KiB) Viewed 14357 times
Tepeix
 
Posts: 354
Joined: Sat Oct 16, 2021 3:11 pm

Re: Triple Pole ZDF.. But it need a fix...

Postby Tepeix » Wed Oct 11, 2023 2:43 pm

I continue to dig into the ZDF world..

I find that there's another way to solve this than using the helpers or doing the famous ZDF equation.
Those are good to understand the principle and will works but they lead me to less naturally optimization.

Using equation or helpers, i will probably end up with something like S4* G^4 +2RGGG +4RGG +2RG+1R ...
for each state and for the y loop..
I will be tempted to calculate all of those and threat every state separately.. That's a lot of instruction..


But finally will could also see the ZDF as a double calculation of the filter, the instantaneous feedback that is calculated at the beginning is almost the same as calculating the filter.
In this way we could add s2 to s1 then multiply by something then add s3 then multiply...
Finally inverting some calculation could sometime help too.

For the Moog with this different LP, every state will be multiplied first one time by (1-G) and a certain number of time by (1+G).
So it's better to do *(1+g) first, then add the next state then *(1+g) and finally *(1-G) for all in the end.
Attachments
MoogLadalp reoptimise.fsm
(141.61 KiB) Downloaded 623 times
LadAlp.png
LadAlp.png (22.66 KiB) Viewed 13092 times
Tepeix
 
Posts: 354
Joined: Sat Oct 16, 2021 3:11 pm


Return to DSP

Who is online

Users browsing this forum: No registered users and 53 guests