Thanks a lot Marcus

Dor

בתאריך יום ד׳, 5 ביולי 2023, 7:33 אחה״צ, מאת Marcus D. Leech ‏<
patchvonbr...@gmail.com>:

> On 05/07/2023 01:18, Dor Ratz wrote:
>
> Hey Marcus
>
> In my case I want to calibrate usrp with gnuradio as spectrum analyzer for
> the received signals.
>
> By measuring the correction factor between power(dBFS) in GRC to
> power(dBm) in a laboratory spectrum analyzer of the received signal.
>
> I used signal generator and in addition I've used my unique transmitting
> DUT.
>
>  Do you think a noise source can be useful for my purpose?
>
> Thanks a lot
>
> Dor
>
> I guess if your spectrum analyser is calibrated, then a calibrated noise
> source is redundant.
>
>
> בתאריך יום ב׳, 3 ביולי 2023, 8:20 אחה״צ, מאת Marcus D. Leech ‏<
> patchvonbr...@gmail.com>:
>
>> On 03/07/2023 12:24, Dor Ratz wrote:
>>
>> How are you Marcus?
>>
>> First, thanks a lot.
>>
>> I've done measurements for a specific Gain, frequency, temperature.
>> I've transmitted from a signal generator CW signal -> power splitter 1:2
>> to( spectrum analyzer and the USRP X310).
>> I first transmitted a CW, and then I transmitted another my system unique
>> signal.
>>
>> Can you please elaborate why you have suggested to use noise source? I'm
>> familiar with using it for Noise Figure measurements of DUT by using Y
>> Factor method, but I want to calibrate the power of signal between
>> Power[dBFS] in GRC to Power[dBm] presented in spectrum analyzer.
>>
>> Because a noise source is often better-calibrated than a narrowband
>> signal generator, and it kind of depends on what level
>>   of spectral detail you want calibrated.   If you want calibration steps
>> every few kHz, then a siggen may be a better fit.
>>
>>
>> I used RMS for [linear voltage] and after that 20*log(linear voltage) to
>> get Power[dBFS].
>> I understand that in the GNURadio flow graph everything is float-point
>> values in the range {-1.0,+1.0} and so I calculated power[dBFS] according
>> to 20*log10(1)=0[dBFS]
>>
>> I think the calibration was OK and I've found the correction factor
>> between Power[dBFS] in GNURadio to the Power[dBm] received in RX ANT
>> connector as was displayed in the spectrum analyzer at the same time by
>> using power splitter.
>>
>> As for saving complex\short to File Sink I'll update.
>>
>> Thanks
>> Dor
>>
>> [image: image.png]
>>
>> ‫בתאריך יום ד׳, 28 ביוני 2023 ב-23:43 מאת ‪Marcus D. Leech‬‏ <‪
>> patchvonbr...@gmail.com‬‏>:‬
>>
>>> On 28/06/2023 16:35, Dor Ratz wrote:
>>>
>>> Hey Marcus,
>>>
>>> Thanks.
>>>
>>> Let me see if I get it right.
>>>
>>> Please see the attached gnuradio setup below .
>>>
>>> 1. Does the USRP pass with Wire Format=Automatic the int16 samples to
>>> the host computer? The ADC of X310 is 14 bits represented by 16 bits
>>> samples, so the maximal possible value in time domain for a strong
>>> enough signal is 2^(14-1)= (+-8192 ) ?
>>>
>>> NO!  I've already said, the samples from the ADC are *scaled* before
>>> they hit the wire, into the wire format, which in this case
>>>   is sc16.    Further, the samples that "hit the wire" are *after* any
>>> manipulations by the DDC.  The values on the wire
>>>   can go from +/- 32767, although they rarely actually do.
>>>
>>>
>>> 2. So if I open the file sink (which was saved as short = int16) with
>>> python as int16 and look in python in the time domain:
>>>
>>>    - In the time domain the maximal possible value is still (+-8192 ) ?
>>>
>>> Once the samples hit the GR flow-graph they are typically in
>>> {-1.0,+1.0}, and then you can specify scaling coefficients when
>>>   you save them as complex int16.
>>>
>>>
>>>    - In FFT, can I  calculate Power[dBFS] according to
>>>    20*log10(8192)=0[dBFS]?
>>>
>>> I strongly suspect that you're trying to do power estimation based on an
>>> empirical model, rather than by actual measurement
>>>   with actual calibration equipment present.    I have already said this
>>> is a bad approach, as have many others on this list.
>>>
>>>
>>>
>>> 3. If I want to open samples in QT GUI Sink as in the setup below, then
>>> can I do it as below with IShort to Complex block with scale factor = 8192,
>>> and then in the time domain in QT GUI Sink I will see :
>>>
>>>    - In time domain - a float value with maximal possible value of
>>>    (-+1) ? because it was normalized by 8192.
>>>    -  In FFT , can I  calculate Power[dBFS] according to
>>>    20*log10(1)=0[dBFS]?
>>>
>>>
>>> Thanks you,
>>>
>>> Dor
>>>
>>>
>>> [image: image.png]hugh
>>>
>>> [image: image.png]
>>>
>>>
>>> [image: image.png]
>>>
>>>
>>> [image: image.png]
>>>
>>>
>>> ‫בתאריך יום ב׳, 26 ביוני 2023 ב-21:46 מאת ‪Marcus D. Leech‬‏ <‪
>>> patchvonbr...@gmail.com‬‏>:‬
>>>
>>>> On 26/06/2023 14:43, Dor Ratz wrote:
>>>>
>>>> Thanks Marcus.
>>>>
>>>> If so, then I can calibrate USRP -> GNURadio by writing down the :
>>>>
>>>> - Power of the signal in FFT in [dB] -> convert to [dBm] by comparing
>>>> power when connected to a spectrum analyzer and changing Gain, frequency
>>>> and so on and comparing both [dB] in FFT on GNURadio and power[dBm] in
>>>> laboratory spectrum analyzer.
>>>> - Power of signal  [dBFS] by calculating from the time domain on QT GUI
>>>> Sink as we said.
>>>>
>>>> If I save the samples as int16 to File Sink, then when I open it with
>>>> Python I should still see float values {-1,+1} and calculate power[dBFS]
>>>> according to 20*log10(1)=0[dBFS]? Correct me if I'm wrong.
>>>>
>>>> Int16 conversion in GR will use a conversion constant.  Something like
>>>> +/- 32767
>>>>
>>>>
>>>> Am I missing something?
>>>>
>>>> Thanks
>>>> Dor
>>>>
>>>>
>>>>
>>>> ‫בתאריך יום ב׳, 26 ביוני 2023 ב-21:02 מאת ‪Marcus D. Leech‬‏ <‪
>>>> patchvonbr...@gmail.com‬‏>:‬
>>>>
>>>>> On 26/06/2023 13:58, Dor Ratz wrote:
>>>>>
>>>>> Hey Steve and Marcus,
>>>>>
>>>>> Thanks a lot.
>>>>>
>>>>> I'll try to do it.
>>>>>
>>>>> *Questions regarding dBFS, if you maybe have a clue *
>>>>>
>>>>>
>>>>>    1. Does the GNURadio amplitude axis in QT GUI TIME DOMAIN are
>>>>>    always float-point values in the range {-1.0,+1.0} for a received 
>>>>> signal
>>>>>    from USRP Source block?
>>>>>
>>>>> There's a STRONG convention in Gnu Radio that signals are always in
>>>>> the range {-1.0,+1.0}, and drivers for SDR devices
>>>>>   are generally designed to comply with this.
>>>>>
>>>>>
>>>>>    1. If the answer to 1 is yes, then if I see amplitude = 0.5 , does
>>>>>    it mean 20*log10(0.5)=(-6dBFS) ? is that correct?
>>>>>
>>>>> Yes.
>>>>>
>>>>> I've assumed it because:
>>>>>
>>>>> The ADC of X310 has 14 bits. so the MSB values are 2^(14-1)=2^13 = + -
>>>>> 8192 (signed values).
>>>>>
>>>>> Power[dBFS] = 20*log10(voltage_value_measured/8192)
>>>>>
>>>>> The problem is that Output Type and Wire Format in USRP Source block
>>>>> are complex int16, so I'm not sure if the samples that are streaming from
>>>>> USRP into the host computer are 14 bits represented by 16 bits. And if 
>>>>> yes,
>>>>> so do I need to change the above calculation?
>>>>>
>>>>>
>>>>> ADC values are scaled into the wire-format.  But IN ADDITION, "raw"
>>>>> ADC values will almost never actually be seen in the
>>>>>   signal flow once it gets to Gnu Radio, because they've been filtered
>>>>> by the DDC mechanism in the radio--this is true not
>>>>>   just of USRPs, but most SDRs that have a bit of DSP between the ADC
>>>>> and the host interface.
>>>>>
>>>>>
>>>>> Thanks
>>>>> Dor
>>>>>
>>>>>
>>>>> ‫בתאריך יום א׳, 25 ביוני 2023 ב-4:11 מאת ‪Steve Hubbard‬‏ <‪
>>>>> stevezsuz...@iinet.net.au‬‏>:‬
>>>>>
>>>>>> Hi Dor,
>>>>>>
>>>>>> I don't follow all your email but in general you can add the powers
>>>>>> (magnitudes squared) of the FFT bins to give you the equivalent of power 
>>>>>> in
>>>>>> the time domain (Parceval's theorem). Strictly speaking I recall there 
>>>>>> is a
>>>>>> slight tweak to the DC bin value but I don't remember the detail. It goes
>>>>>> without saying that baseband signals and FFT bin values are complex (IQ).
>>>>>>
>>>>>> Keep in mind that when you feed a single frequency into an FFT, it
>>>>>> may fall between 2 bins. In this case the peak will be lowered 
>>>>>> (scalloping
>>>>>> loss). You might want to consider the use of a suitable window to
>>>>>> compensate for this. The window will lower the total power, which you 
>>>>>> also
>>>>>> need to allow for.
>>>>>>
>>>>>> I think -15 dBm is the point beyond which saturation, distortion or
>>>>>> worse might occur. The point at which you reach full scale on the ADC 
>>>>>> will
>>>>>> depend on the front end gain setting. I don't know what this might be for
>>>>>> your set up. At some gain settings compression might occur in the 
>>>>>> analogue
>>>>>> front end before you reach full scale. Gain will also be frequency and
>>>>>> temperature dependent to some degree. The UBX-160 datasheet lacks detail.
>>>>>>
>>>>>> I have experience calibrating the X310 but with a different front
>>>>>> end, using GNU radio to capture the baseband signal but Matlab to process
>>>>>> it.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Steve
>>>>>> On 24/6/23 21:45, Dor Ratz wrote:
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I wish to use USRPX310 with UBX-160 daughterboard as a calibrated
>>>>>> spectrum analyzer to show the received signal power in units of [dBm] and
>>>>>> [dBFS] for my setup.
>>>>>>
>>>>>> I've read discussion
>>>>>> <https://lists.gnu.org/archive/html/discuss-gnuradio/2017-06/msg00214.html>
>>>>>>  and
>>>>>> the GNURadio FAQ <https://wiki.gnuradio.org/index.php/FAQ> before so
>>>>>> I know I must calibrate my setup because the values in GNURadio don't 
>>>>>> mean
>>>>>> a thing.
>>>>>>
>>>>>> So I wanted to ask if this procedure seems to make sense for you. I
>>>>>> will  be glad to receive any suggestions.
>>>>>>
>>>>>>
>>>>>> I'm gonna connect my signal generator to spectrum analyzer to measure
>>>>>> the cable loss.
>>>>>> After that, gonna connect it to the USRP to measure the power[dB] in
>>>>>> order to understand what is the power[dBm] in GNURadio.
>>>>>> [image: image.png]
>>>>>> Is this table correct to calibrate and calculate the Power[dBm] on
>>>>>> GNURadio in FFT?
>>>>>>
>>>>>> Signal generator Power[dBm] Power [dBm] on spectrum anlayzer Power[dB]
>>>>>> on GNURadio in FFT Power[dBm] on GNURadio in FFT
>>>>>> -60 -61 -66 -61
>>>>>> -65 -66 -71 -66
>>>>>> -70 -71 -76 -71
>>>>>> -75 -76 -81 -76
>>>>>> -80 -81 -86 -81
>>>>>> -85 -86 -91 -86
>>>>>> -90 -91 -96 -91
>>>>>>
>>>>>> *Procedure for wideband signal (not CW)*
>>>>>> Right now the power[dB] must be calculated with the occupied FFT
>>>>>> bins, let's assume this is the signal and the NFFT=128, so we can see 
>>>>>> that
>>>>>> the signal occupies only 2/10 grids in the FFT so:
>>>>>>
>>>>>> Power_of_signal[dB] = Peak_power[dB]+ 10*log(FFT_bins_with_signal) =
>>>>>> (-15dB) + 10*log10((2/10)*(128)) = (-15dB) + (14) = (-1dB)
>>>>>>
>>>>>> [image: image.png]
>>>>>>
>>>>>> *Convert to dBFS for the USRP X310*
>>>>>>
>>>>>> How do you propose to do it?
>>>>>>
>>>>>> The ADC of X310 has 14 bits. so the MSB values are 2^13 = + - 8192
>>>>>> (signed values).
>>>>>>
>>>>>> Power[dBFS] = 20*log10(voltage_value_measured/8192)
>>>>>>
>>>>>> *Some questions:*
>>>>>>
>>>>>>
>>>>>>    1. Does the gnuradio amplitude axis in QT GUI TIME DOMAIN are
>>>>>>    always float-point values in the range {-1.0,+1.0} for a received 
>>>>>> signal
>>>>>>    from USRP?
>>>>>>    2. If the answer to 1 is yes, then if I see amplitude = 0.5 ,
>>>>>>    does it mean 20*log10(0.5)=(-6dBFS) ? is that correct?
>>>>>>    3. I know that the maximum input power for the UBX is (-15 dBm),
>>>>>>    but what does it mean that (-15dBm) input power is 0[dBFS]?
>>>>>>    4. Has anyone had experience with RX power calibration
>>>>>>    <https://files.ettus.com/manual/page_power.html> of USRPX310 with
>>>>>>    UBX-160?
>>>>>>    If I understand correctly, it is supporting the power API:
>>>>>>
>>>>>>
>>>>>> [image: image.png]
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Thanks
>>>>>> Dor
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to