Direct RFIC Synthesizer and FPGA NCO Offset Tuning

SDR Offset tuning can be implemented with differential shifts of the RF and baseband frequency parameters.  One method to achieve receiver only offset tuning is what I call ‘indirect’ offset control.  This approach implements an offset with a baseband DSP tuning option feature of a Frequency Xlating FFT Filter in a receiver DSP flow graph: Zero Frequency Receiver Artifact  This approach to offset tuning is useful but limited to receiver only applications with a Frequency Xlating FFT filter in the flow graph.

It is possible to directly and separately tune the RFIC synthesizer and the FPGA NCO for both receiving and transmitting.  This capability for offset tuning is useful for some applications: removing baseband artifacts, split frequency, and dual transceiver operation: Dual Transceiver Application  This technique provides simplified direct control of the frequency offset and avoids the need for ‘indirect’ control via DSP flow graph adjustment.  All of the tuning occurs directly at the RF synthesizer and FPGA level with Python commands in the Source and Sink Center Freq parameter fields..

To get started, it is useful review modern SDR architecture: Modern SDR Architecture  and focus on the special purpose RFIC and the FPGA.  The RFIC contains an independent RF frequency synthesizer.  The FPGA contains it’s own synthesizer termed a ‘Numerically Controlled Oscillator’ (NCO).  Each synthesizer can be tuned directly and separately with the proper frequency commands.  The RFIC synthesizer outputs at RF.  The NCO only outputs baseband frequencies which limits potential offsets to less than 1/2 the SDR clock frequency.

Below are a series of USRP Sink Properties boxes that illustrate the Python command syntax and supplementary tuning control functionality for a SDR transmitter.

Basic Python tuning commands for offset tuning.  The intended RF output frequency is 144.200 MHz.  The RFIC synthesizer is commanded to output at 144,210 MHz (up 10 kHz).  The FPGA NCO is commanded to output -10 kHz (down 10 kHz)
Output spectrum of the offset configuration. The LO leakage is seen at -10 kHz and the intended frequency is centered at “0” on the FFT display
Offset Tuning with optional RFIC synthesizer frequency tuning.  The command ‘tune’ is the ID of an onscreen tuning widget block that provides tuning values for the RFIC synthesizer.

Note: The location of the ‘tune’ command in the Sink Center Freq parameter field determines whether the ‘tune’ command in the Sink Center Freq parameter field determines the RFIC synthesizer frequency.  The FPGA NCO cannot be tuned with a variable parameter.

Link to Terms and Abbreviations: Terms and Abbreviations

Link to Home Page: Home Page