The decimation block is equipped with a 32-bit NCO and a digital mixer to fine tune the frequency placement prior to the digital filtering. The oscillator generates a complex exponential sequence of:
ejωn (default) or e–jωn
where: frequency (ω) is specified as a signed number by the 32-bit register setting
The complex exponential sequence is multiplied with the real input from the ADC to mix the desired carrier to a frequency equal to fIN + fNCO. The NCO frequency can be tuned from –FS/2 to +FS/2 and is processed as a signed, 2s complement number. After programming a new NCO frequency, the MIXER RESTART register bit or SYNC pin has to be toggled for the new frequency to get active. Additionally the ADC364x provides the option via SPI to invert the mixer phase.
The NCO frequency setting is set by the 32-bit register value given and calculated as:
NCO frequency = 0 to + FS/2: NCO = fNCO × 232 / FS
NCO frequency = -FS/2 to 0: NCO = (fNCO + FS) × 232 / FS
The NCO programming is further illustrated with this example:
For this example there are actually four ways to program the NCO and achieve the desired output frequency as shown in Table 8-2.
|Alias or negative image||fNCO||NCO Value||Mixer Phase||Frequency translation for fOUT|
|fIN = –10 MHz||fNCO = 10 MHz||660764199||as is||fOUT = fIN + fNCO = –10 MHz +10 MHz = 0 MHz|
|fIN = 10 MHz||fNCO = –10 MHz||3634203097||fOUT = fIN + fNCO = 10 MHz + (–10 MHz) = 0 MHz|
|fIN = 10 MHz||fNCO = 10 MHz||660764199||inverted||fOUT = fIN– fNCO = 10 MHz – 10 MHz = 0 MHz|
|fIN = –10 MHz||fNCO = –10 MHz||3634203097||fOUT = fIN– fNCO = –10 MHz – (–10 MHz) = 0 MHz|