From d96545f28bfa83d9c5daa56dd28af5e2cd7bf3b4 Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 16 Feb 2026 01:00:47 +0100 Subject: [PATCH] Freq Scanner: voice activity detection: just penalize if no broad peaks --- plugins/channelrx/freqscanner/freqscannersink.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/channelrx/freqscanner/freqscannersink.cpp b/plugins/channelrx/freqscanner/freqscannersink.cpp index 9eb68383d..ccf0dccac 100644 --- a/plugins/channelrx/freqscanner/freqscannersink.cpp +++ b/plugins/channelrx/freqscanner/freqscannersink.cpp @@ -555,10 +555,16 @@ Real FreqScannerSink::voiceActivityLevel(int bin, int channelBins, bool isLSB) c score = std::min(score * 1.2f, 1.0f); } - // Penalize if too many narrow peaks (likely CW or noise) - int narrowPeakCount = peakBins.size() - broadPeakCount; - if (narrowPeakCount > broadPeakCount) { - score *= 0.5; + // Penalize if too many narrow peaks (likely CW or noise) + // => This condition is ALWAYS true as there are always many more peaks than broad peaks + // int narrowPeakCount = peakBins.size() - broadPeakCount; + // if (narrowPeakCount > broadPeakCount) { + // score *= 0.5; + // } + + // Just strongly penalize if there are no broad peaks at all + if (broadPeakCount == 0) { + score *= 0.1; } }