NCO Mixer outputs on the RFSOC ADC incorrect

Hey, I’ll just briefly describe my problem.

So I’ve got a setup where I’m sampling my ADCs via the DMA. Real to Commplex mode. I managed to set it all up and it’s all good. Like I’ve received signals and compared them to what i expect (sinusoid in the input, sinusoid at the ADC samples and at the right frequency)

So I went ahead and supplid a 2-tone input with a tone at 1MHz and the other at 3MHz but upconverted to 150MHz. This is where the issue lies. I’ve set the Fine Mixer on the ADC to 0.15(GHz) so as to downconvert my signal to baseband but there’s a frequency offset of like 21MHz. Now, when I shift my input signal to 170MHz carrier with the same NCO setting of 0.15, I get what I initially intended. This is interesting. It’s odd that there would be a frequency mismatch of 20MHz between my exteranl generator and the internal NCO so if anyone can shed any insight on this, it would be much appreciated.

I spent like a whole day covering most of the sq. inches on pg269 , ds926 and even the rfsoc sdr book. I even reset the nco phase as some forum suggested. I’m just confused as it’s unexpected behaviour.

Below is a plot of the sampled spectrum plus the time domain aspects. The nature of the signal (in time) implies there’s still a fast oscillation going on so it’s like not being properly downconverted.

Hi,
Which board are you using?
Can you please provide the notebook, the python code you use?

I’m using the RFSoC 4x2. I made a mistake in the clocking. I was clocking my ADC with the 409.6MHz reference clock as opposed to the 491.52MHz reference. I’m not entirely sure why it would be a problem but I’m well aware of the pitfalls that lay in incorrect clocking. It works just fine now. I hope this can be a reference to future explorers. :slight_smile:

Here’s an updated photo as well.

1 Like