Marcus D. Leech  thanks very much. Your description is very useful for me.
But I am not a communication engineer, I am a software developer, Can you
introduce me to a reference book that discusses scaling in radio hardware?
But, with your description, I think I should follow your method...
simple Python program to re-scale it. of course in helping a communication
engineer.



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

> 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