From 8488a77e2c4077db8110860025201dfeff127f4c Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 9 Jan 2018 19:56:15 +0100 Subject: [PATCH] SSB demod: relaxed decimator filter constraints as the actual filtering is done by the FFT filter --- Readme.md | 2 +- debian/changelog | 2 ++ plugins/channelrx/demodssb/ssbdemod.cpp | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Readme.md b/Readme.md index be92917a9..0c01d342d 100644 --- a/Readme.md +++ b/Readme.md @@ -103,7 +103,7 @@ HackRF is better used with a sampling rate of 4.8 MS/s and above. The 2.4 and 3.

LimeSDR

-

⚠ The plugins should work normally when running as single instances. Support of many Rx and/or Tx instances running concurrently is considered experimental.

+

⚠ The plugins should work normally when running as single instances. Support of many Rx and/or Tx instances running concurrently is considered experimental. At least you should always have one of the streams running.

⚠ It seems LimeSDR mini has trouble working with host sample rates lower than 2.5 MS/s particularly in Tx mode.

diff --git a/debian/changelog b/debian/changelog index 6e6402bb6..8bb307ecf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ sdrangel (3.10.1-1) unstable; urgency=medium * LimeSDR: fixed segfault when stopping one device in multiple stream confguration * PlutoSDR: fixed segfault when stopping one device in multiple stream confguration + * Channel plugins: apply initial channel settings at construction and start + * SSB demod: refactored decimator filtering -- Edouard Griffiths, F4EXB Sun, 07 Jan 2018 23:14:18 +0100 diff --git a/plugins/channelrx/demodssb/ssbdemod.cpp b/plugins/channelrx/demodssb/ssbdemod.cpp index f76bdfbcd..581608fb3 100644 --- a/plugins/channelrx/demodssb/ssbdemod.cpp +++ b/plugins/channelrx/demodssb/ssbdemod.cpp @@ -350,7 +350,7 @@ void SSBDemod::applyChannelSettings(int inputSampleRate, int inputFrequencyOffse if ((m_inputSampleRate != inputSampleRate) || force) { m_settingsMutex.lock(); - m_interpolator.create(16, inputSampleRate, m_Bandwidth * 1.3f); + m_interpolator.create(16, inputSampleRate, m_Bandwidth * 1.5f, 2.0f); m_interpolatorDistanceRemain = 0; m_interpolatorDistance = (Real) inputSampleRate / (Real) m_settings.m_audioSampleRate; m_settingsMutex.unlock(); @@ -407,7 +407,7 @@ void SSBDemod::applySettings(const SSBDemodSettings& settings, bool force) m_LowCutoff = lowCutoff; m_settingsMutex.lock(); - m_interpolator.create(16, m_inputSampleRate, m_Bandwidth * 1.3f); + m_interpolator.create(16, m_inputSampleRate, m_Bandwidth * 1.5f, 2.0f); m_interpolatorDistanceRemain = 0; m_interpolatorDistance = (Real) m_inputSampleRate / (Real) m_settings.m_audioSampleRate; SSBFilter->create_filter(m_LowCutoff / (float) m_audioSampleRate, m_Bandwidth / (float) m_audioSampleRate);