Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHi Marcus,
On 04/19/2020 09:26 PM, Lukas Haase via USRP-users wrote:
Hi,
https://kb.ettus.com/UBX#Noise_Figure lists 2-3dB noise figure, UBX_Data_Sheet.pdf 2-4dB for UBX-160 (at 915 MHz).
I connect a 50 Ohm load to RX and create a simple gnuradio application with USRP Source that calculates the RMS value of the sampled data (and plots the noise in time domain).
samp_rate = 5 MHz.
RX Gain = 0 dB.
The value is 0.000113 RMS.
The time domain waveforms look a bit like quantization noise.
I repeat the experiment, this time with RX Gain value set to 37.5dB.
The value is 0.000841 RMS.
According to https://files.ettus.com/performance_data/ubx/UBX-without-UHD-corrections.pdf, NF=2-3dB for 37.5dB gain and ~23dB for 0dB gain. The high gain value coincides with the values from the datasheet above.
Question 1: Is the reason that for 0dB it looks like quantization noise, that the noise is smaller than LSB so I am effecively seeing the ADC noise?
Question 2: Is the ADC quantixation noise the main reason for the difference in NF? (Note: I am familiar with Friis' equation)
Question 3: The noise difference for both cases is 20*log10(0.000841/0.000113)=17.43dB. According to the measurement PDF it should be ca. 23-3=20dB. The difference is ~2-4dB. Is this just measurement uncertainty/part-to-part mismatch or is something wrong with my approach?
Question 4: I repeat the last experiment by setting the "Ch0 Bandwidth [Hz]" to 0 (default), 5e6 and 1e6. I would expect that my rms value decreases by a factor of sqrt(2) for each halfing of bandwidth. However, the value always stays around 0.000841 RMS, regardless of the bandwidth value. Why?
Question 5: According to theory, my captured signal is -174 + NF + 10log10(BW) = -174+3+10log10(5e6)=-104dBm. Is it correct that my 0.000841 corresponds to -104dBm input power? (If not, why not?). Or differently, -104dBm input power corresponds to 20*log10(0.000841 / 1) = -61.5dBFS ?
Thank you,
Lukas
There'll be quantization noise, certainly.
But RF systems with variable gain use variable attenuators, and that
attenuation value is directly added to the noise figure of the stage that
follows it.
Now the magnitude of this effect obviously depends on where that
attenuator is placed in the gain chain. A 40dB attenuator after a 20dB
gain means that the 40dB of hoise is only "washed out" by the 20dB of
the previous stage(s).
Yes, that makes sense.
According to the schematics (UBX160 for 10MHz-1.5 GHz), there is one LNA (MGA-62563), one 6-bit attenuator and another gain (NBB-400). These three can be lumped together having a programmable gain of 0...37.5dB and a certain NF (as a function of gain).
It follows from Friis':
Ftot = 1 + (Flumped - 1) + (Fadc-1)/(Glumped)
I think what is in UBX-without-UHD-corrections.pdf would be Ftot (total measured noise figure).
With 0dB RX gain: Ftot=Flumped+Fadc-1. Now since the noise looks like quantization noise it looks like Ftot~Fadc=23dB. That would make sense (generally ADCs have huge noise figures).
With 37.5dB gain: Ftot = 1 + (Flumped - 1) + (Fadc-1)/(5600) ~ 1 + (Flumped - 1) = Flumped = 2dB. Since the noise looks less like quantization noise it seems that the actual thermal noise is amplified now beyond the ADC quantization noise and I am actually seeing thermal noise (as opposed to the 0dB case). Note that an ADC noise figure includes quantization noise!
My question was if this is correct or if I am missing something (Questions 1-3).
It is entirely normal and conventional to quite noise figures at
different gains settings precisely because of this architectural necessity.
Yes.
Using a purely-analytic and numerical approach to determining the
magnitude of an input signal, given and intervening chain of
RF bits and pieces, whose noise figure and gain have uncertainties,
is what we call a "state of sin". You MUST calibrate with a known
signal source over your expected run-time parameter space. It's the
only way. It's the way laboratory instruments are routinely calibrated.
Using "datasheet analysis" which is basically what you're doing
above, leads to results that cannot be trusted to any degree of certainty.
Unfortunately I do not have a signal generator at hand or anything with which I could create a known input signal.
But that again was not really my question. If number are off by a few dB because of uncertainty/part-to-part mismatch (as I wrote) that's OK.
My question is if my approach/understanding is right.
In particular I do not understand Question 4 (why does noise not reduce if I reduce bandwidth).
Furthermore, I'd be interested if Question 5 is conceptually correct.
Lukas
On 04/20/2020 12:33 PM, Lukas Haase wrote:
Hi Marcus,
On 04/19/2020 09:26 PM, Lukas Haase via USRP-users wrote:
Hi,
https://kb.ettus.com/UBX#Noise_Figure lists 2-3dB noise figure, UBX_Data_Sheet.pdf 2-4dB for UBX-160 (at 915 MHz).
I connect a 50 Ohm load to RX and create a simple gnuradio application with USRP Source that calculates the RMS value of the sampled data (and plots the noise in time domain).
samp_rate = 5 MHz.
RX Gain = 0 dB.
The value is 0.000113 RMS.
The time domain waveforms look a bit like quantization noise.
I repeat the experiment, this time with RX Gain value set to 37.5dB.
The value is 0.000841 RMS.
According to https://files.ettus.com/performance_data/ubx/UBX-without-UHD-corrections.pdf, NF=2-3dB for 37.5dB gain and ~23dB for 0dB gain. The high gain value coincides with the values from the datasheet above.
Question 1: Is the reason that for 0dB it looks like quantization noise, that the noise is smaller than LSB so I am effecively seeing the ADC noise?
Question 2: Is the ADC quantixation noise the main reason for the difference in NF? (Note: I am familiar with Friis' equation)
Question 3: The noise difference for both cases is 20*log10(0.000841/0.000113)=17.43dB. According to the measurement PDF it should be ca. 23-3=20dB. The difference is ~2-4dB. Is this just measurement uncertainty/part-to-part mismatch or is something wrong with my approach?
Question 4: I repeat the last experiment by setting the "Ch0 Bandwidth [Hz]" to 0 (default), 5e6 and 1e6. I would expect that my rms value decreases by a factor of sqrt(2) for each halfing of bandwidth. However, the value always stays around 0.000841 RMS, regardless of the bandwidth value. Why?
Question 5: According to theory, my captured signal is -174 + NF + 10log10(BW) = -174+3+10log10(5e6)=-104dBm. Is it correct that my 0.000841 corresponds to -104dBm input power? (If not, why not?). Or differently, -104dBm input power corresponds to 20*log10(0.000841 / 1) = -61.5dBFS ?
Thank you,
Lukas
There'll be quantization noise, certainly.
But RF systems with variable gain use variable attenuators, and that
attenuation value is directly added to the noise figure of the stage that
follows it.
Now the magnitude of this effect obviously depends on where that
attenuator is placed in the gain chain. A 40dB attenuator after a 20dB
gain means that the 40dB of hoise is only "washed out" by the 20dB of
the previous stage(s).
Yes, that makes sense.
According to the schematics (UBX160 for 10MHz-1.5 GHz), there is one LNA (MGA-62563), one 6-bit attenuator and another gain (NBB-400). These three can be lumped together having a programmable gain of 0...37.5dB and a certain NF (as a function of gain).
It follows from Friis':
Ftot = 1 + (Flumped - 1) + (Fadc-1)/(Glumped)
I think what is in UBX-without-UHD-corrections.pdf would be Ftot (total measured noise figure).
With 0dB RX gain: Ftot=Flumped+Fadc-1. Now since the noise looks like quantization noise it looks like Ftot~Fadc=23dB. That would make sense (generally ADCs have huge noise figures).
With 37.5dB gain: Ftot = 1 + (Flumped - 1) + (Fadc-1)/(5600) ~ 1 + (Flumped - 1) = Flumped = 2dB. Since the noise looks less like quantization noise it seems that the actual thermal noise is amplified now beyond the ADC quantization noise and I am actually seeing thermal noise (as opposed to the 0dB case). Note that an ADC noise figure includes quantization noise!
My question was if this is correct or if I am missing something (Questions 1-3).
It is entirely normal and conventional to quite noise figures at
different gains settings precisely because of this architectural necessity.
Yes.
Using a purely-analytic and numerical approach to determining the
magnitude of an input signal, given and intervening chain of
RF bits and pieces, whose noise figure and gain have uncertainties,
is what we call a "state of sin". You MUST calibrate with a known
signal source over your expected run-time parameter space. It's the
only way. It's the way laboratory instruments are routinely calibrated.
Using "datasheet analysis" which is basically what you're doing
above, leads to results that cannot be trusted to any degree of certainty.
Unfortunately I do not have a signal generator at hand or anything with which I could create a known input signal.
But that again was not really my question. If number are off by a few dB because of uncertainty/part-to-part mismatch (as I wrote) that's OK.
It is precisely because of accumulated uncertainty that a "datasheet RF
chain analysis" for deriving precision estimates is doomed to failure.
A well-matched resistor at ambient produces -174dBm/Hz at 25C. At
higher gain settings, you should be able to see changes in the
temperature of the resistor based on this.
My question is if my approach/understanding is right.
In particular I do not understand Question 4 (why does noise not reduce if I reduce bandwidth).
If you're varying analog bandwidth, rather than sampling rate, be
aware that UBX doesn't have variable analog bandwidth. It's always fixed.
Furthermore, I'd be interested if Question 5 is conceptually correct.
Conceptually, I don't see any problem with it, but it very-squarely
enters "consider a spherical cow" territory. You CANNOT use a purely
arithmetic analysis, due to uncertainties. I would, in fact,
encourage you to acquire a decent broad-band, calibrated, noise source for
you lab so that you can do Y-factor analysis, if for no other reason
than to satisfy yourself that the noise equations work.
Lukas
On 04/20/2020 12:33 PM, Lukas Haase wrote:
[Stuff that cries out for a calibrated noise source]
I've used these on a budget-sensitive project just last year:
https://g8fek.com/precision-noise-sources.html
Not perhaps as "chic" as Agilent and the like, but they get the job done
and include a calibration chart.
Hi Marcus,
Von: "Marcus D. Leech" patchvonbraun@gmail.com
[...]
My question is if my approach/understanding is right.
In particular I do not understand Question 4 (why does noise not reduce if I reduce bandwidth).
If you're varying analog bandwidth, rather than sampling rate, be
aware that UBX doesn't have variable analog bandwidth. It's always fixed.
I see.
Great point.
I just found: http://ettus.80997.x6.nabble.com/USRP-users-Which-bandwidth-does-uhd-usrp-multi-usrp-set-rx-bandwidth-set-td11897.html
And it seems set_tx_bandwidth() and set_rx_bandwidth() do nothing then on the UBX.
I wrote before my noise level should be -174+NF+10*log10(5e6).
But based on this, it should be more correctly -174+NF+10*log10(160e6) ... is that correct? (I just receive the raw samples from the USRP via USRP Source. There is no other digital filter?)
Furthermore, I'd be interested if Question 5 is conceptually correct.
Conceptually, I don't see any problem with it, but it very-squarely
enters "consider a spherical cow" territory. You CANNOT use a purely
arithmetic analysis, due to uncertainties. I would, in fact,
encourage you to acquire a decent broad-band, calibrated, noise source for
you lab so that you can do Y-factor analysis, if for no other reason
than to satisfy yourself that the noise equations work.
The issue with the bandwidth calculation above would be one of them ;-)
I've used these on a budget-sensitive project just last year:
https://g8fek.com/precision-noise-sources.html
Thanks for the pointer. I think I'll get one of these.
For a proper use I would need a steep filter though, correct? (in order to have a well defined total input power Pin=-174+ENR+10*log10(FilterCuroff) dBm? )
Thanks,
Lukas
I don't quite understand why it is important if it is "analog" bandwidth.
While I understand that the UBX cannot change its analog bandwidth, it
seems to me that digital bandwidth that is inherent in downconversion from
200 MS/s to 5MS/s is still going reduce the noise power by the ratio of the
original bandwidth (160 MHz) to the new bandwidth (say, 4.5 MHz).
Rob
On Tue, Apr 21, 2020 at 12:24 AM Lukas Haase via USRP-users <
usrp-users@lists.ettus.com> wrote:
Hi Marcus,
Von: "Marcus D. Leech" patchvonbraun@gmail.com
[...]
My question is if my approach/understanding is right.
In particular I do not understand Question 4 (why does noise not
reduce if I reduce bandwidth).
If you're varying analog bandwidth, rather than sampling rate, be
aware that UBX doesn't have variable analog bandwidth. It's always
fixed.
I see.
Great point.
I just found:
http://ettus.80997.x6.nabble.com/USRP-users-Which-bandwidth-does-uhd-usrp-multi-usrp-set-rx-bandwidth-set-td11897.html
And it seems set_tx_bandwidth() and set_rx_bandwidth() do nothing then on
the UBX.
I wrote before my noise level should be -174+NF+10*log10(5e6).
But based on this, it should be more correctly -174+NF+10*log10(160e6) ...
is that correct? (I just receive the raw samples from the USRP via USRP
Source. There is no other digital filter?)
Furthermore, I'd be interested if Question 5 is conceptually correct.
Conceptually, I don't see any problem with it, but it very-squarely
enters "consider a spherical cow" territory. You CANNOT use a purely
arithmetic analysis, due to uncertainties. I would, in fact,
encourage you to acquire a decent broad-band, calibrated, noise source
for
you lab so that you can do Y-factor analysis, if for no other reason
than to satisfy yourself that the noise equations work.
The issue with the bandwidth calculation above would be one of them ;-)
I've used these on a budget-sensitive project just last year:
https://g8fek.com/precision-noise-sources.html
Thanks for the pointer. I think I'll get one of these.
For a proper use I would need a steep filter though, correct? (in order to
have a well defined total input power Pin=-174+ENR+10*log10(FilterCuroff)
dBm? )
Thanks,
Lukas
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Hi Rob,
Yes, you are right. The downconversion must include the anti aliasing filter which bandlimits the signal to ~4.5 MHz.
Best,
Lukas
Gesendet: Dienstag, 21. April 2020 um 09:28 Uhr
Von: "Rob Kossler" rkossler@nd.edu
An: "Lukas Haase" lukashaase@gmx.at
Cc: "Marcus D. Leech" patchvonbraun@gmail.com, "usrp-users" usrp-users@lists.ettus.com
Betreff: Re: [USRP-users] Questions about UBX-160 Noise Figure
I don't quite understand why it is important if it is "analog" bandwidth. While I understand that the UBX cannot change its analog bandwidth, it seems to me that digital bandwidth that is inherent in downconversion from 200 MS/s to 5MS/s is still going reduce the noise power by the ratio of the original bandwidth (160 MHz) to the new bandwidth (say, 4.5 MHz).
Rob
On Tue, Apr 21, 2020 at 12:24 AM Lukas Haase via USRP-users <usrp-users@lists.ettus.com[mailto:usrp-users@lists.ettus.com]> wrote:Hi Marcus,
Von: "Marcus D. Leech" <patchvonbraun@gmail.com[mailto:patchvonbraun@gmail.com]>
[...]
My question is if my approach/understanding is right.
In particular I do not understand Question 4 (why does noise not reduce if I reduce bandwidth).
If you're varying analog bandwidth, rather than sampling rate, be
aware that UBX doesn't have variable analog bandwidth. It's always fixed.
I see.
Great point.
I just found: http://ettus.80997.x6.nabble.com/USRP-users-Which-bandwidth-does-uhd-usrp-multi-usrp-set-rx-bandwidth-set-td11897.html[http://ettus.80997.x6.nabble.com/USRP-users-Which-bandwidth-does-uhd-usrp-multi-usrp-set-rx-bandwidth-set-td11897.html]
And it seems set_tx_bandwidth() and set_rx_bandwidth() do nothing then on the UBX.
I wrote before my noise level should be -174+NF+10*log10(5e6).
But based on this, it should be more correctly -174+NF+10*log10(160e6) ... is that correct? (I just receive the raw samples from the USRP via USRP Source. There is no other digital filter?)
Furthermore, I'd be interested if Question 5 is conceptually correct.
Conceptually, I don't see any problem with it, but it very-squarely
enters "consider a spherical cow" territory. You CANNOT use a purely
arithmetic analysis, due to uncertainties. I would, in fact,
encourage you to acquire a decent broad-band, calibrated, noise source for
you lab so that you can do Y-factor analysis, if for no other reason
than to satisfy yourself that the noise equations work.
The issue with the bandwidth calculation above would be one of them ;-)
I've used these on a budget-sensitive project just last year:
https://g8fek.com/precision-noise-sources.html[https://g8fek.com/precision-noise-sources.html]
Thanks for the pointer. I think I'll get one of these.
For a proper use I would need a steep filter though, correct? (in order to have a well defined total input power Pin=-174+ENR+10*log10(FilterCuroff) dBm? )
Thanks,
Lukas
USRP-users mailing list
USRP-users@lists.ettus.com[mailto:USRP-users@lists.ettus.com]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
On 04/21/2020 09:28 AM, Rob Kossler wrote:
I don't quite understand why it is important if it is "analog"
bandwidth. While I understand that the UBX cannot change its analog
bandwidth, it seems to me that digital bandwidth that is inherent in
downconversion from 200 MS/s to 5MS/s is still going reduce the noise
power by the ratio of the original bandwidth (160 MHz) to the new
bandwidth (say, 4.5 MHz).
Rob
Lukas was varying the "Bandwidth" setting in the UHD USRP source block,
which is used to control the analog bandwidth for RX
cards that support it. The UBX series does not.
So, no amount of changing that parameter (for a fixed sample rate) is
going to produce any change in detected power level. The
same can NOT be said when changing the sample rate delivered to the host.
On Tue, Apr 21, 2020 at 12:24 AM Lukas Haase via USRP-users
<usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com> wrote:
Hi Marcus,
Von: "Marcus D. Leech" <patchvonbraun@gmail.com
<mailto:patchvonbraun@gmail.com>>
[...]
My question is if my approach/understanding is right.
In particular I do not understand Question 4 (why does noise
not reduce if I reduce bandwidth).
If you're varying analog bandwidth, rather than sampling rate, be
aware that UBX doesn't have variable analog bandwidth. It's
always fixed.
I see.
Great point.
I just found:
http://ettus.80997.x6.nabble.com/USRP-users-Which-bandwidth-does-uhd-usrp-multi-usrp-set-rx-bandwidth-set-td11897.html
And it seems set_tx_bandwidth() and set_rx_bandwidth() do nothing
then on the UBX.
I wrote before my noise level should be -174+NF+10*log10(5e6).
But based on this, it should be more correctly
-174+NF+10*log10(160e6) ... is that correct? (I just receive the
raw samples from the USRP via USRP Source. There is no other
digital filter?)
Furthermore, I'd be interested if Question 5 is conceptually
correct.
Conceptually, I don't see any problem with it, but it very-squarely
enters "consider a spherical cow" territory. You CANNOT use a
purely
arithmetic analysis, due to uncertainties. I would, in fact,
encourage you to acquire a decent broad-band, calibrated, noise
source for
you lab so that you can do Y-factor analysis, if for no other
reason
than to satisfy yourself that the noise equations work.
The issue with the bandwidth calculation above would be one of
them ;-)
I've used these on a budget-sensitive project just last year:
https://g8fek.com/precision-noise-sources.html
Thanks for the pointer. I think I'll get one of these.
For a proper use I would need a steep filter though, correct? (in
order to have a well defined total input power
Pin=-174+ENR+10*log10(FilterCuroff) dBm? )
Thanks,
Lukas
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com <mailto:USRP-users@lists.ettus.com>
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
On 04/21/2020 12:23 AM, Lukas Haase wrote:
I wrote before my noise level should be -174+NF+10log10(5e6). But
based on this, it should be more correctly -174+NF+10log10(160e6) ...
is that correct? (I just receive the raw samples from the USRP via
USRP Source. There is no other digital filter?)
Down-sampling inherently implies steep filtering at the band edges,
using digital filtering mechanisms inside the X310. The ADC operates at
a fixed sampling rate (200Msps in the case of X310 by default), which
samples a carefully-sculpted-by-analog-filters bandwidth from the UBX.
Your final sample rate to the host is delivered through a DDC, which
has one or more filter stages. The end result is that typical out-of-band
products in the final sample stream to the host are suppressed by
80dB or better.
Furthermore, I'd be interested if Question 5 is conceptually correct.
Conceptually, I don't see any problem with it, but it very-squarely
enters "consider a spherical cow" territory. You CANNOT use a purely
arithmetic analysis, due to uncertainties. I would, in fact,
encourage you to acquire a decent broad-band, calibrated, noise source for
you lab so that you can do Y-factor analysis, if for no other reason
than to satisfy yourself that the noise equations work.
The issue with the bandwidth calculation above would be one of them ;-)
I've used these on a budget-sensitive project just last year:
https://g8fek.com/precision-noise-sources.html
Thanks for the pointer. I think I'll get one of these.
For a proper use I would need a steep filter though, correct? (in order to have a well defined total input power Pin=-174+ENR+10*log10(FilterCuroff) dBm? )
The combination of analog and digital filtering implied by an SDR
architecture (whether USRP or anything else) implies typically very steep
filtering at the band edges, giving very-good out-of-band
suppression. When you ask for 5Msps from the USRP, you're getting 5MHz of
bandwidth, with very good suppression of out-of-band products.
Thanks,
Lukas