From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Frequency Offset Calibration Transmitter and Receiver with USRP® Hardware

Solved!
Go to solution

Dear all, I am reading the scripts provided by Mathworks about the frequency offset calibration transmitter and receiver with USRP.

The USRP® Transmitter sends a sine wave at 100Hz with the MATLAB script, sdruFrequencyCalibrationTransmitter.m, to the USRP® receiver. The USRP® Receiver monitors received signals, calculates the transmitter/receiver frequency offset and displays it in the MATLAB command window for calibration with the MATLAB script, sdruFrequencyCalibrationReceiver.m.  At the receiver, the frequency offset will be calculated and be shown in the command window. The programme uses a spectrum analyzer to show the received signal spectrum. In the program, the corresponding sentense is " % Display received frequency spectrum. step(hSpectrumAnalyzer, rxSig);" Basing on this , I thought the spectrum analyzer would show the spectrum of the received signal. However,  the website corresponding website shows "To compensate for a transmitter/receiver frequency offset, add the displayed frequency offset to the Center Frequency of the SDRu Receiver System object. Be sure to use the sign of the offset in your addition. Once you've done that, the spectrum displayed by the receiver's spectrum analyzer System object should have its maximum amplitude at roughly 0 Hz.". What I am confused is, why should the spectrum analyzer have its maximum amplitude at roughly 0 Hz, not other values? Is this due to the characteristics of the USRP itself or what  the spectrum analyzer shows is the difference value between the Tx and Rx after calibration?  I am using Ni-USRP 2920. Your answer will be highly appreciated! Thanks!

 

The mfile of matlab can be found in the following links:

http://uk.mathworks.com/help/supportpkg/usrpradio/examples/frequency-offset-calibration-receiver-wit...

 

http://uk.mathworks.com/help/supportpkg/usrpradio/examples/frequency-offset-calibration-transmitter-...

0 Kudos
Message 1 of 6
(5,265 Views)

Hello Barbara

 

1.I guess there is two things, during the cal process after correction, the test tone tone will be at DC (0Hz).

2.USRP uses a ZIF architecture for the RF front-end, so even with no signal you'll see something at DC, this if the LO leakage.
   you can read more about it here.

 

Tell me if that helps

Regards

 

 

Victor F. | Systems Engineer
Certified LabVIEW Developer | Certified TestStand Architect
National Instruments Budapest

0 Kudos
Message 2 of 6
(5,213 Views)

Thank you so much, Victor. I guess you're right, and it may be due to the crystal oscillator that causes the offset. For usrp 2920, it's 2.5ppm. Therefore , the frequency offset is in an acceptable range , I think. Thanks for your kind reply.

0 Kudos
Message 3 of 6
(5,194 Views)
Solution
Accepted by topic author Barbara_Zhang

Yes if two devices are not locked to a Reference Clock, the 10MHz for the USRPs you'll see a frequency offset.

The specs in ppm, ppb can give you how much it can be:
http://digital.ni.com/public.nsf/allkb/2A0B9D3F365DEDEF86256BDB007354ED

 

Bye !

Victor F. | Systems Engineer
Certified LabVIEW Developer | Certified TestStand Architect
National Instruments Budapest

0 Kudos
Message 4 of 6
(5,189 Views)

Thanks for your helpful answer ! It perfectly solved my question!

0 Kudos
Message 5 of 6
(5,177 Views)

Nice!

Feel free to mark the answer and Kudo generously 🙂

 

Have a nice day

Victor F. | Systems Engineer
Certified LabVIEW Developer | Certified TestStand Architect
National Instruments Budapest

Message 6 of 6
(5,175 Views)