Max NCO, relation to sampling rate, and NCO effect

Hi all,

It seems in RX, in single channel, the NCO up and downconvert is limited by the sampling rate as follow

  • must always be < 80MHz
  • must be < sampling rate * 16

For TX in single channel it’s the same, except it’s <= sampling rate * 16

In dual channel, it seems that in RX if the sampling rate is

  • >= 40MS/s, then the NCO must be <= sampling rate
  • < 40MS/s, then it’s back to < sampling rate * 16 as long as it’s < 80MHz

In dual channel in TX it’s the same except the conditions are > 40MS/s and <= 40MS/s.

Is this how the NCO is programmed?

Also, what is the impact of the NCO with regard to the sent/received signals? Should I try to keep it to a minimum? Does that minimum depend on the sampling rate?

Eg in dual RX, I use 55MS/s at 2450MHz with NCO +/- 23MHz to listen on 101MHz with some overlap in the middle.

@andrewback @Zack Any advice concerning the NCO? What is its impact, for both RX and TX?

I currently run at 55MS/s in dual RX at 2450MHz with NCO +/- 23MHz to listen on 101MHz with some overlap in the middle. That way I get the whole 2.4GHz band. What impact can the NCO have on the reception?

For TX I want to also be able to handle the 2.4GHz band and switch fast between frequencies. To do so I’m using the NCO (see Frequency hopping transmit [FIXED]). From what I noticed before, if I’m sampling at 10MS/s, I should be able to use the NCO to transmit my signal anywhere on the 2.4GHz band. But again, what is the impact of the NCO on my signal?

Concerning the transmit power, the wider the signal, the less powerful it gets. But if I want to send a 10MHz wide signal, can I get similar power by using a 10MS/s sampling rate and a 40MS/s with a low pass filter to only keep the 10MHz signal? Or will I always get 4 times less power, even with the filter?

Also, is the transmit power time limited? Eg can i transmit at the same constant power a continuous signal and a bursty signal?

Hi @KarlL,

There is no single/dual channel limitation for NCO, do not why you made this conclusion.
The maximum frequency NCO can generate is Fsampling/2, but performance will be not very good. There is nothing special with LMS7002M NCO. Check “Numerically Controlled Oscillator” section from LMS7002M datasheet for more information.

Together with CMIX it will up-convert/down-convert your signal - again, nothing special.

Thanks Zack.

With a 2MS/s receive rate, if I set the NCO to 60MHz, I see the following warning

e[1me[31m[ERROR] SetNCOFrequency(index = 0) - Frequency(60 MHz) out of range [0-32) MHze[0m

I can correctly set it to -31 or +31, but not -32 or +32.

By trying different receive and transmit rates, I was able to deduce the limitations noted in the 1st post. I’m using the SoapySDR API, but I think this message comes from the LimeSuite part.

What do you mean exactly by the performance will not be very good? The signal will not be properly shifted? It will contains additional noise/spurious emissions?

Hi Karl,
NCO shifts signal digitally, so the maximum shift (NCO value) is +/- sample_rate/2. You can shift more than half of your signal sample rate in LMS chip, because RF sample rate is higher than you signal sample rate because of oversampling. The maximum oversampling setting is 32x and maximum ADC rate is 160MHz. So in your case the configuration is probably 2MSps (from PC) with 32x oversampling, that gives 64MSps in RF and max NCO +/- 32MHz.

1 Like

Thanks Ignas, that makes perfect sense now. I didn’t realize the LMS always tried to oversample.