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
Didn't find your answer? Ask the community — no account required.
V
vlad.inf
Correction: ?s=2/3
M
miso
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?
V
vlad.inf
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:
test2.png , which seems even better than Barbara Dai's, even if the lobes i n the stop-band aren't quite equiripple (
formatting link
lobes.png ).
---
So I'll reformulate my question: are the values for the terms Ai (from the thesis) defined as A[i]=2*?[i] or somehow else? If else, how?
V
vlad.inf
Could this be forbidden knowledge?
V
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.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.