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

SPUC::mle< Numeric > Class Template Reference
[Equalization ClassesCommunication Classes]

A Configurable Maximum Likelihood Sequence Estimator Class. More...

#include <mle.h>

Collaboration diagram for SPUC::mle< Numeric >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 mle (int mlsd_size, int dfe_size=0, long q=1)
 phase increment for MLSD_CPM (should divide evenly into 360 degrees) (not implemented)
 ~mle (void)
void reset ()
 Reset filter.
void update_taps_lms (Numeric err)
 Update coefficients.
Numeric tap0 (void)
 Get tap0.
void set_cir (const fir< Numeric > &cir)
 Copy channel impulse response.
Numeric df_est (int state)
Numeric ff_estimate (long seq)
 Feedforward estimates.
double estimate (Numeric rx, long seq, long state, long type)
 Allows selection of Equalizer type.
long ddfse (Numeric rx)
 Perform DDFSE Sequence detection.
long mlsd (Numeric rx)
 Perform MLSD Sequence detection.
long rsdfse (Numeric rx)
 Perform RSDFSE Sequence detection.
long equalize (Numeric rx, long type)
 Generic Sequence detection allowing selection of type.

Public Attributes

const long mlsd_span
const long dfe_span
 number of bits spanned by MLSD part of equaliser
long n_branches
 Number of bits spanned by DFE part of equaliser.
long n_states
 Number of branches.
Numeric fb_est
 Number of states.
fir_adapt< Numeric > cfir
 Feedback estimator for RSDFSE.
Numeric * cir_mlsd
 Channel impulse response.
Numeric * cir_dfe
Numeric * f_est
Numeric * b_est
 Feedforward.
double * weight
long * path
 state metric calculations/state
long * tmp_path
 path history
double * tmp_weight
long * path_symbol
long phase_states
long total_states
 Phase states for MLSD_CPM (not implemented).
double phase_inc
 for CPM total = n_states*phase_states! (not implemented)

Detailed Description

template<class Numeric>
class SPUC::mle< Numeric >

A Configurable Maximum Likelihood Sequence Estimator Class.

can be configured as either a

MLSD - Basic Maximum Likelihood Sequence Detector

DDFSE - MLSD with Delayed Decision Feedback Sequence Detector

RSDFSE - MLSD with Reduced State Decision Feedback Sequence Detector


Constructor & Destructor Documentation

template<class Numeric>
SPUC::mle< Numeric >::mle int  mlsd_size,
int  dfe_size = 0,
long  q = 1
[inline]
 

phase increment for MLSD_CPM (should divide evenly into 360 degrees) (not implemented)

Constructor (default to MLSE with no feedback) q=1 Binary, q=2 Quaternary

template<class Numeric>
SPUC::mle< Numeric >::~mle void   )  [inline]
 


Member Function Documentation

template<class Numeric>
long SPUC::mle< Numeric >::ddfse Numeric  rx  )  [inline]
 

Perform DDFSE Sequence detection.

template<class Numeric>
Numeric SPUC::mle< Numeric >::df_est int  state  )  [inline]
 

Calculate convolution of feedback taps with past decisions for a particular state (for next iteration of branch metric calculation)

template<class Numeric>
long SPUC::mle< Numeric >::equalize Numeric  rx,
long  type
[inline]
 

Generic Sequence detection allowing selection of type.

template<class Numeric>
double SPUC::mle< Numeric >::estimate Numeric  rx,
long  seq,
long  state,
long  type
[inline]
 

Allows selection of Equalizer type.

template<class Numeric>
Numeric SPUC::mle< Numeric >::ff_estimate long  seq  )  [inline]
 

Feedforward estimates.

template<class Numeric>
long SPUC::mle< Numeric >::mlsd Numeric  rx  )  [inline]
 

Perform MLSD Sequence detection.

template<class Numeric>
void SPUC::mle< Numeric >::reset void   )  [inline]
 

Reset filter.

template<class Numeric>
long SPUC::mle< Numeric >::rsdfse Numeric  rx  )  [inline]
 

Perform RSDFSE Sequence detection.

template<class Numeric>
void SPUC::mle< Numeric >::set_cir const fir< Numeric > &  cir  )  [inline]
 

Copy channel impulse response.

template<class Numeric>
Numeric SPUC::mle< Numeric >::tap0 void   )  [inline]
 

Get tap0.

template<class Numeric>
void SPUC::mle< Numeric >::update_taps_lms Numeric  err  )  [inline]
 

Update coefficients.


Member Data Documentation

template<class Numeric>
Numeric* SPUC::mle< Numeric >::b_est
 

Feedforward.

template<class Numeric>
fir_adapt< Numeric > SPUC::mle< Numeric >::cfir
 

Feedback estimator for RSDFSE.

template<class Numeric>
Numeric* SPUC::mle< Numeric >::cir_dfe
 

template<class Numeric>
Numeric* SPUC::mle< Numeric >::cir_mlsd
 

Channel impulse response.

template<class Numeric>
const long SPUC::mle< Numeric >::dfe_span
 

number of bits spanned by MLSD part of equaliser

template<class Numeric>
Numeric* SPUC::mle< Numeric >::f_est
 

template<class Numeric>
Numeric SPUC::mle< Numeric >::fb_est
 

Number of states.

template<class Numeric>
const long SPUC::mle< Numeric >::mlsd_span
 

template<class Numeric>
long SPUC::mle< Numeric >::n_branches
 

Number of bits spanned by DFE part of equaliser.

template<class Numeric>
long SPUC::mle< Numeric >::n_states
 

Number of branches.

template<class Numeric>
long* SPUC::mle< Numeric >::path
 

state metric calculations/state

template<class Numeric>
long* SPUC::mle< Numeric >::path_symbol
 

template<class Numeric>
double SPUC::mle< Numeric >::phase_inc
 

for CPM total = n_states*phase_states! (not implemented)

template<class Numeric>
long SPUC::mle< Numeric >::phase_states
 

template<class Numeric>
long* SPUC::mle< Numeric >::tmp_path
 

path history

template<class Numeric>
double* SPUC::mle< Numeric >::tmp_weight
 

template<class Numeric>
long SPUC::mle< Numeric >::total_states
 

Phase states for MLSD_CPM (not implemented).

template<class Numeric>
double* SPUC::mle< Numeric >::weight
 


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