Hi,
I would like to simulate I/Q crosstalk in my system (and specifically assess whether I can use 50% duty cycle which is known to be problematic for I/Q crosstalk because two branches are used at the same time).
I set up a testbench where I create a signal cos(2pi fc t)sin(2pi fi t) - sin(2pi fc t)*sin(2pi fq t) where fc=1GHz, fi=10MHz and fq=20MHz. Ideally I should see only 10 MHz in the I branch and only 20 MHz in the Q. However, I always saw signal parts in each other and while debugging I found that I even see (small) 10 MHz in the Q branch when I connect it only to a voltage source supplying cos(2pi fc t)sin(2pi fi t).
In the end I ended up with a trivial testbench like this:
The "mixer_mult" is a Verilog-A model and only contains "V(out) <+ V(in) * V(lo);". However, the effects are similar when I replace it with ideal switches using "switch" from analogLib.
The time domain shows a small signal which to my understanding should only contain the RF image. However, examining the spectrum it is confirmed that there is a peak at 10 MHz in the Q channel which is only 44dB less than the full 10 MHz in the I channel:
First I thought it may be the image rejection filter (although contradicting) but increasing its order even to 11 did not change anything.
So I went off to Simulink with the same setup and saw the peak also there. However, it was lower (-60dB). After decreasing the (fixed) step size to 100fs the peak in Simulink was reduced to -80dB. So I thought it is merely a simulation artefact, went back to Spectre and re-run the sim with reltol=1e-6, vabsol=1e-9, iabstol=1e-15. However, nothing changed (it got even slightly worse).
Well, -40dB is pretty high and about the spec so it's hard for me to believe that the simulator is having numerical issues.
And on top of that: How should I start simulating actual IQ crosstalk when not even in the ideal scenario, the leakage is "minus infinity"??
While I think that tran sim is the "golden reference" and I would like to see its results make sense;what is the "proper" way yo simulate I/Q crosstalk? I played around with "hb" but the results are even crazier, telling me that the 10MHz in the Q channel are just 14dB below the I channel ...
Thanks!!