Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

qpsk_discriminators.h

Go to the documentation of this file.
00001 /*
00002  * SPUC - Signal processing using C++ - A DSP library
00003  * 
00004  * This program is free software; you can redistribute it and/or modify
00005  * it under the terms of the GNU General Public License as published by
00006  * the Free Software Foundation; either version 2, or (at your option)
00007  * any later version.
00008  * 
00009  * This program is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  * GNU General Public License for more details.
00013  * 
00014  * You should have received a copy of the GNU General Public License
00015  * along with this program; if not, write to the Free Software
00016  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00017 */
00018 #ifndef QPSKDISC
00019 #define QPSKDISC
00020 #include <complex.h>
00021 #include <delay.h>
00022 namespace SPUC {
00027 class qpsk_discriminators
00028 {
00029 public:
00030         int bpsk_mode;
00031         complex<long> fmf;
00032         complex<long> prev_sam,prev_sym,data;
00033         complex<long> hard_decision_prev,decision;
00034         delay< complex<long> > hard_decision_delay,timing_disc_delay;
00035 
00036         void update(complex<long> data_in, complex<long> decision_in, int sym_pls);
00037         void sample(complex<long> fmf_in, complex<long> data_in, complex<long> decision_in, int sym_pls);
00038         qpsk_discriminators(int bpsk=0) : hard_decision_delay(2), timing_disc_delay(3)
00039                 { bpsk_mode = bpsk;}
00040         void set_mode(int bpsk=0) { bpsk_mode = bpsk;}
00041         long cross_prod_afc(void);
00042         long quad(void);
00043         long rcfd(void);
00044         long dd_timing_disc(void);
00045         long nda_timing_disc(void);
00046         long symbol_lock_out(void);
00047         long pll_disc(void);
00048 };
00049 } // namespace SPUC 
00050 #endif    

Generated on Fri Sep 16 11:02:21 2005 for spuc by  doxygen 1.4.4