On 2025-05-23 09:49, Rob Kossler wrote:
Hi Nikos,
Your RF card has 120 MHz bandwidth.  The strong tone you see will always be at the center.  But, if your application can tolerate using an instantaneous bandwidth < 60 MHz, you can use offset tuning as Marcus mentioned.  To do this you simply need to create a tune request with your desired RF frequency and then specify an LO offset frequency of 30 MHz. This is all that is needed (again assuming that your bandwidth of interest is < 60 MHz). This link <https://dsp.stackexchange.com/questions/30562/large-spike-at-the-center-frequency-when-using-ettus-x310> discusses the topic.

Also, if you want to reduce the DC offset, there are calibrations for the X310 - one of which will mitigate this signal.
Rob
Just a note that AFAIR, the *RX* DC-offset correction is something that doesn't require input from the calibration routines--it runs all the time (if its turned on).

But phase/amplitude *balance* does require that you run the appropriate CAL utilities:

https://files.ettus.com/manual/page_calibration.html



On Fri, May 23, 2025 at 8:11 AM Nikos Balkanas <nbalka...@gmail.com> wrote:

    I have implemented the following calls for uhd_usrp_set_rx_lo_freq:

    uhd_string_vector_handle  names;
    uhd_string_vector_make(&names);
    if ((err = uhd_usrp_get_rx_lo_names(dev[channel], channel, &names)))
           warn(log, "Failed to get lo names (%d). %s.\n", 0, FL, LN,
    FN, err, uhdError(err));
    if ((err = uhd_string_vector_size(names, &len)))
         warn(log, "Failed to get lo names size (%d).
    %s.\n",0,FL,LN,FN,err, uhdError(err));
    if (!len)
    {
          error(log, "No lo names found on channel %d.\n", 0, FL, LN,
    FN, channel);
           uhd_string_vector_free(&names);
            return(FAIL);
    }
    uhd_string_vector_free(&names);

    The problem is that names always returns 0. This is not right for
    my SBX-120, or any
    daughterboard with  a tuner:( This is what i can get from the API.
    There are no LO examples.
    I have seen lo_enable() in c++, but nothing exported to C. What am
    I missing?

    TIA
    Nikos

    On Fri, May 23, 2025 at 8:12 AM Nikos Balkanas
    <nbalka...@gmail.com> wrote:

        Thx Marcus,

        For your fast and informative answers. Sorry it took me a
        while to reply,
        but I'm still trying to get:
        tune_request(freq, lo_off)
        to work in C.
        My X310 has 2 SBX-120 boards. Using uhd 4.6.0 in Ubuntu 24.04.
        True about the tuner. Much cheaper and easier to implement it
        in analog.
        I am using your FPGA image. Haven't touched it myself, yet.
        So, the spike is pretty narrow to interfere with my signals,
        but still messes my power calculations:(
        I already implemented the integer frequency tuner and working
        on the low oscillator offset.
        If you have any pointers about it, feel free to advise.
        LO is not part of the request_tuner_t struct. It is set
        independently.
        Is this the same LO in uhd_usrp_set_rx_lo_freq?
        If this is the case I can modify it externally:)

        BR
        Nikos

        On Fri, May 23, 2025 at 4:40 AM Marcus D. Leech
        <patchvonbr...@gmail.com> wrote:

            On 2025-05-22 21:31, Nikos Balkanas wrote:
            The spike is very clean to come from outside.
            Must be from my X310. My tuner must be adding a signal to the
            center frequency. The small artifact at 2 Ghz is probably
            the tuner not
            equilibrating fully.
            I recently updated my FPGA image. Is that where the tuner
            lives?
            You haven't mentioned in this thread which daughtercard
            you're using.   RF front-ends that use complex-baseband
              downconversion suffer from something called "DC-offset",
            which produces a spike at 0Hz in the complex spectrum.
              The radio block in the standard FPGAs has methods for
            reducing this, unless you turn it off.  This is a very very
              *normal* thing for complex-baseband receiver chains.

            If the algorithms are engaged and working, then there'll
            still be a central spike, but *considerably* reduced, and
            I find that
              said spike is usually swamped by external signals, even
            in radio astronomy.

            The other method that people use is to use "offset
            tuning".  Where the tuner is tuned to a different RF
            frequency, and the
               DDC brings your signal of interest down to 0Hz.

            https://files.ettus.com/manual/page_general.html#general_tuning

            The "tuner" is an analog collection of components,
            including an LO generator, and mixers.  While it is
            *controlled* through
              the FPGA, it is an analog subsystem.



            On Fri, May 23, 2025 at 3:19 AM Nikos Balkanas
            <nbalka...@gmail.com> wrote:

                Hello,

                Whenever I look at my spectrum I always see an energy
                spike at the center frequency.
                In the first image you can see a spike at 2, but not
                at 2.001 Ghz. In the next image,
                 at 2.001 Ghz you can see the energy spike at the
                center frequency, but also a small
                 spike at 2 Ghz.
                I have verified these results by both fosphor (OpenCL
                fft) and fftw3f. Besides, if it were
                 an fft artifact, why is the spike at 2 Ghz still
                visible after a few mins? These spikes
                 seem to be transient, but real. In that part of the
                spectrum, you there is no traffic. Could it be 
                harmonics from my power supply? Problems with my
                X-310? My transmitter
                 doing funny things (I have 2 boards and not enabling
                my transmitter anywhere)?
                Naming of images is freq_sr.jpg. All are in Mhz.

                TIA
                Nikos


            _______________________________________________
            USRP-users mailing list --usrp-users@lists.ettus.com
            To unsubscribe send an email tousrp-users-le...@lists.ettus.com

            _______________________________________________
            USRP-users mailing list -- usrp-users@lists.ettus.com
            To unsubscribe send an email to
            usrp-users-le...@lists.ettus.com

    _______________________________________________
    USRP-users mailing list -- usrp-users@lists.ettus.com
    To unsubscribe send an email to usrp-users-le...@lists.ettus.com

_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to