[USRP-users] How should content of struct 'tune_result_t' be understood?

Marcus D. Leech patchvonbraun at gmail.com
Wed Feb 6 12:29:26 EST 2019

On 02/06/2019 12:05 PM, freed.pointer--- via USRP-users wrote:
> [Note: I have already sent this message to the list, but before
> subscribing to it, and it seems that for this reason, the message has
> not been delivered. I am making a second attempt after having
> subscribed. Please accept my apologies in case you received it twice.]
> Hi,
> I am using an Ettus USRP N210 with a LF RX daughterboard [1] to
> *receive* signals.
> After having tuned to a frequency of 1 MHz with this call (which I
> understand corresponds to a full 'automatic policy' for the tuning):
>    uhd::tune_request_t frequency{1.0};
>    uhd::tune_result_t t_res;
>    t_res = usrp->set_rx_freq(freq, chan);
> I display results of the tuning request using 't_res.to_pp_string()'
> and get:
> Tune Result:
>      Target RF  Freq: 1.000000 (MHz)
>      Actual RF  Freq: 0.000000 (MHz)
>      Target DSP Freq: -1.000000 (MHz)
>      Actual DSP Freq: -1.000000 (MHz)
> Now, this section of the documentation [2] stipulates:
> <<
> Note that the meaning of the DSP frequency's sign differs between TX
> and RX operations. The target frequency is the result of target_freq =
> rf_freq + sign * dsp_freq. For TX, sign is negative, and for RX, sign
> is positive.
The LF RX has no local frequency-conversion hardware.  So, frequency 
conversion down to complex-baseband is done entirely in the DSP
   in the FPGA.

If you want to look at a 1MHz signal, the DSP has to bring it *down* by 
1MHz to baseband, so that is indicated by the negative DSP frequency value.

More information about the USRP-users mailing list