[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] RFX transceiver board receive VCO offsetautomate
Re: [Discuss-gnuradio] RFX transceiver board receive VCO offsetautomated calibration
Mon, 03 Mar 2008 10:02:04 +1300
Thunderbird 22.214.171.124 (Windows/20080213)
thank you for your response. My applications is rather simple. I am not
performing any receiver (digital or analog demod) type functionality
where such a realtime tracking of the received carrier frequency would
need to be a part of the overall design. Rather I am receiving a
modulated RF carrier on one frequency and then retransmitting on another
(cross band repeater), or retransmitting at complex baseband to be used
as an input vector modulation source for an external RF signal
generator/Fading simulator. I don't want the receive offset due to
RFX400/USRP oscillator/clock tolerances to cause the retransmitted
signal to be offset by an amount that could put it outside the fine
adjustment range of the RF modem receiver (3rd party device) under test.
At this stage my proposed calibration of the RFX400/USRP doesn't need to
happen continuously, just once at the start of a test.
Johnathan Corgan wrote:
On 2/27/08, Richard Clarke <address@hidden> wrote:
Before I go ahead and try to implement an auto calibration routine for
the Rx frequency offset of the receive subsystem on the RFX400/USRP, I
was wondering if anyone else had already implemented something similar,
or had any pointers for me.
While what you describe is well-intentioned, it doesn't solve the real issue.
Basically what I want to do is create a
calibration routine that will determine the frequency offset between the
RFX400/USRP receive subsystem (nominally already set to equal the
frequency from a transmit source (e.g sig gen) and the transmit source,
and then nudge the tune frequency to null that offset. I find that my
RFX400 receiver after time to stabilise is around 3.2KHz in error, which
is well within it's spec I know, however I want to automatically
determine this offset and null it out.
Do you want to null it out once, based on a your signal generator
input, and store that value somewhere? How would you use this value
in the future?
I guess the actual fine frequency
adjustment will actually be occurring in the DDC, would that be correct?
If that is how you were to implement it. If all you are doing is
applying a fixed correction based on this calibration technique you've
described, then it's easier to just tune the daughterboard to the
corrected frequency. You're correct that you will see the "beat
frequency" in the I or Q channel equal to the frequency offset between
the transmitter and receiver.
However, I don't think this addresses the bigger issue, which is that
receiver frequency and time base offset will always exist, and must be
corrected in real-time if you are using a modulation technique that is
sensitive to these offsets. Even temperature differences in the
frequency reference in the USRP can cause many kilohertz drift,
especially if you are operating at high carrier frequencies, like
There are many techniques for receiver frequency and phase
synchronization. They generally involve a block to measure the
frequency/phase error, a loop filter to turn this error into an
appropriate control value, and an NCO to apply the actual fine
frequency/phase correction to the incoming signal. These would be
designed to work with the properties of the actual modulation you'd be
This email, including any attachments, is only for the intended
addressee. It is subject to copyright, is confidential and may be
the subject of legal or other privilege, none of which is waived or
lost by reason of this transmission.
If the receiver is not the intended addressee, please accept our
apologies, notify us by return, delete all copies and perform no
other act on the email.
Unfortunately, we cannot warrant that the email has not been
altered or corrupted during transmission.
- Re: [Discuss-gnuradio] RFX transceiver board receive VCO offsetautomated calibration,
Richard Clarke <=