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

SPUC::qpsk Class Reference
[Communication ClassesExamples]

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

#include <qpsk.h>

Collaboration diagram for SPUC::qpsk:

Collaboration graph
[legend]
List of all members.

Public Member Functions

long I_data ()
long Q_data ()
complex< long > data ()
long carrier_loop ()
long symbol_loop ()
long symclk (void)
void clock (complex< long >adc_out)
 qpsk (void)

Public Attributes

a_d ADC
loop_filter< long > carrier_loop_filter
loop_filter< long > symbol_loop_filter
complex< long > prev_sam
complex< long > prev_sym
complex< long > decision
long carrier_loop_out
long symbol_loop_out
long symbol_clk
long symbol_clk_pls
long sample_clk
long symbol_x2_clk
long symbol_x2_clk_pls
carrier_nco c_nco
fir< complex< long > > rcv_sqrt_rc
delay< complex< long > > hard_decision_delay
delay< complex< long > > final_baseband_delay
delay< complex< long > > timing_disc_delay
long bpsk
long dec_rate_log
long carrier_error
long symbol_nco_out
complex< long > hard_decision_prev
complex< long > final_baseband_prev
complex< long > baseband
complex< long > resampled
complex< long > carrier_in
complex< long > carrier_nco_out
complex< long > mf_in
complex< long > mf_out
complex< long > final_baseband
long timing_error
long nda_timing_error
complex< long > hard_decision

Detailed Description

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

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.

qpsk.gif


Constructor & Destructor Documentation

SPUC::qpsk::qpsk void   ) 
 

alpha = 0.35 root raised cosine fir


Member Function Documentation

long SPUC::qpsk::carrier_loop  )  [inline]
 

void SPUC::qpsk::clock complex< long >  adc_out  ) 
 

Don't use NDA timing discriminator

Down conversion

Digital Interpolation/Resampling would go here

Processing at 2 times the symbol rate

input to matched filter & does calculation

Slicer - get sign bit prior to rounding!

Symbol rate processing

Matched Filter out

Symbol discriminator

Carrier discriminator

Symbol + timing loop filters

complex<long> SPUC::qpsk::data  )  [inline]
 

long SPUC::qpsk::I_data  )  [inline]
 

long SPUC::qpsk::Q_data  )  [inline]
 

long SPUC::qpsk::symbol_loop  )  [inline]
 

long SPUC::qpsk::symclk void   )  [inline]
 


Member Data Documentation

a_d SPUC::qpsk::ADC
 

complex<long> SPUC::qpsk::baseband
 

long SPUC::qpsk::bpsk
 

carrier_nco SPUC::qpsk::c_nco
 

long SPUC::qpsk::carrier_error
 

complex<long> SPUC::qpsk::carrier_in
 

loop_filter<long> SPUC::qpsk::carrier_loop_filter
 

long SPUC::qpsk::carrier_loop_out
 

complex<long> SPUC::qpsk::carrier_nco_out
 

long SPUC::qpsk::dec_rate_log
 

complex<long> SPUC::qpsk::decision
 

complex<long> SPUC::qpsk::final_baseband
 

delay< complex<long> > SPUC::qpsk::final_baseband_delay
 

complex<long> SPUC::qpsk::final_baseband_prev
 

complex<long> SPUC::qpsk::hard_decision
 

delay< complex<long> > SPUC::qpsk::hard_decision_delay
 

complex<long> SPUC::qpsk::hard_decision_prev
 

complex<long> SPUC::qpsk::mf_in
 

complex<long> SPUC::qpsk::mf_out
 

long SPUC::qpsk::nda_timing_error
 

complex<long> SPUC::qpsk::prev_sam
 

complex<long> SPUC::qpsk::prev_sym
 

fir< complex<long> > SPUC::qpsk::rcv_sqrt_rc
 

complex<long> SPUC::qpsk::resampled
 

long SPUC::qpsk::sample_clk
 

long SPUC::qpsk::symbol_clk
 

long SPUC::qpsk::symbol_clk_pls
 

loop_filter<long> SPUC::qpsk::symbol_loop_filter
 

long SPUC::qpsk::symbol_loop_out
 

long SPUC::qpsk::symbol_nco_out
 

long SPUC::qpsk::symbol_x2_clk
 

long SPUC::qpsk::symbol_x2_clk_pls
 

delay< complex<long> > SPUC::qpsk::timing_disc_delay
 

long SPUC::qpsk::timing_error
 


The documentation for this class was generated from the following files:
Generated on Fri Sep 16 11:08:03 2005 for spuc by  doxygen 1.4.4