Bireciprocal lattice wave digital filter

Hello

I am trying to model a bireciprocal Cauer filter in LTspice but I don't get the expected results. More precisely, using ?=(re(s)?1)/(re(s)+1)

where re(s) is the realpart of the pole, gives this result:

formatting link

Among the few references I have, one that gives a numerical example is a th esis, "Design and Realization Methods for IIR Multiple Notch Filters and Hi gh Speed Narrow-band and Wide-band Filters, L. Barbara Dai" and, simply by looking at the numbers and comparing them with what I had, it seemd as if t he poles need to be "normalized" to the single real pole, s[(N+1)/2]. That' s what I did:

?=(re(s)/s[(N+1)/2]?1)/(re(s)/s[(N+1)2]+1)

so, even if the numerical values still differed, but a not as before, I got this result:

formatting link

The example used here is not the one used in the thesis, but I seem to get good results (I cannot verify them) with either stop-band, or transition-ba nd optimizations and for any (odd) order.

So, my question is: is this the way to do it, "normalize" poles by dividing each to the single, real pole?

--
Just for the sake of comparison, here are 3 results using the same settings 
 as in the thesis (As=68=>Ap,?s=23=>?p,f0=2), between a 
 Click to see the full signature
Reply to
vlad.inf
Loading thread data ...

Correction: ?s=2/3

Reply to
vlad.inf

Beats me what you are trying to do, but if you want magnitude, why wouldn't your model be the sqrt of the complex conjugate multiplied?

|(a + j*b )| = sqrt ((a + j*b)*(a-j*b))

But you have the filter topology, so why not just run it in LTspice?

Reply to
miso

I'm referring to the calculation of the coefficients, it's suposed to be th e simplified version of the "normal" lattice wave digital filter:

?=(Ai-2)/(Ai+2)

where Ai=2*re(s) and s=?+j?, which simplifies to the first eq uation in the OP.

As the pictures show, if run in LTspice with the coefficients calculated af ter the 1st eq. in the OP, I get the results shown in the 1st picture, whic h is obviously wrong. But if I divide re(s) to the single, real pole at (N+

1)/2, given the odd order, I get the results in the 2nd picture, only this isn't supposed to be the normal way of doing it, is it?
--
I'll try again, using the example in the mentioned thesis as a reference. I 
n doing this I will impose As, Ap, ?p and ?s and determine N (as  
 Click to see the full signature
Reply to
vlad.inf

Could this be forbidden knowledge?

Reply to
vlad.inf

In the meantime someone gave me the answer: the first formula, ?=(re (s)?1)/(re(s)+1) is correct, but the determination of the po les in the s-domain is wrong, in that all the four parameters, As, A p, ?s and ?p, need to be specified such that the resulting N is c losest to integer, without using ceil(). In other words, the best approach is to impose N and deduce one of the four parameters from the other three.

With the same example from the thesis (p.27) and a quick change in my formu las, I get this result:

![evrika!]

formatting link

where the blue trace is from the thesis and the black one - mine. Even if t here still are differences, they are minor, closer to the truth and probabl y due to one of the other 2 possible optimizations (which are too difficult to achieve with LTspice). Either way, this is the right path.

Reply to
vlad.inf

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.