From 05bb5a148d7cb171b4318e3b73859b9b8c416546 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 21 Apr 2021 07:20:56 +0200 Subject: [PATCH] Spectrum: increase maximum FFT size to 32k and set tooltip with bin size value --- sdrbase/dsp/spectrumsettings.h | 2 +- sdrgui/gui/glspectrumgui.cpp | 17 +++++++++++++++++ sdrgui/gui/glspectrumgui.h | 1 + sdrgui/gui/glspectrumgui.ui | 12 +++++++++++- 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/sdrbase/dsp/spectrumsettings.h b/sdrbase/dsp/spectrumsettings.h index 29e84181b..0b28bb239 100644 --- a/sdrbase/dsp/spectrumsettings.h +++ b/sdrbase/dsp/spectrumsettings.h @@ -64,7 +64,7 @@ public: QString m_wsSpectrumAddress; uint16_t m_wsSpectrumPort; static const int m_log2FFTSizeMin = 6; // 64 - static const int m_log2FFTSizeMax = 13; // 8k + static const int m_log2FFTSizeMax = 15; // 32k SpectrumSettings(); virtual ~SpectrumSettings(); diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp index 1849aaa0e..ebf781ac2 100644 --- a/sdrgui/gui/glspectrumgui.cpp +++ b/sdrgui/gui/glspectrumgui.cpp @@ -148,6 +148,7 @@ void GLSpectrumGUI::displaySettings() } } + setFFTSizeToolitp(); unsigned int i = 0; for (; i < sizeof(m_fpsMs)/sizeof(m_fpsMs[0]); i++) @@ -242,6 +243,7 @@ void GLSpectrumGUI::on_fftSize_currentIndexChanged(int index) setMaximumOverlap(); applySettings(); setAveragingToolitp(); + setFFTSizeToolitp(); } void GLSpectrumGUI::on_fftOverlap_valueChanged(int value) @@ -524,6 +526,20 @@ void GLSpectrumGUI::setAveragingToolitp() } } +void GLSpectrumGUI::setFFTSizeToolitp() +{ + if (m_glSpectrum) + { + QString s; + setNumberStr((float) m_glSpectrum->getSampleRate() / m_settings.m_fftSize, 2, s); + ui->fftSize->setToolTip(QString("FFT size (resolution: %1Hz)").arg(s)); + } + else + { + ui->fftSize->setToolTip(QString("FFT size")); + } +} + void GLSpectrumGUI::setFFTSize(int log2FFTSize) { ui->fftSize->setCurrentIndex( @@ -553,6 +569,7 @@ bool GLSpectrumGUI::handleMessage(const Message& message) if (GLSpectrum::MsgReportSampleRate::match(message)) { setAveragingToolitp(); + setFFTSizeToolitp(); return true; } else if (SpectrumVis::MsgConfigureSpectrumVis::match(message)) diff --git a/sdrgui/gui/glspectrumgui.h b/sdrgui/gui/glspectrumgui.h index 94f344fb7..5291d1f12 100644 --- a/sdrgui/gui/glspectrumgui.h +++ b/sdrgui/gui/glspectrumgui.h @@ -77,6 +77,7 @@ private: void setNumberStr(int n, QString& s); void setNumberStr(float v, int decimalPlaces, QString& s); void setAveragingToolitp(); + void setFFTSizeToolitp(); void setMaximumOverlap(); bool handleMessage(const Message& message); diff --git a/sdrgui/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui index 9ee8271fd..53f03277c 100644 --- a/sdrgui/gui/glspectrumgui.ui +++ b/sdrgui/gui/glspectrumgui.ui @@ -50,7 +50,7 @@ - 60 + 70 0 @@ -169,6 +169,16 @@ 8k + + + 16k + + + + + 32k + +