On 2022-07-09 12:01, sp wrote:

    I assume this already does ceil or floor, so your data needs to be
    already in the right scale:)

But all of my problems are related to scaling...
 want to use the converted class in USRP that can solve my scaling problem and I am sure that my data is converted correctly.. So I want to use only the converter class not the c function on volk functions...

If the file was recorded from a HackRF using GNu Radio, then it is already scaled appropriately.

If not, then figure out what the largest sample amplitude is and re-scale your file as appropriate.

If you have a real-time, floating-point, sample-stream where the range of the data-set is unknown in advance, then you have a serious problem
  that cannot be solved with converters.

The reality is that the various SDR device drivers out there, particularly in the context of Gnu Radio, will convert sample-sterams into complex-floats
  in the appropriate {-1.0,+1.0} range appropriately.

Any converter you write for UHD will *necessarily* need to take a scaling parameter, and you have no way of knowing that in advance for a real-time   sample stream from "weird" hardware.    For a pre-recorded file, you have to evaluate the *entire* file anyway to determine what the scaling factor should   be, and you might as well, having evaluated the entire file, also do the conversion on the file at the same time.  Again, this isn't SDR or DSP or GnuRadio,   or UHD specifically, it's just a data-scaling exercise that you might find yourself in whenever dealing with *ANY* numerically-based discipline.

Since it's a file, the conversion doesn't have to go in real-time, and you could even use a simple Python program to re-scale it.



On Sat, Jul 9, 2022 at 8:01 PM Marcus D. Leech <patchvonbr...@gmail.com> wrote:

    On 2022-07-09 11:02, Nikos Balkanas wrote:
    > Correction> These functions work on integers.
    >
    > So they go as:
    > int16 data = htobe16(le32toh(int32 data))
    > Or the associate functions,
    > htonl, htons
    >
    > So you need to already have converted your floats to ints...
    > If in doubt, test them first on a single data...
    > Sorry about the confusion.
    >
    > Nikos
    >
    >
    My question would be--why?

    UHD and Gnu Radio already do these conversions for you.

    The *single* case where being able to send sample data as big-endian
    SC16 without any intervening conversions is from a file. Anything
    that
    involves computation-with-samples
       on the host requires, necessarily, that those samples be in a
    format
    understood by the CPU on the host.

    Further, if there are bottlenecks, I would want to absolutely confirm
    that the major bottleneck in the UHD driver is in doing conversion to
    big-endian wire format before
       venturing down the road of making that available "directly".     I
    have lost track of this thread, but my recollection is that this file
    originates in a capture from a HackRF
       whose absolute-maximum sample-rate is 20e6SPS.   That's a rate
    that
    is *easily* handled by the existing UHD "stack" without resorting to
    this type of optimization, IMHO.

    _______________________________________________
    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