SPUC  3.0
Public Types | Public Member Functions | Public Attributes | List of all members
SPUC::qpsk< Numeric > Class Template Reference

A QPSK receiver that can operate at exactly 2 samples/symbol. More...

#include <qpsk.h>

Collaboration diagram for SPUC::qpsk< Numeric >:
Collaboration graph
[legend]

Public Types

typedef fundtype< Numeric >::ftype CNumeric
 

Public Member Functions

Numeric I_data ()
 
Numeric Q_data ()
 
complex< CNumericdata ()
 
Numeric carrier_loop ()
 
Numeric symbol_loop ()
 
bool symclk (void)
 
 qpsk (void)
 
void reset (void)
 
void clock (complex< CNumeric >adc_out)
 

Public Attributes

a_d ADC
 
loop_filter< Numeric > carrier_loop_filter
 
loop_filter< Numeric > symbol_loop_filter
 
Numeric carrier_loop_out
 
Numeric symbol_loop_out
 
bool symbol_clk
 
bool symbol_clk_pls
 
bool sample_clk
 
bool symbol_x2_clk
 
bool symbol_x2_clk_pls
 
vco< Numeric > c_nco
 
fir< complex< CNumeric >, long > rcv_sqrt_rc
 
delay< complex< CNumeric > > final_baseband_delay
 
delay< complex< CNumeric > > hard_decision_delay
 
delay< complex< CNumeric > > timing_disc_delay
 
long bpsk
 
long dec_rate_log
 
Numeric carrier_error
 
Numeric symbol_nco_out
 
complex< CNumericprev_sam
 
complex< CNumericprev_sym
 
complex< CNumericdecision
 
complex< CNumerichard_decision_prev
 
complex< CNumericfinal_baseband_prev
 
complex< CNumericbaseband
 
complex< CNumericresampled
 
complex< CNumericcarrier_in
 
complex< CNumericcarrier_nco_out
 
complex< CNumericmf_in
 
complex< CNumericmf_out
 
complex< CNumericfinal_baseband
 
complex< CNumerichard_decision
 
Numeric timing_error
 
Numeric nda_timing_error
 

Detailed Description

template<class Numeric>
class SPUC::qpsk< Numeric >

A QPSK receiver that can operate at exactly 2 samples/symbol.

to illustrate carrier phase locked loop and demod process see qpsk_variable for more comprehensive example.

Author
Tony Kirke, Copyright(c) 2001
Tony Kirke
qpsk.gif

Member Typedef Documentation

template<class Numeric>
typedef fundtype<Numeric>::ftype SPUC::qpsk< Numeric >::CNumeric

Constructor & Destructor Documentation

template<class Numeric>
SPUC::qpsk< Numeric >::qpsk ( void  )
inline

Member Function Documentation

template<class Numeric>
Numeric SPUC::qpsk< Numeric >::carrier_loop ( )
inline
template<class Numeric>
void SPUC::qpsk< Numeric >::clock ( complex< CNumeric adc_out)
inline
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::data ( )
inline
template<class Numeric>
Numeric SPUC::qpsk< Numeric >::I_data ( )
inline
template<class Numeric>
Numeric SPUC::qpsk< Numeric >::Q_data ( )
inline
template<class Numeric>
void SPUC::qpsk< Numeric >::reset ( void  )
inline
template<class Numeric>
Numeric SPUC::qpsk< Numeric >::symbol_loop ( )
inline
template<class Numeric>
bool SPUC::qpsk< Numeric >::symclk ( void  )
inline

Member Data Documentation

template<class Numeric>
a_d SPUC::qpsk< Numeric >::ADC
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::baseband
template<class Numeric>
long SPUC::qpsk< Numeric >::bpsk
template<class Numeric>
vco<Numeric> SPUC::qpsk< Numeric >::c_nco
template<class Numeric>
Numeric SPUC::qpsk< Numeric >::carrier_error
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::carrier_in
template<class Numeric>
loop_filter<Numeric> SPUC::qpsk< Numeric >::carrier_loop_filter
template<class Numeric>
Numeric SPUC::qpsk< Numeric >::carrier_loop_out
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::carrier_nco_out
template<class Numeric>
long SPUC::qpsk< Numeric >::dec_rate_log
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::decision
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::final_baseband
template<class Numeric>
delay< complex<CNumeric> > SPUC::qpsk< Numeric >::final_baseband_delay
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::final_baseband_prev
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::hard_decision
template<class Numeric>
delay< complex<CNumeric> > SPUC::qpsk< Numeric >::hard_decision_delay
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::hard_decision_prev
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::mf_in
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::mf_out
template<class Numeric>
Numeric SPUC::qpsk< Numeric >::nda_timing_error
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::prev_sam
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::prev_sym
template<class Numeric>
fir< complex<CNumeric>, long > SPUC::qpsk< Numeric >::rcv_sqrt_rc
template<class Numeric>
complex<CNumeric> SPUC::qpsk< Numeric >::resampled
template<class Numeric>
bool SPUC::qpsk< Numeric >::sample_clk
template<class Numeric>
bool SPUC::qpsk< Numeric >::symbol_clk
template<class Numeric>
bool SPUC::qpsk< Numeric >::symbol_clk_pls
template<class Numeric>
loop_filter<Numeric> SPUC::qpsk< Numeric >::symbol_loop_filter
template<class Numeric>
Numeric SPUC::qpsk< Numeric >::symbol_loop_out
template<class Numeric>
Numeric SPUC::qpsk< Numeric >::symbol_nco_out
template<class Numeric>
bool SPUC::qpsk< Numeric >::symbol_x2_clk
template<class Numeric>
bool SPUC::qpsk< Numeric >::symbol_x2_clk_pls
template<class Numeric>
delay< complex<CNumeric> > SPUC::qpsk< Numeric >::timing_disc_delay
template<class Numeric>
Numeric SPUC::qpsk< Numeric >::timing_error

The documentation for this class was generated from the following file: