SDRAngel
4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
|
#include <fftfilt.h>
Public Types | |
typedef std::complex< float > | cmplx |
Public Member Functions | |
fftfilt (float f1, float f2, int len) | |
fftfilt (float f2, int len) | |
~fftfilt () | |
void | create_filter (float f1, float f2) |
void | create_dsb_filter (float f2) |
void | create_asym_filter (float fopp, float fin) |
two different filters for in band and opposite band More... | |
void | create_rrc_filter (float fb, float a) |
root raised cosine. fb is half the band pass More... | |
int | noFilt (const cmplx &in, cmplx **out) |
int | runFilt (const cmplx &in, cmplx **out) |
int | runSSB (const cmplx &in, cmplx **out, bool usb, bool getDC=true) |
int | runDSB (const cmplx &in, cmplx **out, bool getDC=true) |
int | runAsym (const cmplx &in, cmplx **out, bool usb) |
Asymmetrical fitering can be used for vestigial sideband. More... | |
Protected Member Functions | |
float | fsinc (float fc, int i, int len) |
float | _blackman (int i, int len) |
cmplx | frrc (float fb, float a, int i, int len) |
void | init_filter () |
void | init_dsb_filter () |
Protected Attributes | |
int | flen |
int | flen2 |
g_fft< float > * | fft |
cmplx * | filter |
cmplx * | filterOpp |
cmplx * | data |
cmplx * | ovlbuf |
cmplx * | output |
int | inptr |
int | pass |
int | window |
Private Types | |
enum | { NONE, BLACKMAN, HAMMING, HANNING } |
typedef std::complex<float> fftfilt::cmplx |
|
private |
Enumerator | |
---|---|
NONE | |
BLACKMAN | |
HAMMING | |
HANNING |
fftfilt::fftfilt | ( | float | f1, |
float | f2, | ||
int | len | ||
) |
Definition at line 78 of file fftfilt.cpp.
References create_filter(), flen, init_filter(), pass, and window.
fftfilt::fftfilt | ( | float | f2, |
int | len | ||
) |
Definition at line 87 of file fftfilt.cpp.
References create_dsb_filter(), flen, init_filter(), pass, and window.
fftfilt::~fftfilt | ( | ) |
|
inlineprotected |
Definition at line 59 of file fftfilt.h.
Referenced by create_asym_filter(), create_dsb_filter(), and create_filter().
void fftfilt::create_asym_filter | ( | float | fopp, |
float | fin | ||
) |
two different filters for in band and opposite band
Definition at line 174 of file fftfilt.cpp.
References _blackman(), abs(), g_fft< FFT_TYPE >::ComplexFFT(), fft, filter, filterOpp, flen, flen2, fsinc(), and i.
Referenced by ATVDemod::applySettings(), and ATVMod::applySettings().
void fftfilt::create_dsb_filter | ( | float | f2 | ) |
Definition at line 148 of file fftfilt.cpp.
References _blackman(), abs(), g_fft< FFT_TYPE >::ComplexFFT(), fft, filter, flen, flen2, fsinc(), and i.
Referenced by AMDemod::applyAudioSampleRate(), SSBDemod::applyAudioSampleRate(), SSBMod::applyAudioSampleRate(), AMDemod::applySettings(), SSBDemod::applySettings(), SSBMod::applySettings(), fftfilt(), and ChannelAnalyzer::setFilters().
void fftfilt::create_filter | ( | float | f1, |
float | f2 | ||
) |
Definition at line 107 of file fftfilt.cpp.
References _blackman(), abs(), g_fft< FFT_TYPE >::ComplexFFT(), fft, filter, flen, flen2, fsinc(), and i.
Referenced by SSBDemod::applyAudioSampleRate(), SSBMod::applyAudioSampleRate(), WFMDemod::applyChannelSettings(), BFMDemod::applyChannelSettings(), WFMMod::applyChannelSettings(), DATVDemod::applyChannelSettings(), ATVMod::applyChannelSettings(), FreeDVMod::applyFreeDVMode(), FreeDVDemod::applyFreeDVMode(), WFMDemod::applySettings(), UDPSource::applySettings(), BFMDemod::applySettings(), WFMMod::applySettings(), SSBDemod::applySettings(), SSBMod::applySettings(), DATVDemod::applySettings(), ATVMod::applySettings(), fftfilt(), and ChannelAnalyzer::setFilters().
void fftfilt::create_rrc_filter | ( | float | fb, |
float | a | ||
) |
root raised cosine. fb is half the band pass
Definition at line 222 of file fftfilt.cpp.
References abs(), filter, flen, frrc(), and i.
Referenced by ChannelAnalyzer::applySettings(), ChannelAnalyzer::setFilters(), and FreqTracker::setInterpolator().
|
inlineprotected |
RRC function in the frequency domain. Zero frequency is on the sides with first half in positive frequencies and second half in negative frequencies
Definition at line 68 of file fftfilt.h.
Referenced by create_rrc_filter().
|
inlineprotected |
Definition at line 52 of file fftfilt.h.
Referenced by create_asym_filter(), create_dsb_filter(), and create_filter().
|
protected |
|
protected |
Asymmetrical fitering can be used for vestigial sideband.
Definition at line 360 of file fftfilt.cpp.
References g_fft< FFT_TYPE >::ComplexFFT(), data, fft, filter, filterOpp, flen, flen2, i, inptr, g_fft< FFT_TYPE >::InverseComplexFFT(), output, and ovlbuf.
Referenced by ATVDemod::demod(), and ATVMod::modulateVestigialSSB().
Definition at line 327 of file fftfilt.cpp.
References g_fft< FFT_TYPE >::ComplexFFT(), data, fft, filter, flen, flen2, i, inptr, g_fft< FFT_TYPE >::InverseComplexFFT(), output, and ovlbuf.
Referenced by ChannelAnalyzer::processOneSample(), AMDemod::processOneSample(), SSBDemod::processOneSample(), and SSBMod::pullAF().
Definition at line 260 of file fftfilt.cpp.
References g_fft< FFT_TYPE >::ComplexFFT(), data, fft, filter, flen, flen2, i, inptr, g_fft< FFT_TYPE >::InverseComplexFFT(), output, and ovlbuf.
Referenced by WFMDemod::feed(), BFMDemod::feed(), DATVDemod::feed(), ChannelAnalyzer::processOneSample(), FreqTracker::processOneSample(), and WFMMod::pull().
Definition at line 284 of file fftfilt.cpp.
References g_fft< FFT_TYPE >::ComplexFFT(), data, fft, filter, flen, flen2, i, inptr, g_fft< FFT_TYPE >::InverseComplexFFT(), output, and ovlbuf.
Referenced by UDPSink::feed(), UDPSource::modulateSample(), ATVMod::modulateSSB(), ChannelAnalyzer::processOneSample(), AMDemod::processOneSample(), SSBDemod::processOneSample(), FreeDVDemod::processOneSample(), FreeDVMod::pullAF(), and SSBMod::pullAF().
|
protected |
Definition at line 45 of file fftfilt.h.
Referenced by init_filter(), noFilt(), runAsym(), runDSB(), runFilt(), runSSB(), and ~fftfilt().
|
protected |
Definition at line 42 of file fftfilt.h.
Referenced by create_asym_filter(), create_dsb_filter(), create_filter(), init_filter(), runAsym(), runDSB(), runFilt(), runSSB(), and ~fftfilt().
|
protected |
Definition at line 43 of file fftfilt.h.
Referenced by create_asym_filter(), create_dsb_filter(), create_filter(), create_rrc_filter(), init_filter(), runAsym(), runDSB(), runFilt(), runSSB(), and ~fftfilt().
|
protected |
Definition at line 44 of file fftfilt.h.
Referenced by create_asym_filter(), init_filter(), runAsym(), and ~fftfilt().
|
protected |
Definition at line 40 of file fftfilt.h.
Referenced by create_asym_filter(), create_dsb_filter(), create_filter(), create_rrc_filter(), fftfilt(), init_filter(), runAsym(), runDSB(), runFilt(), and runSSB().
|
protected |
Definition at line 41 of file fftfilt.h.
Referenced by create_asym_filter(), create_dsb_filter(), create_filter(), init_filter(), noFilt(), runAsym(), runDSB(), runFilt(), and runSSB().
|
protected |
|
protected |
Definition at line 47 of file fftfilt.h.
Referenced by init_filter(), runAsym(), runDSB(), runFilt(), runSSB(), and ~fftfilt().
|
protected |
Definition at line 46 of file fftfilt.h.
Referenced by init_filter(), runAsym(), runDSB(), runFilt(), runSSB(), and ~fftfilt().