From d67ba75a94e3eadbf7c26d2a063595a7fd090b1c Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Sun, 25 Sep 2022 10:50:56 +0100 Subject: [PATCH] Spectrum: Add Channel Power and SNR measurements --- .../Spectrum_Measurement_AdjChannelPower.png | Bin 0 -> 79581 bytes doc/img/Spectrum_Measurement_ChannelPower.png | Bin 0 -> 57652 bytes doc/img/Spectrum_Measurement_Peak.png | Bin 0 -> 42977 bytes doc/img/Spectrum_Measurement_SFDR.png | Bin 0 -> 38286 bytes doc/img/Spectrum_Measurement_SNR.png | Bin 0 -> 41523 bytes sdrbase/dsp/spectrumsettings.cpp | 19 + sdrbase/dsp/spectrumsettings.h | 20 + sdrgui/gui/glspectrum.cpp | 551 ++++++++++++++++-- sdrgui/gui/glspectrum.h | 41 +- sdrgui/gui/glspectrumgui.cpp | 77 ++- sdrgui/gui/glspectrumgui.h | 7 + sdrgui/gui/glspectrumgui.ui | 181 +++++- sdrgui/gui/spectrum.md | 72 +++ 13 files changed, 898 insertions(+), 70 deletions(-) create mode 100644 doc/img/Spectrum_Measurement_AdjChannelPower.png create mode 100644 doc/img/Spectrum_Measurement_ChannelPower.png create mode 100644 doc/img/Spectrum_Measurement_Peak.png create mode 100644 doc/img/Spectrum_Measurement_SFDR.png create mode 100644 doc/img/Spectrum_Measurement_SNR.png diff --git a/doc/img/Spectrum_Measurement_AdjChannelPower.png b/doc/img/Spectrum_Measurement_AdjChannelPower.png new file mode 100644 index 0000000000000000000000000000000000000000..d55489a0474026b8e612a38606520e02d831e1f2 GIT binary patch literal 79581 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 literal 0 HcmV?d00001 diff --git a/doc/img/Spectrum_Measurement_Peak.png b/doc/img/Spectrum_Measurement_Peak.png new file mode 100644 index 0000000000000000000000000000000000000000..903c45995e2accbfcf841dab332e3b0074795e97 GIT binary patch literal 42977 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

