mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-08-05 07:22:24 -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_usb = true;
|
||||||
m_ssb = true;
|
m_ssb = true;
|
||||||
m_magsq = 0;
|
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);
|
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);
|
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);
|
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) ||
|
if ((m_running.m_channelSampleRate != m_config.m_channelSampleRate) ||
|
||||||
force)
|
force)
|
||||||
{
|
{
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
#include <dsp/basebandsamplesink.h>
|
#include <dsp/basebandsamplesink.h>
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "dsp/interpolator.h"
|
||||||
#include "dsp/ncof.h"
|
#include "dsp/ncof.h"
|
||||||
#include "dsp/fftfilt.h"
|
#include "dsp/fftfilt.h"
|
||||||
#include "audio/audiofifo.h"
|
#include "audio/audiofifo.h"
|
||||||
@ -115,6 +117,10 @@ private:
|
|||||||
Real m_magsq;
|
Real m_magsq;
|
||||||
|
|
||||||
NCOF m_nco;
|
NCOF m_nco;
|
||||||
|
Interpolator m_interpolator;
|
||||||
|
Real m_interpolatorDistance;
|
||||||
|
Real m_interpolatorDistanceRemain;
|
||||||
|
|
||||||
fftfilt* SSBFilter;
|
fftfilt* SSBFilter;
|
||||||
fftfilt* DSBFilter;
|
fftfilt* DSBFilter;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user