I have analog GHz signal modulated with 60KHz signal and I analog mix it with reference GHz and low pass filter so now I have a 60KHz signal $a$ which I enthusiastically sample (at 1MHz). Meanwhile I also sample the original 60kHz modulation signal too, $b$. My goal is to get IQ of the 60KHz sample. I can do this with np.dot against sin(60KHz) and cos(60KHz) but.... needless to say that original 60KHz likely drifted a bit. No problem, I can np.dot the sampled 60KHz against the reference $b$ which gives me the inphase signal. How do I get the "Q" ? I have the both $a$ and $b$ samples available in memory so I dont have to do this on-the-fly.

My one thought is to np.roll(b) to shift the reference "by hand"(with the shift assuming perfect $f$ of 60KHz). But I also see that I can allpass the $b$ for a $\pi/2$ shift with effectively a Hilbert transform $y_k = \beta^2 (x_k - y_{k-2}) + 2 \beta (y_{k-1} - x_{k-1}) + x_{k-2}$ with a formula for $\beta$.... I guess I could also FFT, shift and FFT back... But I'm thinking that this is well trodden territory. Is there an industry standard practice?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.