mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-07-30 12:42:25 -04:00
Channel Analyzer NG: implemented channel interpolator
This commit is contained in:
parent
ce15d78e55
commit
f67bfb4121
@ -37,6 +37,8 @@ ChannelAnalyzerNG::ChannelAnalyzerNG(BasebandSampleSink* sampleSink) :
|
||||
m_usb = true;
|
||||
m_ssb = true;
|
||||
m_magsq = 0;
|
||||
m_interpolatorDistance = 1.0f;
|
||||
m_interpolatorDistanceRemain = 0.0f;
|
||||
SSBFilter = new fftfilt(m_LowCutoff / m_running.m_inputSampleRate, m_Bandwidth / m_running.m_inputSampleRate, ssbFftLen);
|
||||
DSBFilter = new fftfilt(m_Bandwidth / m_running.m_inputSampleRate, 2*ssbFftLen);
|
||||
}
|
||||
@ -214,6 +216,17 @@ void ChannelAnalyzerNG::apply(bool force)
|
||||
m_nco.setFreq(-m_config.m_frequency, m_config.m_inputSampleRate);
|
||||
}
|
||||
|
||||
if ((m_running.m_inputSampleRate != m_config.m_inputSampleRate) ||
|
||||
(m_running.m_channelSampleRate != m_config.m_channelSampleRate) ||
|
||||
force)
|
||||
{
|
||||
m_settingsMutex.lock();
|
||||
m_interpolator.create(16, m_config.m_inputSampleRate, m_config.m_inputSampleRate / 2.2);
|
||||
m_interpolatorDistanceRemain = 0.0f;
|
||||
m_interpolatorDistance = (Real) m_config.m_inputSampleRate / (Real) m_config.m_channelSampleRate;
|
||||
m_settingsMutex.unlock();
|
||||
}
|
||||
|
||||
if ((m_running.m_channelSampleRate != m_config.m_channelSampleRate) ||
|
||||
force)
|
||||
{
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include <dsp/basebandsamplesink.h>
|
||||
#include <QMutex>
|
||||
#include <vector>
|
||||
|
||||
#include "dsp/interpolator.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/fftfilt.h"
|
||||
#include "audio/audiofifo.h"
|
||||
@ -115,6 +117,10 @@ private:
|
||||
Real m_magsq;
|
||||
|
||||
NCOF m_nco;
|
||||
Interpolator m_interpolator;
|
||||
Real m_interpolatorDistance;
|
||||
Real m_interpolatorDistanceRemain;
|
||||
|
||||
fftfilt* SSBFilter;
|
||||
fftfilt* DSBFilter;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user