]> git.rkrishnan.org Git - dttsp.git/blob - jDttSP/am_demod.h
Initial revision
[dttsp.git] / jDttSP / am_demod.h
1 /* am_demod.h */
2
3 #ifndef _am_demod_h
4 #define _am_demod_h
5
6 #include <fromsys.h>
7 #include <banal.h>
8 #include <splitfields.h>
9 #include <datatypes.h>
10 #include <bufvec.h>
11 #include <cxops.h>
12 #include <fastrig.h>
13 #include <update.h>
14 #include <lmadf.h>
15 #include <fftw.h>
16 #include <ovsv.h>
17 #include <filter.h>
18 #include <oscillator.h>
19 #include <chap.h>
20 typedef enum _ammode {AMdet, SAMdet} AMMode;
21 typedef
22 struct _am_demod {
23   int size;
24   CXB ibuf, obuf;
25
26   struct {
27     REAL alpha, beta,fast_alpha;
28     struct { REAL f, l, h; } freq;
29     REAL phs;
30     struct { REAL alpha; } iir;
31     COMPLEX delay;
32   } pll;
33
34   struct { REAL curr, prev; } lock;
35
36   REAL dc;
37   REAL smooth;
38   AMMode mode;
39 } AMDDesc, *AMD;
40
41 extern void AMDemod(AMD am);
42 extern AMD newAMD(REAL samprate,
43                   REAL f_initial,
44                   REAL f_lobound,
45                   REAL f_hibound,
46                   REAL f_bandwid,
47                   int size,
48                   COMPLEX *ivec,
49                   COMPLEX *ovec,
50                   AMMode mode,
51                   char *tag);
52 extern void delAMD(AMD am);
53
54 #ifndef TWOPI
55 #define TWOPI (2.0*M_PI)
56 #endif
57
58 #endif