]> git.rkrishnan.org Git - dttsp.git/blob - jDttSP/win/power_spectrum.h
Initial revision
[dttsp.git] / jDttSP / win / power_spectrum.h
1 #ifndef _power_spectrum_h
2 #define _power_spectrum_h
3
4 #include <fftw.h>
5 #include <complex.h>
6 #include <bufvec.h>
7
8 #ifndef _PWSMODE
9 #define _PWSMODE
10
11 typedef enum { MAG, DB } SPECTRUMTYPE;
12
13 typedef enum _powerspectrummode {
14   POSTFILTER, PREFILTER, AUDIO 
15 } PWSMODE;
16
17 typedef enum _pws_submode {
18   OFF, SPECTRUM, PANADAPTER, SCOPE, PHASE, PHASE2, WATERFALL, HISTOGRAM
19 } PWSSUBMODE;
20
21 typedef struct _powerspectrum {
22   struct {
23     int size;
24     fftw_plan plan;
25   } fft;
26   RLB WindowBuf, WindowBuf2, results;
27   CXB WindowedDataBuf, PowerSpectrumFFTresults;
28   struct {
29     RLB win, res;
30     CXB wdat, zdat;
31   } buf;
32   struct {
33     PWSMODE main;
34     PWSSUBMODE sub;
35     SPECTRUMTYPE spec;
36   } flav;
37 } *PWS, powerspectrum;
38
39 typedef struct _powerspectrum {
40   fftw_plan pwrspecfft;
41   int fftsize;
42   RLB WindowBuf, WindowBuf2, results;
43   CXB WindowedDataBuf, PowerSpectrumFFTresults;
44   PWSMODE Mode;
45   PWSSUBMODE SubMode;
46   SPECTRUMTYPE SpectrumType;
47 } *PWS, powerspectrum;
48
49 extern PWS newPowerSpectrum(int size, SPECTRUMTYPE SpectrumType);
50 extern void delPowerSpectrum(PWS pws);
51 extern void process_powerspectrum(float *results, int numpoints);
52
53 #endif