|
HARDT - The Ham Radio DSP Toolkit
|
7 #include "hmultiplier.h"
8 #include "hfirfilter.h"
9 #include "hdecimator.h"
10 #include "hmemorywriter.h"
12 #include "hbaseband.h"
52 std::complex<double>* _fftResult;
53 std::complex<double>* _result;
59 std::complex<T>* _cxInput;
67 H_SAMPLE_RATE _zoomRate;
73 T* Zoom(T* src,
size_t size);
179 delete _zoomInputWriter;
180 delete _zoomBaseband;
181 delete _zoomDecimator;
189 int Output(T* src,
size_t size);
203 if( !_zoomEnabled ) {
204 HError(
"HFftOutput with zoom disabled cannot report FFT frequency span");
208 return (_zoomRate / 2) / _zoomFactor;
215 if( !_zoomEnabled ) {
216 HError(
"HFftOutput with zoom disabled cannot report left FFT frequency");
227 if( !_zoomEnabled ) {
228 HError(
"HFftOutput with zoom disabled cannot report right FFT frequency");
239 if( !_zoomEnabled ) {
240 HError(
"HFftOutput with zoom disabled cannot report center FFT frequency");
244 return _zoomCenter == 0
253 if( !_zoomEnabled ) {
254 HError(
"HFftOutput with zoom disabled cannot report FFT bin size");
258 return (((
float) _zoomRate / 2) / ((
float) _size / 2)) / (float) _zoomFactor;
265 return ((
float) rate / 2) / ((float) _size / 2);
272 if( !_zoomEnabled ) {
273 HError(
"HFftOutput with zoom disabled cannot report FFT rate");
277 return _zoomRate / _zoomFactor;
283 void SetZoom(
int zoomFactor,
int zoomCenter);
289 HLog(
"Initialize spectrum");
290 memset((
void*) _spectrum, 0, (_size / 2) *
sizeof(
double));
291 memset((
void*) _result, 0, (_size / 2) *
sizeof(std::complex<double>));
294 results.
Result = &_result[0];
295 results.
Size = _size / 2;
305 HLog(
"Clear spectrum");
306 memset((
void*) _spectrum, 0, (_size / 2) *
sizeof(
double));
307 memset((
void*) _result, 0, (_size / 2) *
sizeof(std::complex<double>));
310 results.
Result = &_result[0];
311 results.
Size = _size / 2;
Definition: hmemorywriter.h:15
float BinSize(H_SAMPLE_RATE rate)
Definition: hfftoutput.h:264
int Output(T *src, size_t size)
Definition: hfftoutput.cpp:167
bool Stop()
Definition: hfftoutput.h:302
void Ready()
Definition: houtput.h:61
void SetZoom(int zoomFactor, int zoomCenter)
Definition: hfftoutput.cpp:130
int Left()
Definition: hfftoutput.h:214
Definition: hbaseband.h:19
Definition: hfftoutput.h:17
float BinSize()
Definition: hfftoutput.h:252
int Size
Definition: hfftoutput.h:32
int Width()
Definition: hfftoutput.h:202
HFftOutput(int size, int average, int skip, HWriter< HFftResults > *writer, HWindow< T > *window, H_SAMPLE_RATE zoomRate=0, int zoomFactor=1, int zoomCenter=0)
Definition: hfftoutput.cpp:11
double * Spectrum
Definition: hfftoutput.h:22
int Center()
Definition: hfftoutput.h:238
int Right()
Definition: hfftoutput.h:226
Definition: hcommand.h:81
Definition: hfftoutput.h:41
~HFftOutput()
Definition: hfftoutput.h:170
H_SAMPLE_RATE Rate()
Definition: hfftoutput.h:271
std::complex< double > * Result
Definition: hfftoutput.h:27
bool Start()
Definition: hfftoutput.h:286
bool Command(HCommand *command)
Definition: hfftoutput.h:194
Definition: hdecimator.h:13
Definition: hwriterconsumer.h:8