.. | ||
CMakeLists.txt | ||
noisefigure.cpp | ||
noisefigure.h | ||
noisefigurebaseband.cpp | ||
noisefigurebaseband.h | ||
noisefigurecontroldialog.cpp | ||
noisefigurecontroldialog.h | ||
noisefigurecontroldialog.ui | ||
noisefigureenrdialog.cpp | ||
noisefigureenrdialog.h | ||
noisefigureenrdialog.ui | ||
noisefiguregui.cpp | ||
noisefiguregui.h | ||
noisefiguregui.ui | ||
noisefigureplugin.cpp | ||
noisefigureplugin.h | ||
noisefiguresettings.cpp | ||
noisefiguresettings.h | ||
noisefiguresink.cpp | ||
noisefiguresink.h | ||
noisefigurewebapiadapter.cpp | ||
noisefigurewebapiadapter.h | ||
readme.md |
Noise Figure plugin
Introduction
This plugin can be used to calculate the noise figure (NF) of a receiver (SDR as well as optionally one or more LNAs). It uses the Y-factor method and requires a calibrated noise source.
The noise figure of a receiver is important, as it determines the noise floor: Noise floor (dBm) = 10log10(1000kT)+NF+10log10(BW)
The noise figure will vary with frequency and gain settings. Typically, the noise figure will increase with frequency and decrease with gain. When measuring noise figure, AGC should be disabled.
Interface
1: Measurement frequency shift from center
Use the wheels to adjust the measurement frequency in Hz from the center frequency of reception. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2.
Many SDRs have a large DC offset, which can significantly interfere with the NF measurement, so this setting should be used to move the measurement frequency away from the radio's center frequency or any other spurs.
2: Channel power
Average total power in dB relative to a +/- 1.0 amplitude signal received in the measurement band.
3: Level meter in dB
- top bar (green): average value
- bottom bar (blue green): instantaneous peak value
- tip vertical bar (bright green): peak hold value
4: FFT size
Determines the size (number of points) of the FFT used to measure noise power. Only a single output bin of the FFT is used, which is selected by (1).
5: BW
Displays the measurement bandwidth in kHz as determined by (2).
6: FFTs to average
Determines the number of FFTs that are used to measure the average noise power. Using more FFTs can improve accuracy, at the expense of increased measurement time.
7: Frequency range
Specifies the frequencies to measure the noise figure at. This can be specified as a:
- Range - Specify start frequency in MHz, stop frequency in MHz and the number of steps. 100, 200, 5, would measure at 100MHz, 125MHz, 150MHz, 175MHz and 200MHz.
- Step - Specify start frequency in MHz, stop frequency in MHz and the step frequency in MHz. 100, 200, 25, would measure at 100MHz, 125MHz, 150MHz, 175MHz and 200MHz.
- List - Specify a space or comma separated list of frequencies in MHz. "100 125 150 175 200", would measure at 100MHz, 125MHz, 150MHz, 175MHz and 200MHz.
8: Start/stop noise figure measurement
Starts or stops the noise figure measurement. When starting a new measurement, existing results are cleared.
9: Save results
Saves the results in the table to a .csv file.
10: Clear results
Clears the current results from the table and chart.
11: Open ENR dialog
Opens the ENR dialog to allow entering the Excess Noise Ratios (ENRs) for noise source. ENR specifies the difference in noise source power output in dB from when the source is powered off compared to when it is powered on. This typically varies with frequency, so values should be entered for each calibrated frequency. When a measurement is attempted at a frequency for which a value is not specified, an interpolated value will be used. Barycentric Rational Interpolation is used.
12: Open Noise Source Control dialog
Opens the noise source control dialog, to allow setting how the plugin turns the power to the noise source off and on. Two control methods are supported: A program or script can be run to turn the power on or off, or the VISA library (if installed) can be used to send SCPI commands to a programmable power supply or other test equipment. If a VISA library is not found, the VISA and SCPI fields will be disabled.
The delay setting determines how long after the noise source's power is turned on or off, before the noise figure measurement starts. This should be long enough to allow the noise source output to settle, but not too long so that tests over a large number of frequencies take a long time to run. The ideal value will vary with the noise source and power supply.
13: Results Table
Displays measurement results.
- Frequency - Frequency of the measurement in MHz.
- NF - Calculated noise figure in dB.
- T - Calculated noise temperature in Kelvin with a reference temperature of 290K.
- Y - Measured Y factor in dB (difference in measured power when the noise source is on and off).
- ENR - Excess noise factor of the noise source in dB.
14: Results Chart
Plots the results (NF, T or Y) vs frequency as a line chart.
15: Open reference data
A set of reference data in .csv format can be loaded for comparisons with the measurement results. The first column of the .csv file should contain frequency and the second the noise figure in dB. The first row should contain a header (E.g. "Frequency,NF" allthough the exact text is ignored).
16: Clear reference data
Clears the reference data, so the chart only plots the measured data.
Usage
A typical h/w setup for measuring the noise figure of a receiver is shown below:
A DC blocking capacitor at the output of the noise source for SDRs with a bias tee is recommended.
The noise source may be a device from the 346 family (E.g. Keysight 346B or NoiseCom NC346), but also can be a lower cost device that is supplied with accurate ENR calibration data. (Inaccurate ENR values can significantly impact the calculated NF). The ENR calibration data indicates the difference in power output when the noise source is powered off compared with when it is powered on. As the first setup step, this calibration data should be entered in to the ENR dialog (11).
Next, we need to setup how the SDRangel powers on and off the noise source. This is set in the Noise Source Control Dialog (12). For a 346 device, a programmable power supply outputting 28V would be used. Providing the VISA libraries are installed (see below), we can send SCPI commands to enable and disable the PSU's output. As an example, for a Rigol DP832, we can set the channel 1 output to be 28V and enable it, with:
:SOURCE1:VOLTage 28
:OUTPut:STATe CH1,ON
And then disable it with:
:OUTPut:STATe CH1,OFF
The final settings needed are the frequencies to measure the NF at. This can be set with (7), to step through a range or a list of specific point frequencies.
To start the measurement, press (8).
Examples
Here is a plot comparing the measured noise figure for tuner 1 of a SDRplay Duo, compared to the datasheet values.
Here is a plot comparing measured values for a USRP B210 for the RF A RX2 port to measured values for the TX/RX port. As we can see, there is lower noise on the RX2 port:
Here is a plot comparing measured values for a Nooelec SMArTee XTR on its own, with a Nooelec Sawbird GOES LNA and with a Sawbird+ GOES LNA. As can be seen, a LNA makes a massive difference (12dB+) to the overall NF, and allows low cost SDRs to get similar NFs to more expensive devices, as the total NF is primarily determined by the LNA, if it has a decent amount of gain:
VISA libraries
VISA libraries are available for Windows, Linux and MacOS from: