diff options
author | Christian Daniel <cd@maintech.de> | 2013-08-07 23:23:25 +0200 |
---|---|---|
committer | Christian Daniel <cd@maintech.de> | 2013-08-07 23:23:25 +0200 |
commit | fb090cdfa91ae3ead3d23969d4fad3aab7caa8b1 (patch) | |
tree | 64a72c907d1da9e89674578249989be1d240f140 /plugins | |
parent | 37e6f6ff29f34d7dda7450ed41ef677d7a083eb5 (diff) |
improve interpolator
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/demod/nfm/nfmdemod.cpp | 6 | ||||
-rw-r--r-- | plugins/demod/tetra/tetrademod.cpp | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/plugins/demod/nfm/nfmdemod.cpp b/plugins/demod/nfm/nfmdemod.cpp index c6179ab..6330a16 100644 --- a/plugins/demod/nfm/nfmdemod.cpp +++ b/plugins/demod/nfm/nfmdemod.cpp @@ -35,7 +35,7 @@ NFMDemod::NFMDemod(AudioFifo* audioFifo, SampleSink* sampleSink) : m_squelchLevel *= m_squelchLevel; m_nco.setFreq(m_frequency, m_sampleRate); - m_interpolator.create(1, 32, 32 * m_sampleRate, 12500); + m_interpolator.create(16, m_sampleRate, 12500); m_sampleDistanceRemain = (Real)m_sampleRate / 44100.0; m_lowpass.create(21, 44100, 3000); @@ -123,7 +123,7 @@ bool NFMDemod::handleMessage(Message* cmd) qDebug("%d samples/sec, %lld Hz offset", signal->getSampleRate(), signal->getFrequencyOffset()); m_sampleRate = signal->getSampleRate(); m_nco.setFreq(-signal->getFrequencyOffset(), m_sampleRate); - m_interpolator.create(25, 32, 32 * m_sampleRate, m_rfBandwidth / 2.0); + m_interpolator.create(16, m_sampleRate, m_rfBandwidth / 2.1); m_sampleDistanceRemain = m_sampleRate / 44100.0; m_squelchState = 0; cmd->completed(); @@ -131,7 +131,7 @@ bool NFMDemod::handleMessage(Message* cmd) } else if(cmd->id() == MsgConfigureNFMDemod::ID()) { MsgConfigureNFMDemod* cfg = (MsgConfigureNFMDemod*)cmd; m_rfBandwidth = cfg->getRFBandwidth(); - m_interpolator.create(25, 32, 32 * m_sampleRate, m_rfBandwidth / 2.0); + m_interpolator.create(16, m_sampleRate, m_rfBandwidth / 2.1); m_lowpass.create(21, 44100, cfg->getAFBandwidth()); m_squelchLevel = pow(10.0, cfg->getSquelch() / 20.0); m_squelchLevel *= m_squelchLevel; diff --git a/plugins/demod/tetra/tetrademod.cpp b/plugins/demod/tetra/tetrademod.cpp index 4cf8ea1..f26810a 100644 --- a/plugins/demod/tetra/tetrademod.cpp +++ b/plugins/demod/tetra/tetrademod.cpp @@ -30,7 +30,7 @@ TetraDemod::TetraDemod(SampleSink* sampleSink) : m_frequency = 0; m_nco.setFreq(m_frequency, m_sampleRate); - m_interpolator.create(1, 32, 32 * m_sampleRate, 36000); + m_interpolator.create(32, 32 * m_sampleRate, 36000); m_sampleDistanceRemain = (Real)m_sampleRate / 36000.0; } @@ -87,7 +87,7 @@ bool TetraDemod::handleMessage(Message* cmd) qDebug("%d samples/sec, %lld Hz offset", signal->getSampleRate(), signal->getFrequencyOffset()); m_sampleRate = signal->getSampleRate(); m_nco.setFreq(-signal->getFrequencyOffset(), m_sampleRate); - m_interpolator.create(51, 32, 32 * m_sampleRate, 25000 / 2); + m_interpolator.create(32, m_sampleRate, 25000 / 2); m_sampleDistanceRemain = m_sampleRate / 36000.0; cmd->completed(); return true; |