From cc8e4cec572db7f12aa25161a9d3b92f1d0aa09f Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 11 Feb 2021 05:13:13 +0100 Subject: [PATCH] Adjust spectrum auto range algorithm --- sdrgui/gui/glspectrumgui.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp index 825378f16..3c5370700 100644 --- a/sdrgui/gui/glspectrumgui.cpp +++ b/sdrgui/gui/glspectrumgui.cpp @@ -253,18 +253,16 @@ void GLSpectrumGUI::on_autoscale_clicked(bool checked) } std::sort(psd.begin(), psd.end()); - float maxSum = 0.0f, minSum = 0.0f; + float max = psd[psd.size() - 1]; + float minSum = 0.0f; - for (int i = 0; i < avgRange; i++) - { + for (int i = 0; i < avgRange; i++) { minSum += psd[i]; - maxSum += psd[psd.size() - i-1]; } float minAvg = minSum / avgRange; - float maxAvg = maxSum / avgRange; int minLvl = CalcDb::dbPower(minAvg*2); - int maxLvl = CalcDb::dbPower(maxAvg*10); + int maxLvl = CalcDb::dbPower(max*10); m_settings.m_refLevel = maxLvl; m_settings.m_powerRange = maxLvl - minLvl;