1
/***************************************************************************
2
cpskdemodulator.h - description
5
copyright : (C) 2001 by Volker Schroer
7
***************************************************************************/
9
/***************************************************************************
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* based on the work of Moe Wheatley, AE4JY *
16
***************************************************************************/
19
#ifndef CPSKDEMODULATOR_H
20
#define CPSKDEMODULATOR_H
23
#include "constants.h"
28
#include "cdemodulator.h"
31
class CPskDemodulator : public CDemodulator
36
virtual ~CPskDemodulator();
37
bool Init(double Fs ,int BlockSize);
38
int getSquelchValue();
39
void ProcessInput( double *pIn, double *Spectrum);
40
complex<float> * getPhasePointer();
41
virtual float getIMD();
42
AfcMode AfcProperties();
47
/** Decodes the symbol depending on the PskModes */
48
virtual void DecodeSymbol( double) = 0;
49
/** Calculates the Cuality of the signal -- depends on the mode */
50
virtual void CalcQuality( double angle ) = 0;
53
complex<double> Prev_Sample;
54
complex<double> Phase_Vector;
57
unsigned char* m_VaricodeDecTbl;
74
bool SymbSync(complex<double> sample);
75
void CalcBitFilter( complex<double> Samp);
76
double CalcAGC( complex<double> Samp );
77
double CalcFreqError();
78
void calcIMD(double *Spectrum);
90
complex<double>* m_pQue1;
91
complex<double>* m_pQue2;
92
complex<double>* m_pQue3;
93
complex<double>* m_pInPtr1;
94
complex<double>* m_pInPtr2;
95
complex<double>* m_pInPtr3;
97
complex<double> m_FreqSignal;
98
complex<double> m_BitSignal;
100
complex<float> * Phase;
101
// Local variables for various functions that need to be saved between calls
103
/// complex<double> m_z1; //Old Version of Freqerror
104
/// complex<double> m_z2; // dito
112
/** Some Variable for CalcQuality */