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
normal Cauer IIR filter (V(o3)), Barbara Dai's non-quantized coefficients
(V(o1)) and my coefficients used with the "normalizing" described above (V(
y1), ?1=?0.0912405,?2=?0.3412645,?3=
?0.729655):
http://s27.postimg.org/nicvinueb/comp.png
While not there (too may traces makes comparison difficult), if the 11 bit
quantized values are used for V(o1), the response actually gets closer to t
he IIR.
Anticipated thanks,
Vlad
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 according to the equations 2.51, 2.52a and 2.52b from the thesis) and with As=68 and ?s=2/3 (as in the example from p.36 in the pdf). This wi ll result in a stop-band attenuation optimization, rather than a transition
-band or a pass-band optimization. I say this because I don't know what app roach Barbara Dai has.
The first simulation is with the raw values from the thesis for ? (bla ck trace) and the quantized values (blue trace):
formatting link
5djaw3/thesis.png
If I calculate the values for ? according to the equation from p.26 fr om the thesis, I get these values:
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.
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.