g@akD=ziD_@+ zUJxX=2z75M}yN_^rW(acZh`+-ln9q^WTg5L=4_c2G z`cp?anH;*K3wv})jG17FawFNZ1x2w(UVR76&BocPRdT zRuO_?c?1TmPDfV8vD=@8L@j-^n{D}JG|W#iI*K6*-9~Ff{hg?Z)&pck*@N#g*{6~I zg-fS2C%_nr4%t6b>MJf^*j|UIp^>I*`%^?fn4%0g`?=>>0E`eYL}k#%zJ?+9rX8R3 zuPqXuBQ<2`Q16&ryANWTG-%PU#m2wCyGs9-$n?u4y&s^?mQ58DN{{wGno#y{s03yi z|G@NiHkGNHi;W;0LuQ|3&qME~TtknX1B%x`od{{&GBTN#lcVF!Au|2hy6+LCr;Nef zFBM=5s8B5cyBtdId~`Pr|GLnHh^Q#%F({eXvFOq~blq@aS`79ybvMbFDDYSAtUb|? zy;@)zW0C&1T;S2=&QknneQPYQMcXY$LHrRpgzX# z$X)Hr{aB$uU3)=;y_D#Ti&>Jur|23J&?%rNJk%u=4Y@7F_zBxB`><} z$BClCUpEb8C-VA!PXxOgH6Z;Mcv+W0(fCwcr`GXW)H}16pit=Qtm&%woqKHy$@q~7 zd0PUD`m5c!c31H1`Dctgk*2P)Ao@KoHi`47)$@An=(|!~9E*;@oVUYocucg19rxiL z0I{2Y%8m++47yXuW8(4|V&)~Y(|kj155&w)*n8+p6PQk{KAoeh`A}>ag^QdrWCI15K0}aq*X2aL~nv!sLHp#7M2yaW$ zs>n%(olt!G{e3w}AxxApn{-B)>TjA+$SuHHLy6WJ>X`SIWkTtzH$NujLa81|RZl;b zo!PBfH==Ivn9@a_oa;W{9jU5Z=np3AzmJqspQHZu7)mzu7XHix2T>F8QM!2$X9Fzg z%D5t~v$}sHt6SN|`)$%hh@|Qj>gf3v(S9toa^BoH-2A!a)lGBxPNGE0U+!X0ix5c} zTPdSBhaR|zUC?o2>njt}q~Ll4A0Dk+_(r8YULV~Y=ANobu)XK*EmFq&77euL^^tYV2Ac|QWdx_%9d~{Jnnb*uyJ?!lE7i#5C>wF9_(L>f(miDp>K5<*ktU}mvG0Wh zq5HN-Zi4$C6JP?66*TJ%j~jh594ZMXz+MB}&6EF@$15bX9(#6R*8|wg&wLxW&HwqM z=o&D6|MN1l`A*d{Y`&%;`7Q8x|M#sLXr%viwH2_j|8s;2N*c2QR-ykp45!b4>@pw$q2>tK(h&xUH|IN(d=;8>!C%^r!!FW2?pt^s2=ikNM%2n!^ ia{u=%87$=&uJAJTZHDD-tmm(RAJxa2kIEFxg8mQfeezTQ literal 0 HcmV?d00001 diff --git a/doc/img/Spectrum_Measurement_SFDR.png b/doc/img/Spectrum_Measurement_SFDR.png new file mode 100644 index 0000000000000000000000000000000000000000..f73a811ec2d706781402603846b35d67afe68e67 GIT binary patch literal 38286 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 literal 0 HcmV?d00001 diff --git a/doc/img/Spectrum_Measurement_SNR.png b/doc/img/Spectrum_Measurement_SNR.png new file mode 100644 index 0000000000000000000000000000000000000000..41e0e3a3d5742af4cdbb1ae458801725747c1f31 GIT binary patch literal 41523 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 bq?|oqG^A4;ek*VWcxm3#yIXw6F7$r@WML=q literal 0 HcmV?d00001 diff --git a/sdrbase/dsp/spectrumsettings.cpp b/sdrbase/dsp/spectrumsettings.cpp index f7b2ff96f..1dc4ce700 100644 --- a/sdrbase/dsp/spectrumsettings.cpp +++ b/sdrbase/dsp/spectrumsettings.cpp @@ -68,6 +68,12 @@ void SpectrumSettings::resetToDefaults() m_3DSpectrogramStyle = Outline; m_colorMap = "Angel"; m_spectrumStyle = Line; + m_measurement = MeasurementNone; + m_measurementBandwidth = 10000; + m_measurementChSpacing = 10000; + m_measurementAdjChBandwidth = 10000; + m_measurementHarmonics = 5; + m_measurementHighlight = true; } QByteArray SpectrumSettings::serialize() const @@ -107,6 +113,13 @@ QByteArray SpectrumSettings::serialize() const s.writeS32(32, (int) m_3DSpectrogramStyle); s.writeString(33, m_colorMap); s.writeS32(34, (int) m_spectrumStyle); + s.writeS32(35, (int) m_measurement); + s.writeS32(36, m_measurementBandwidth); + s.writeS32(37, m_measurementChSpacing); + s.writeS32(38, m_measurementAdjChBandwidth); + s.writeS32(39, m_measurementHarmonics); + // 41, 42 used below + s.writeBool(42, m_measurementHighlight); s.writeS32(100, m_histogramMarkers.size()); for (int i = 0; i < m_histogramMarkers.size(); i++) { @@ -208,6 +221,12 @@ bool SpectrumSettings::deserialize(const QByteArray& data) d.readS32(32, (int*)&m_3DSpectrogramStyle, (int)Outline); d.readString(33, &m_colorMap, "Angel"); d.readS32(34, (int*)&m_spectrumStyle, (int)Line); + d.readS32(35, (int*)&m_measurement, (int)MeasurementNone); + d.readS32(36, &m_measurementBandwidth, 10000); + d.readS32(37, &m_measurementChSpacing, 10000); + d.readS32(38, &m_measurementAdjChBandwidth, 10000); + d.readS32(39, &m_measurementHarmonics, 5); + d.readBool(42, &m_measurementHighlight, true); int histogramMarkersSize; d.readS32(100, &histogramMarkersSize, 0); diff --git a/sdrbase/dsp/spectrumsettings.h b/sdrbase/dsp/spectrumsettings.h index c1a9cdace..eec028ee0 100644 --- a/sdrbase/dsp/spectrumsettings.h +++ b/sdrbase/dsp/spectrumsettings.h @@ -70,6 +70,20 @@ public: Gradient }; + enum Measurement + { + MeasurementNone, + MeasurementPeak, + MeasurementChannelPower, + MeasurementAdjacentChannelPower, + MeasurementSNR, + MeasurementSNFR, + MeasurementTHD, + MeasurementTHDPN, + MeasurementSINAD, + MeasurementSFDR + }; + int m_fftSize; int m_fftOverlap; FFTWindow::Function m_fftWindow; @@ -108,6 +122,12 @@ public: SpectrogramStyle m_3DSpectrogramStyle; QString m_colorMap; SpectrumStyle m_spectrumStyle; + Measurement m_measurement; + int m_measurementBandwidth; + int m_measurementChSpacing; + int m_measurementAdjChBandwidth; + int m_measurementHarmonics; + bool m_measurementHighlight; static const int m_log2FFTSizeMin = 6; // 64 static const int m_log2FFTSizeMax = 15; // 32k diff --git a/sdrgui/gui/glspectrum.cpp b/sdrgui/gui/glspectrum.cpp index 885610884..210ea7bb3 100644 --- a/sdrgui/gui/glspectrum.cpp +++ b/sdrgui/gui/glspectrum.cpp @@ -108,7 +108,13 @@ GLSpectrum::GLSpectrum(QWidget* parent) : m_calibrationInterpMode(SpectrumSettings::CalibInterpLinear), m_messageQueueToGUI(nullptr), m_openGLLogger(nullptr), - m_isDeviceSpectrum(false) + m_isDeviceSpectrum(false), + m_measurement(SpectrumSettings::MeasurementNone), + m_measurementBandwidth(10000), + m_measurementChSpacing(10000), + m_measurementAdjChBandwidth(10000), + m_measurementHarmonics(5), + m_measurementHighlight(true) { // Enable multisampling anti-aliasing (MSAA) int multisamples = MainCore::instance()->getSettings().getMultisampling(); @@ -485,6 +491,22 @@ void GLSpectrum::setUseCalibration(bool useCalibration) update(); } +void GLSpectrum::setMeasurementParams(SpectrumSettings::Measurement measurement, + int bandwidth, int chSpacing, int adjChBandwidth, + int harmonics, bool highlight) +{ + m_mutex.lock(); + m_measurement = measurement; + m_measurementBandwidth = bandwidth; + m_measurementChSpacing = chSpacing; + m_measurementAdjChBandwidth = adjChBandwidth; + m_measurementHarmonics = harmonics; + m_measurementHighlight = highlight; + m_changesPending = true; + m_mutex.unlock(); + update(); +} + void GLSpectrum::addChannelMarker(ChannelMarker* channelMarker) { m_mutex.lock(); @@ -1650,20 +1672,93 @@ void GLSpectrum::paintGL() m_glShaderInfo.drawSurface(m_glInfoBoxMatrix, tex1, vtx1, 4); } - // Find and display peak in info line + if (m_currentSpectrum) { - if (m_currentSpectrum) + switch (m_measurement) { - float power, frequency; - - findPeak(power, frequency); - drawPeakText(power, (int64_t)frequency); + case SpectrumSettings::MeasurementPeak: + measurePeak(); + break; + case SpectrumSettings::MeasurementChannelPower: + measureChannelPower(); + break; + case SpectrumSettings::MeasurementAdjacentChannelPower: + measureAdjacentChannelPower(); + break; + case SpectrumSettings::MeasurementSNR: + case SpectrumSettings::MeasurementSNFR: + case SpectrumSettings::MeasurementTHD: + case SpectrumSettings::MeasurementTHDPN: + case SpectrumSettings::MeasurementSINAD: + measureSNR(); + break; + case SpectrumSettings::MeasurementSFDR: + measureSFDR(); + break; + default: + break; } } m_mutex.unlock(); } +// Hightlight power band for SFDR +void GLSpectrum::drawPowerBandMarkers(float max, float min, const QVector4D &color) +{ + float p1 = (m_powerScale.getRangeMax() - min) / m_powerScale.getRange(); + float p2 = (m_powerScale.getRangeMax() - max) / m_powerScale.getRange(); + + GLfloat q3[] { + 1, p2, + 0, p2, + 0, p1, + 1, p1, + 0, p1, + 0, p2 + }; + + m_glShaderSimple.drawSurface(m_glHistogramBoxMatrix, color, q3, 4); +} + +// Hightlight bandwidth being measured +void GLSpectrum::drawBandwidthMarkers(int64_t centerFrequency, int bandwidth, const QVector4D &color) +{ + float f1 = (centerFrequency - bandwidth / 2); + float f2 = (centerFrequency + bandwidth / 2); + float x1 = (f1 - m_frequencyScale.getRangeMin()) / m_frequencyScale.getRange(); + float x2 = (f2 - m_frequencyScale.getRangeMin()) / m_frequencyScale.getRange(); + + GLfloat q3[] { + x2, 1, + x1, 1, + x1, 0, + x2, 0, + x1, 0, + x1, 1 + }; + + m_glShaderSimple.drawSurface(m_glHistogramBoxMatrix, color, q3, 4); +} + +// Hightlight peak being measured. Note that the peak isn't always at the center +void GLSpectrum::drawPeakMarkers(int64_t startFrequency, int64_t endFrequency, const QVector4D &color) +{ + float x1 = (startFrequency - m_frequencyScale.getRangeMin()) / m_frequencyScale.getRange(); + float x2 = (endFrequency - m_frequencyScale.getRangeMin()) / m_frequencyScale.getRange(); + + GLfloat q3[] { + x2, 1, + x1, 1, + x1, 0, + x2, 0, + x1, 0, + x1, 1 + }; + + m_glShaderSimple.drawSurface(m_glHistogramBoxMatrix, color, q3, 4); +} + void GLSpectrum::drawSpectrumMarkers() { if (!m_currentSpectrum) { @@ -1958,6 +2053,369 @@ void GLSpectrum::drawAnnotationMarkers() } } +// Find and display peak in info line +void GLSpectrum::measurePeak() +{ + float power, frequency; + + findPeak(power, frequency); + + drawTextsRight( + {"Peak: ", ""}, + { + displayPower(power, m_linear ? 'e' : 'f', m_linear ? 3 : 1), + displayFull(frequency) + }, + {m_peakPowerMaxStr, m_peakFrequencyMaxStr}, + {m_peakPowerUnits, "Hz"} + ); +} + +// Calculate and display channel power +void GLSpectrum::measureChannelPower() +{ + float power; + + power = calcChannelPower(m_centerFrequency, m_measurementBandwidth); + drawTextRight("Power: ", QString::number(power, 'f', 1), "-120.0", "dB"); + if (m_measurementHighlight) { + drawBandwidthMarkers(m_centerFrequency, m_measurementBandwidth, m_measurementLightMarkerColor); + } +} + +// Calculate and display channel power and adjacent channel power +void GLSpectrum::measureAdjacentChannelPower() +{ + float power, powerLeft, powerRight; + + power = calcChannelPower(m_centerFrequency, m_measurementBandwidth); + powerLeft = calcChannelPower(m_centerFrequency - m_measurementChSpacing, m_measurementAdjChBandwidth); + powerRight = calcChannelPower(m_centerFrequency + m_measurementChSpacing, m_measurementAdjChBandwidth); + + float leftDiff = powerLeft - power; + float rightDiff = powerRight - power; + + drawTextsRight( + {"L: ", "", " C: ", " R: ", ""}, + { QString::number(powerLeft, 'f', 1), + QString::number(leftDiff, 'f', 1), + QString::number(power, 'f', 1), + QString::number(powerRight, 'f', 1), + QString::number(rightDiff, 'f', 1) + }, + {"-120.0", "-120.0", "-120.0", "-120.0", "-120.0"}, + {"dB", "dBc", "dB", "dB", "dBc"} + ); + + if (m_measurementHighlight) + { + drawBandwidthMarkers(m_centerFrequency, m_measurementBandwidth, m_measurementLightMarkerColor); + drawBandwidthMarkers(m_centerFrequency - m_measurementChSpacing, m_measurementAdjChBandwidth, m_measurementDarkMarkerColor); + drawBandwidthMarkers(m_centerFrequency + m_measurementChSpacing, m_measurementAdjChBandwidth, m_measurementDarkMarkerColor); + } +} + +const QVector4D GLSpectrum::m_measurementLightMarkerColor = QVector4D(0.5f, 0.5f, 0.5f, 0.4f); +const QVector4D GLSpectrum::m_measurementDarkMarkerColor = QVector4D(0.5f, 0.5f, 0.5f, 0.3f); + +// Find the width of a peak, by seaching in either direction until +// power is no longer falling +void GLSpectrum::peakWidth(int center, int &left, int &right, int maxLeft, int maxRight) const +{ + float prevLeft = m_currentSpectrum[center]; + float prevRight = m_currentSpectrum[center]; + left = center - 1; + right = center + 1; + while ((left > maxLeft) && (m_currentSpectrum[left] < prevLeft) && (right < maxRight) && (m_currentSpectrum[right] < prevRight)) + { + prevLeft = m_currentSpectrum[left]; + left--; + prevRight = m_currentSpectrum[right]; + right++; + } +} + +int GLSpectrum::findPeakBin() const +{ + int bin; + float power; + + bin = 0; + power = m_currentSpectrum[0]; + for (int i = 1; i < m_nbBins; i++) + { + if (m_currentSpectrum[i] > power) + { + power = m_currentSpectrum[i]; + bin = i; + } + } + return bin; +} + +float GLSpectrum::calPower(float power) const +{ + if (m_linear) { + return power * (m_useCalibration ? m_calibrationGain : 1.0f); + } else { + return CalcDb::powerFromdB(power) + (m_useCalibration ? m_calibrationShiftdB : 0.0f); + } +} + +int GLSpectrum::frequencyToBin(int64_t frequency) const +{ + float rbw = m_sampleRate / (float)m_fftSize; + return (frequency - m_frequencyScale.getRangeMin()) / rbw; +} + +int64_t GLSpectrum::binToFrequency(int bin) const +{ + float rbw = m_sampleRate / (float)m_fftSize; + return m_frequencyScale.getRangeMin() + bin * rbw; +} + +// Find a peak and measure SNR / THD / SINAD +void GLSpectrum::measureSNR() +{ + // Find bin with max peak - that will be our signal + int sig = findPeakBin(); + int sigLeft, sigRight; + peakWidth(sig, sigLeft, sigRight, 0, m_nbBins); + int sigBins = sigRight - sigLeft - 1; + int binsLeft = sig - sigLeft; + int binsRight = sigRight - sig; + + // Highlight the signal + float hzPerBin = m_sampleRate / (float) m_fftSize; + float sigFreq = binToFrequency(sig); + float sigBW = sigBins * hzPerBin; + if (m_measurementHighlight) { + drawPeakMarkers(binToFrequency(sigLeft+1), binToFrequency(sigRight-1), m_measurementLightMarkerColor); + } + + // Find the harmonics and highlight them + QList hBinsLeft; + QList hBinsRight; + QList hBinsBins; + for (int h = 2; h < m_measurementHarmonics + 2; h++) + { + float hFreq = sigFreq * h; + if (hFreq < m_frequencyScale.getRangeMax()) + { + int hBin = frequencyToBin(hFreq); + // Check if peak is an adjacent bin + if (m_currentSpectrum[hBin-1] > m_currentSpectrum[hBin]) { + hBin--; + } else if (m_currentSpectrum[hBin+1] > m_currentSpectrum[hBin]) { + hBin++; + } + hFreq = binToFrequency(hBin); + int hLeft, hRight; + peakWidth(hBin, hLeft, hRight, hBin - binsLeft, hBin + binsRight); + int hBins = hRight - hLeft - 1; + if (m_measurementHighlight) { + drawPeakMarkers(binToFrequency(hLeft+1), binToFrequency(hRight-1), m_measurementDarkMarkerColor); + } + hBinsLeft.append(hLeft); + hBinsRight.append(hRight); + hBinsBins.append(hBins); + } + } + + // Integrate signal, harmonic and noise power + float sigPower = 0.0f; + float noisePower = 0.0f; + float harmonicPower = 0.0f; + QList noise; + float gain = m_useCalibration ? m_calibrationGain : 1.0f; + float shift = m_useCalibration ? m_calibrationShiftdB : 0.0f; + + for (int i = 0; i < m_nbBins; i++) + { + float power; + if (m_linear) { + power = m_currentSpectrum[i] * gain; + } else { + power = CalcDb::powerFromdB(m_currentSpectrum[i]) + shift; + } + + // Signal power + if ((i > sigLeft) && (i < sigRight)) + { + sigPower += power; + continue; + } + + // Harmonics + for (int h = 0; h < hBinsLeft.size(); h++) + { + if ((i > hBinsLeft[h]) && (i < hBinsRight[h])) + { + harmonicPower += power; + continue; + } + } + + // Noise + noisePower += power; + noise.append(power); + } + + // Calculate median of noise + float noiseMedian = 0.0; + if (noise.size() > 0) + { + auto m = noise.begin() + noise.size()/2; + std::nth_element(noise.begin(), m, noise.end()); + noiseMedian = noise[noise.size()/2]; + } + + // Assume we have similar noise where the signal and harmonics are + float inBandNoise = noiseMedian * sigBins; + noisePower += inBandNoise; + sigPower -= inBandNoise; + for (auto hBins : hBinsBins) + { + float hNoise = noiseMedian * hBins; + noisePower += hNoise; + harmonicPower -= hNoise; + } + + switch (m_measurement) + { + case SpectrumSettings::MeasurementSNR: + { + // Calculate SNR in dB over full bandwidth + float snr = CalcDb::dbPower(sigPower / noisePower); + drawTextRight("SNR: ", QString::number(snr, 'f', 1), "100.0", "dB"); + break; + } + case SpectrumSettings::MeasurementSNFR: + { + // Calculate SNR, where noise is median of noise summed over signal b/w + float snfr = CalcDb::dbPower(sigPower / inBandNoise); + drawTextRight("SNFR: ", QString::number(snfr, 'f', 1), "100.0", "dB"); + break; + } + case SpectrumSettings::MeasurementTHD: + { + // Calculate THD - Total harmonic distortion + float thd = harmonicPower / sigPower; + float thdDB = CalcDb::dbPower(thd); + drawTextRight("THD: ", QString::number(thdDB, 'f', 1), "-120.0", "dB"); + break; + } + case SpectrumSettings::MeasurementTHDPN: + { + // Calculate THD+N - Total harmonic distortion plus noise + float thdpn = CalcDb::dbPower((harmonicPower + noisePower) / sigPower); + drawTextRight("THD+N: ", QString::number(thdpn, 'f', 1), "-120.0", "dB"); + break; + } + case SpectrumSettings::MeasurementSINAD: + { + // Calculate SINAD - Signal to noise and distotion ratio (Should be -THD+N) + float sinad = CalcDb::dbPower((sigPower + harmonicPower + noisePower) / (harmonicPower + noisePower)); + drawTextRight("SINAD: ", QString::number(sinad, 'f', 1), "120.0", "dB"); + break; + } + default: + break; + } +} + +void GLSpectrum::measureSFDR() +{ + // Find first peak which is our signal + int peakBin = findPeakBin(); + int peakLeft, peakRight; + peakWidth(peakBin, peakLeft, peakRight, 0, m_nbBins); + + // Find next largest peak, which is the spur + int nextPeakBin = -1; + float nextPeakPower = -std::numeric_limits::max(); + for (int i = 0; i < m_nbBins; i++) + { + if ((i < peakLeft) || (i > peakRight)) + { + if (m_currentSpectrum[i] > nextPeakPower) + { + nextPeakBin = i; + nextPeakPower = m_currentSpectrum[i]; + } + } + } + if (nextPeakBin != -1) + { + // Calculate SFDR in dB from difference between two peaks + float peakPower = calPower(m_currentSpectrum[peakBin]); + float nextPeakPower = calPower(m_currentSpectrum[nextPeakBin]); + float peakPowerDB = CalcDb::dbPower(peakPower); + float nextPeakPowerDB = CalcDb::dbPower(nextPeakPower); + float sfdr = peakPowerDB - nextPeakPowerDB; + + // Display + drawTextRight("SFDR: ", QString::number(sfdr, 'f', 1), "100.0", "dB"); + if (m_measurementHighlight) + { + if (m_linear) { + drawPowerBandMarkers(peakPower, nextPeakPower, m_measurementLightMarkerColor); + } else { + drawPowerBandMarkers(peakPowerDB, nextPeakPowerDB, m_measurementLightMarkerColor); + } + } + } +} + +// Find power and frequency of max peak in current spectrum +void GLSpectrum::findPeak(float &power, float &frequency) const +{ + int bin; + + bin = 0; + power = m_currentSpectrum[0]; + for (int i = 1; i < m_nbBins; i++) + { + if (m_currentSpectrum[i] > power) + { + power = m_currentSpectrum[i]; + bin = i; + } + } + + power = m_linear ? + power * (m_useCalibration ? m_calibrationGain : 1.0f) : + power + (m_useCalibration ? m_calibrationShiftdB : 0.0f); + frequency = binToFrequency(bin); +} + +// Calculate channel power in dB +float GLSpectrum::calcChannelPower(int64_t centerFrequency, int channelBandwidth) const +{ + float hzPerBin = m_sampleRate / (float) m_fftSize; + int bins = channelBandwidth / hzPerBin; + int start = frequencyToBin(centerFrequency) - (bins / 2); + int end = start + bins; + float power = 0.0; + + if (m_linear) + { + float gain = m_useCalibration ? m_calibrationGain : 1.0f; + for (int i = start; i <= end; i++) { + power += m_currentSpectrum[i] * gain; + } + } + else + { + float shift = m_useCalibration ? m_calibrationShiftdB : 0.0f; + for (int i = start; i <= end; i++) { + power += CalcDb::powerFromdB(m_currentSpectrum[i]) + m_calibrationShiftdB; + } + } + + return CalcDb::dbPower(power); +} + void GLSpectrum::stopDrag() { if (m_cursorState != CSNormal) @@ -2645,14 +3103,10 @@ void GLSpectrum::applyChanges() // Peak details in top info line QString minFrequencyStr = displayFull(m_centerFrequency - m_sampleRate/2); // This can be wider if negative, while max is positive QString maxFrequencyStr = displayFull(m_centerFrequency + m_sampleRate/2); - QString widestFrequencyStr = minFrequencyStr.size() > maxFrequencyStr.size() ? minFrequencyStr : maxFrequencyStr; - widestFrequencyStr = widestFrequencyStr.append("Hz"); - m_peakLabelStr = "Peak:"; - m_peakSpaceWidth = fm.width(" "); - m_peakSpaceMidWidth = ((widestFrequencyStr.size() > 10) ? 3 : 1) * m_peakSpaceWidth; // Extra space when lots of digits - m_peakLabelWidth = fm.width(m_peakLabelStr); - m_peakPowerMaxWidth = m_linear ? fm.width("8.000e-10") : fm.width("-100.0dB"); - m_peakFrequencyMaxWidth = fm.width(widestFrequencyStr); + m_peakFrequencyMaxStr = minFrequencyStr.size() > maxFrequencyStr.size() ? minFrequencyStr : maxFrequencyStr; + m_peakFrequencyMaxStr = m_peakFrequencyMaxStr.append("Hz"); + m_peakPowerMaxStr = m_linear ? "8.000e-10" : "-100.0"; + m_peakPowerUnits = m_linear ? "" : "dB"; bool fftSizeChanged = true; @@ -3929,32 +4383,12 @@ int GLSpectrum::getPrecision(int value) } } -// Find power and frequency of max peak in current spectrum -void GLSpectrum::findPeak(float &power, float &frequency) const +void GLSpectrum::drawTextRight(const QString &text, const QString &value, const QString &max, const QString &units) { - int bin; - - bin = 0; - power = m_currentSpectrum[0]; - for (int i = 1; i < m_nbBins; i++) - { - if (m_currentSpectrum[i] > power) - { - power = m_currentSpectrum[i]; - bin = i; - } - } - - power = m_linear ? - power * (m_useCalibration ? m_calibrationGain : 1.0f): - power + (m_useCalibration ? m_calibrationShiftdB : 0.0f); - - float hzPerBin = (float) m_sampleRate / m_fftSize; - frequency = m_centerFrequency + (bin - (m_fftSize/2)) * hzPerBin; + drawTextsRight({text}, {value}, {max}, {units}); } -// Draws peak power and frequency right justified in top info bar -void GLSpectrum::drawPeakText(float power, int64_t frequency, bool units) +void GLSpectrum::drawTextsRight(const QStringList &text, const QStringList &value, const QStringList &max, const QStringList &units) { QFontMetrics fm(font()); @@ -3968,30 +4402,24 @@ void GLSpectrum::drawPeakText(float power, int64_t frequency, bool units) painter.setPen(QColor(0xf0, 0xf0, 0xff)); painter.setFont(font()); - QString powerStr = displayPower( - power, - m_linear ? 'e' : 'f', - m_linear ? 3 : 1 - ); - QString frequencyStr = displayFull(frequency); - if (units) - { - if (!m_linear) { - powerStr = powerStr.append("dB"); - } - frequencyStr = frequencyStr.append("Hz"); - } - - int powerWidth = fm.width(powerStr); - int frequencyWidth = fm.width(frequencyStr); - int x = width() - m_rightMargin; int y = fm.height() + fm.ascent() / 2 - 2; - painter.drawText(QPointF(x - frequencyWidth, y), frequencyStr); - x -= m_peakFrequencyMaxWidth + m_peakSpaceMidWidth; - painter.drawText(QPointF(x - powerWidth, y), powerStr); - x -= m_peakPowerMaxWidth + m_peakSpaceWidth; - painter.drawText(QPointF(x - m_peakLabelWidth, y), m_peakLabelStr); + int textWidth, maxWidth; + for (int i = text.length() - 1; i >= 0; i--) + { + textWidth = fm.width(units[i]); + painter.drawText(QPointF(x - textWidth, y), units[i]); + x -= textWidth; + + textWidth = fm.width(value[i]); + maxWidth = fm.width(max[i]); + painter.drawText(QPointF(x - textWidth, y), value[i]); + x -= maxWidth; + + textWidth = fm.width(text[i]); + painter.drawText(QPointF(x - textWidth, y), text[i]); + x -= textWidth; + } m_glShaderTextOverlay.initTexture(m_infoPixmap.toImage()); @@ -4090,6 +4518,9 @@ void GLSpectrum::formatTextInfo(QString& info) getFrequencyZoom(centerFrequency, frequencySpan); info.append(tr("CF:%1 ").arg(displayScaled(centerFrequency, 'f', getPrecision(centerFrequency/frequencySpan), true))); info.append(tr("SP:%1 ").arg(displayScaled(frequencySpan, 'f', 3, true))); + if (m_measurement != SpectrumSettings::MeasurementNone) { + info.append(tr("RBW:%1 ").arg(displayScaled(m_sampleRate / (float)m_fftSize, 'f', 3, true))); + } } } diff --git a/sdrgui/gui/glspectrum.h b/sdrgui/gui/glspectrum.h index 3e8200f0b..73fc6d0a1 100644 --- a/sdrgui/gui/glspectrum.h +++ b/sdrgui/gui/glspectrum.h @@ -161,6 +161,9 @@ public: void setDisplayTraceIntensity(int intensity); void setLinear(bool linear); void setUseCalibration(bool useCalibration); + void setMeasurementParams(SpectrumSettings::Measurement measurement, int bandwidth, + int chSpacing, int adjChBandwidth, + int harmonics, bool highlight); qint32 getSampleRate() const { return m_sampleRate; } void addChannelMarker(ChannelMarker* channelMarker); @@ -294,12 +297,9 @@ private: QMatrix4x4 m_glLeftScaleBoxMatrix; QMatrix4x4 m_glInfoBoxMatrix; - QString m_peakLabelStr; - int m_peakLabelWidth; - int m_peakSpaceWidth; - int m_peakSpaceMidWidth; - int m_peakPowerMaxWidth; - int m_peakFrequencyMaxWidth; + QString m_peakFrequencyMaxStr; + QString m_peakPowerMaxStr; + QString m_peakPowerUnits; QRgb m_waterfallPalette[240]; QImage* m_waterfallBuffer; @@ -375,6 +375,15 @@ private: QOpenGLDebugLogger *m_openGLLogger; bool m_isDeviceSpectrum; + SpectrumSettings::Measurement m_measurement; + int m_measurementBandwidth; + int m_measurementChSpacing; + int m_measurementAdjChBandwidth; + int m_measurementHarmonics; + bool m_measurementHighlight; + static const QVector4D m_measurementLightMarkerColor; + static const QVector4D m_measurementDarkMarkerColor; + void updateWaterfall(const Real *spectrum); void update3DSpectrogram(const Real *spectrum); void updateHistogram(const Real *spectrum); @@ -382,9 +391,25 @@ private: void initializeGL(); void resizeGL(int width, int height); void paintGL(); + void drawPowerBandMarkers(float max, float min, const QVector4D &color); + void drawBandwidthMarkers(int64_t centerFrequency, int bandwidth, const QVector4D &color); + void drawPeakMarkers(int64_t startFrequency, int64_t endFrequency, const QVector4D &color); void drawSpectrumMarkers(); void drawAnnotationMarkers(); + void measurePeak(); + void measureChannelPower(); + void measureAdjacentChannelPower(); + void measureSNR(); + void measureSFDR(); + float calcChannelPower(int64_t centerFrequency, int channelBandwidth) const; + float calPower(float power) const; + int findPeakBin() const; + void findPeak(float &power, float &frequency) const; + void peakWidth(int center, int &left, int &right, int maxLeft, int maxRight) const; + int GLSpectrum::frequencyToBin(int64_t frequency) const; + int64_t GLSpectrum::binToFrequency(int bin) const; + void stopDrag(); void applyChanges(); @@ -414,8 +439,8 @@ private: static QString displayScaledF(float value, char type, int precision, bool showMult); static QString displayPower(float value, char type, int precision); int getPrecision(int value); - void findPeak(float &power, float &frequency) const; - void drawPeakText(float power, int64_t frequency, bool units=true); + void drawTextRight(const QString &text, const QString &value, const QString &max, const QString &units); + void drawTextsRight(const QStringList &text, const QStringList &value, const QStringList &max, const QStringList &units); void drawTextOverlay( //!< Draws a text overlay const QString& text, const QColor& color, diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp index 9b369d9be..27bdef877 100644 --- a/sdrgui/gui/glspectrumgui.cpp +++ b/sdrgui/gui/glspectrumgui.cpp @@ -49,8 +49,9 @@ GLSpectrumGUI::GLSpectrumGUI(QWidget* parent) : ui->setupUi(this); // Use the custom flow layout for the 3 main horizontal layouts (lines) - ui->verticalLayout->removeItem(ui->Line5Layout); + ui->verticalLayout->removeItem(ui->Line7Layout); ui->verticalLayout->removeItem(ui->Line6Layout); + ui->verticalLayout->removeItem(ui->Line5Layout); ui->verticalLayout->removeItem(ui->Line4Layout); ui->verticalLayout->removeItem(ui->Line3Layout); ui->verticalLayout->removeItem(ui->Line2Layout); @@ -62,9 +63,11 @@ GLSpectrumGUI::GLSpectrumGUI(QWidget* parent) : flowLayout->addItem(ui->Line4Layout); flowLayout->addItem(ui->Line5Layout); flowLayout->addItem(ui->Line6Layout); + flowLayout->addItem(ui->Line7Layout); ui->verticalLayout->addItem(flowLayout); on_linscale_toggled(false); + on_measurement_currentIndexChanged(0); QString levelStyle = QString( "QSpinBox {background-color: rgb(79, 79, 79);}" @@ -224,6 +227,13 @@ void GLSpectrumGUI::displaySettings() ui->calibration->setChecked(m_settings.m_useCalibration); displayGotoMarkers(); + ui->measurement->setCurrentIndex((int) m_settings.m_measurement); + ui->highlight->setChecked(m_settings.m_measurementHighlight); + ui->bandwidth->setValue(m_settings.m_measurementBandwidth); + ui->chSpacing->setValue(m_settings.m_measurementChSpacing); + ui->adjChBandwidth->setValue(m_settings.m_measurementAdjChBandwidth); + ui->harmonics->setValue(m_settings.m_measurementHarmonics); + ui->fftWindow->blockSignals(false); ui->averaging->blockSignals(false); ui->averagingMode->blockSignals(false); @@ -330,6 +340,15 @@ void GLSpectrumGUI::applySpectrumSettings() m_glSpectrum->setMarkersDisplay(m_settings.m_markersDisplay); m_glSpectrum->setCalibrationPoints(m_settings.m_calibrationPoints); m_glSpectrum->setCalibrationInterpMode(m_settings.m_calibrationInterpMode); + + m_glSpectrum->setMeasurementParams( + m_settings.m_measurement, + m_settings.m_measurementBandwidth, + m_settings.m_measurementChSpacing, + m_settings.m_measurementAdjChBandwidth, + m_settings.m_measurementHarmonics, + m_settings.m_measurementHighlight + ); } void GLSpectrumGUI::on_fftWindow_currentIndexChanged(int index) @@ -965,3 +984,59 @@ void GLSpectrumGUI::updateCalibrationPoints() m_glSpectrum->updateCalibrationPoints(); } } + +void GLSpectrumGUI::on_measurement_currentIndexChanged(int index) +{ + m_settings.m_measurement = (SpectrumSettings::Measurement)index; + + bool highlight = (m_settings.m_measurement >= SpectrumSettings::MeasurementChannelPower); + ui->highlight->setVisible(highlight); + + bool bw = (m_settings.m_measurement == SpectrumSettings::MeasurementChannelPower) + || (m_settings.m_measurement == SpectrumSettings::MeasurementAdjacentChannelPower); + ui->bandwidthLabel->setVisible(bw); + ui->bandwidth->setVisible(bw); + + bool adj = m_settings.m_measurement == SpectrumSettings::MeasurementAdjacentChannelPower; + ui->chSpacingLabel->setVisible(adj); + ui->chSpacing->setVisible(adj); + ui->adjChBandwidthLabel->setVisible(adj); + ui->adjChBandwidth->setVisible(adj); + + bool harmonics = (m_settings.m_measurement >= SpectrumSettings::MeasurementSNR) + && (m_settings.m_measurement <= SpectrumSettings::MeasurementSINAD); + ui->harmonicsLabel->setVisible(harmonics); + ui->harmonics->setVisible(harmonics); + + applySettings(); +} + +void GLSpectrumGUI::on_highlight_toggled(bool checked) +{ + m_settings.m_measurementHighlight = checked; + applySettings(); +} + +void GLSpectrumGUI::on_bandwidth_valueChanged(int value) +{ + m_settings.m_measurementBandwidth = value; + applySettings(); +} + +void GLSpectrumGUI::on_chSpacing_valueChanged(int value) +{ + m_settings.m_measurementChSpacing = value; + applySettings(); +} + +void GLSpectrumGUI::on_adjChBandwidth_valueChanged(int value) +{ + m_settings.m_measurementAdjChBandwidth = value; + applySettings(); +} + +void GLSpectrumGUI::on_harmonics_valueChanged(int value) +{ + m_settings.m_measurementHarmonics = value; + applySettings(); +} diff --git a/sdrgui/gui/glspectrumgui.h b/sdrgui/gui/glspectrumgui.h index 4d0ecc627..0a13a981a 100644 --- a/sdrgui/gui/glspectrumgui.h +++ b/sdrgui/gui/glspectrumgui.h @@ -122,6 +122,13 @@ private slots: void on_calibration_toggled(bool checked); void on_gotoMarker_currentIndexChanged(int index); + void on_measurement_currentIndexChanged(int index); + void on_highlight_toggled(bool checked); + void on_bandwidth_valueChanged(int value); + void on_chSpacing_valueChanged(int value); + void on_adjChBandwidth_valueChanged(int value); + void on_harmonics_valueChanged(int value); + void handleInputMessages(); void openWebsocketSpectrumSettingsDialog(const QPoint& p); void openCalibrationPointsDialog(const QPoint& p); diff --git a/sdrgui/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui index 5c78eaae9..26d46dcd6 100644 --- a/sdrgui/gui/glspectrumgui.ui +++ b/sdrgui/gui/glspectrumgui.ui @@ -7,7 +7,7 @@ 0 0 630 - 250 + 274 @@ -1118,6 +1118,185 @@ + + + + + + Measurement + + + + None + + + + + Peak + + + + + Ch Power + + + + + Adj Ch + + + + + SNR + + + + + SNFR + + + + + THD + + + + + THD+N + + + + + SINAD + + + + + SFDR + + + + + + + + Highlight measurement + + + Max Hold + + + + :/carrier.png:/carrier.png + + + + 16 + 16 + + + + true + + + + + + + B/W + + + 2 + + + + + + + Measurement bandwidth (Hz) + + + 1 + + + 100000000 + + + 1000 + + + + + + + Spacing + + + 2 + + + + + + + Channel spacing (Hz) + + + 100000000 + + + 1000 + + + + + + + Adj. Ch. B/W + + + 2 + + + + + + + Adjacent channel bandwidth (Hz) + + + 1 + + + 100000000 + + + 1000 + + + + + + + Harmonics + + + 2 + + + + + + + Number of harmonics + + + 20 + + + + + diff --git a/sdrgui/gui/spectrum.md b/sdrgui/gui/spectrum.md index 96c6c9c9b..d92a7c364 100644 --- a/sdrgui/gui/spectrum.md +++ b/sdrgui/gui/spectrum.md @@ -356,6 +356,78 @@ Right click to open the [calibration management dialog](spectrumcalibration.md) This combo only appears if the spectrum display is the spectrum of a device (i.e. main spectrum) and if there are visible annotation markers. It allows to set the device center frequency to the frequency of the selected annotation marker. +

B.7.1: Measurement

+ +Selects a measurement to perform on the spectrum: + +* None - No measurement is performed. +* Peak - Displays highest peak power and frequency. +* Ch Power - Channel power. +* Adj Ch - Adjacent channel power. +* SNR - Signal to Noise Ratio. +* SNFR - Signal to Noise Floor Ratio. +* THD - Total Harmonic Distortion. +* THD+N - Total Harmonic Distortion plus Noise. +* SINAD - Signal to Noise and Distortion ratio. +* SFDR - Spurious Free Dynamic Range + +The measurement result is displayed in the top-right of the spectrum. +When any measurement is selected, the resolution bandwidth (RBW), which is the sample rate / FFT size, is additionally displayed in the top-left of the spectrum. +Several of the measurements highlight the measurement region on the spectrum. This can be toggled on and off with the 'Highlight measurement' button. + +
Peak
+ +The peak measurement displays the power and frequency of the FFT bin with the highest magnitude. + +![Peak measurement](../../doc/img/Specturm_Measurement_Peak.png) + +
Channel Power
+ +Channel power measures the total power within a user-defined bandwidth, at the center of the spectrum: + +![Adjacent channel power measurement](../../doc/img/Specturm_Measurement_ChannelPower.png) + +
Adjacent Channel Power
+ +The adjacent channel power measurement measures the power in a channel of user-defined bandwidth at the center of the spectrum and compares it to the power in the left and right adjacent channels. +Channel separation is specifed in the 'Spacing' field. + +![Adjacent channel power measurement](../../doc/img/Specturm_Measurement_AdjChannelPower.png) + +
Signal to Noise Ratio
+ +The SNR measurement estimates a signal-to-noise ratio. +The fundamental signal is the largest peak (i.e. FFT bin with highest magnitude). +The bandwidth of the signal is assumed to be the width of the largest peak, which includes adjacent bins with a monotonically decreasing magnitude. +Noise is summed over the full bandwidth (i.e all FFT bins), with the fundamental and user-specified number of harmonics being replaced with the noise median from outside of these regions. +The noise median is also subtracted from the signal, before the SNR is calculated. + +![SNR measurement](../../doc/img/Specturm_Measurement_SNR.png) + +
Signal to Noise Floor Ratio
+ +The SNFR measurement estimates a signal-to-noise-floor ratio. +This is similar to the SNR, except that the noise used in the ratio, is only the median noise value calculated from the noise outside of the fundamental and harmonics, summed over the bandwidth of the signal. +One way to think of this, is that it is the SNR if all noise outside of the signal's bandwidth was filtered. + +
Total Harmonic Distortion
+ +THD is measured as per SNR, but the result is the ratio of the total power of the harmonics to the fundamental. + +
Total Harmonic Distortion Plus Noise
+ +THD+N is measured as per SNR, but the result is the ratio of the total power of the harmonics and noise to the fundamental. + +
Signal to Noise and Distortion Ratio
+ +SINAD is measured as per SNR, but the result is the ratio of the fundamental to the total power of the harmonics and noise. + +
Spurious Free Dynamic Range
+ +SFDR is a measurement of the difference in power from the largest peak (the fundamental) to the second largest peak (the strongest spurious signal). + +![SFDR measurement](../../doc/img/Specturm_Measurement_SFDR.png) +

3D Spectrogram Controls

![3D Spectrogram](../../doc/img/MainWindow_3D_spectrogram.png)