1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-09-03 05:37:50 -04:00

SSB demod: implement DSB filter

This commit is contained in:
f4exb 2015-12-26 03:56:28 +01:00
parent 10c7e1e442
commit 332fe54b6a
2 changed files with 5 additions and 4 deletions

View File

@ -54,16 +54,15 @@ SSBDemod::SSBDemod(SampleSink* sampleSink) :
m_usb = true; m_usb = true;
m_magsq = 0.0f; m_magsq = 0.0f;
SSBFilter = new fftfilt(m_LowCutoff / m_audioSampleRate, m_Bandwidth / m_audioSampleRate, ssbFftLen); SSBFilter = new fftfilt(m_LowCutoff / m_audioSampleRate, m_Bandwidth / m_audioSampleRate, ssbFftLen);
DSBFilter = new fftfilt((2.0f * m_Bandwidth) / m_audioSampleRate, 2 * ssbFftLen);
DSPEngine::instance()->addAudioSink(&m_audioFifo); DSPEngine::instance()->addAudioSink(&m_audioFifo);
} }
SSBDemod::~SSBDemod() SSBDemod::~SSBDemod()
{ {
if (SSBFilter) if (SSBFilter) delete SSBFilter;
{ if (DSBFilter) delete DSBFilter;
delete SSBFilter;
}
DSPEngine::instance()->removeAudioSink(&m_audioFifo); DSPEngine::instance()->removeAudioSink(&m_audioFifo);
} }
@ -239,6 +238,7 @@ bool SSBDemod::handleMessage(const Message& cmd)
m_interpolator.create(16, m_sampleRate, band * 2.0f); m_interpolator.create(16, m_sampleRate, band * 2.0f);
SSBFilter->create_filter(m_LowCutoff / (float) m_audioSampleRate, m_Bandwidth / (float) m_audioSampleRate); SSBFilter->create_filter(m_LowCutoff / (float) m_audioSampleRate, m_Bandwidth / (float) m_audioSampleRate);
DSBFilter->create_dsb_filter((2.0f * m_Bandwidth) / (float) m_audioSampleRate);
m_volume = cfg.getVolume(); m_volume = cfg.getVolume();
m_volume *= m_volume * 0.1; m_volume *= m_volume * 0.1;

View File

@ -125,6 +125,7 @@ private:
Interpolator m_interpolator; Interpolator m_interpolator;
Real m_sampleDistanceRemain; Real m_sampleDistanceRemain;
fftfilt* SSBFilter; fftfilt* SSBFilter;
fftfilt* DSBFilter;
SampleSink* m_sampleSink; SampleSink* m_sampleSink;
SampleVector m_sampleBuffer; SampleVector m_sampleBuffer;