mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-09-27 15:26:33 -04:00
FFT correlator: use FFT factory
This commit is contained in:
parent
2764fd6083
commit
37082ce41d
@ -20,14 +20,18 @@
|
|||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
#include "dsp/dspengine.h"
|
||||||
|
#include "dsp/fftfactory.h"
|
||||||
#include "dsp/fftengine.h"
|
#include "dsp/fftengine.h"
|
||||||
#include "fftcorr.h"
|
#include "fftcorr.h"
|
||||||
|
|
||||||
void fftcorr::init_fft()
|
void fftcorr::init_fft()
|
||||||
{
|
{
|
||||||
fftA->configure(flen, false);
|
FFTFactory *fftFactory = DSPEngine::instance()->getFFTFactory();
|
||||||
fftB->configure(flen, false);
|
fftASequence = fftFactory->getEngine(flen, false, &fftA);
|
||||||
fftInvA->configure(flen, true);
|
fftBSequence = fftFactory->getEngine(flen, false, &fftB);
|
||||||
|
fftInvASequence = fftFactory->getEngine(flen, true, &fftInvA);
|
||||||
|
|
||||||
m_window.create(FFTWindow::Hanning, flen);
|
m_window.create(FFTWindow::Hanning, flen);
|
||||||
|
|
||||||
dataA = new cmplx[flen];
|
dataA = new cmplx[flen];
|
||||||
@ -46,17 +50,22 @@ void fftcorr::init_fft()
|
|||||||
fftcorr::fftcorr(int len) :
|
fftcorr::fftcorr(int len) :
|
||||||
flen(len),
|
flen(len),
|
||||||
flen2(len>>1),
|
flen2(len>>1),
|
||||||
fftA(FFTEngine::create(QString(""))), // TODO: use factory
|
fftA(nullptr),
|
||||||
fftB(FFTEngine::create(QString(""))), // TODO: use factory
|
fftB(nullptr),
|
||||||
fftInvA(FFTEngine::create(QString(""))) // TODO: use factory
|
fftInvA(nullptr),
|
||||||
|
fftASequence(0),
|
||||||
|
fftBSequence(0),
|
||||||
|
fftInvASequence(0)
|
||||||
{
|
{
|
||||||
init_fft();
|
init_fft();
|
||||||
}
|
}
|
||||||
|
|
||||||
fftcorr::~fftcorr()
|
fftcorr::~fftcorr()
|
||||||
{
|
{
|
||||||
delete fftA;
|
FFTFactory *fftFactory = DSPEngine::instance()->getFFTFactory();
|
||||||
delete fftB;
|
fftFactory->releaseEngine(flen, false, fftASequence);
|
||||||
|
fftFactory->releaseEngine(flen, false, fftBSequence);
|
||||||
|
fftFactory->releaseEngine(flen, true, fftInvASequence);
|
||||||
delete[] dataA;
|
delete[] dataA;
|
||||||
delete[] dataB;
|
delete[] dataB;
|
||||||
delete[] dataBj;
|
delete[] dataBj;
|
||||||
|
@ -44,6 +44,9 @@ private:
|
|||||||
FFTEngine *fftA;
|
FFTEngine *fftA;
|
||||||
FFTEngine *fftB;
|
FFTEngine *fftB;
|
||||||
FFTEngine *fftInvA;
|
FFTEngine *fftInvA;
|
||||||
|
unsigned int fftASequence;
|
||||||
|
unsigned int fftBSequence;
|
||||||
|
unsigned int fftInvASequence;
|
||||||
FFTWindow m_window;
|
FFTWindow m_window;
|
||||||
cmplx *dataA; // from A input
|
cmplx *dataA; // from A input
|
||||||
cmplx *dataB; // from B input
|
cmplx *dataB; // from B input
|
||||||
|
Loading…
Reference in New Issue
Block a user