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
22
#include "constants.h"
28
#include "crxdisplay.h"
29
#include "cdemodulator.h"
32
class CPskDemodulator : public CDemodulator
37
virtual ~CPskDemodulator();
38
bool Init(double Fs ,int BlockSize);
40
void ProcessInput( double *pIn);
51
/** Decodes the symbol depending on the PskModes */
52
virtual void DecodeSymbol( double_complex newsamp) = 0;
53
/** Calculates the Cuality of the signal -- depends on the mode */
54
virtual void CalcQuality( double angle ) = 0;
57
double m_I0; // 2 stage I/Q delay line variables
63
unsigned char* m_VaricodeDecTbl;
80
bool SymbSync(double_complex sample);
81
void CalcBitFilter( double_complex Samp);
82
double CalcAGC( double_complex Samp );
83
double CalcFreqError( double_complex IQ );
100
double_complex* m_pQue1;
101
double_complex* m_pQue2;
102
double_complex* m_pQue3;
103
double_complex* m_pInPtr1;
104
double_complex* m_pInPtr2;
105
double_complex* m_pInPtr3;
107
double_complex m_FreqSignal;
108
double_complex m_BitSignal;
111
// Local variables for various functions that need to be saved between calls
113
double_complex m_z1; //Old Version of Freqerror
114
double_complex m_z2; // dito
122
/** Some Variable for CalcQuality */
123
double fe1,fe2,ferror1,ferror2;
129
/** emits this signal if the user changed the cursor
130
and with it the desired RX- Frequency */
131
// void rxFrequencyChanged(double);
132
// void newSymbol(char );
133
// void newPhaseValue(int,float_complex);
134
// void setFastSquelch(bool);
135
// void setSquelchValue(int);