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

SPUC::farrow< Numeric > Class Template Reference
[FIR filtersInterpolation filters]

Template Class for Farrow implementation of a ploynomial interpolation using a FIR filter. More...

#include <farrow.h>

Collaboration diagram for SPUC::farrow< Numeric >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Numeric out ()
 Get current output.
Numeric check (long i)
 Clock in new sample & compute current output.
 farrow (char order)
 Need to cover different orders!
void reset (void)
 reset
 ~farrow (void)
void input (Numeric in)
 Only input new sample.
Numeric update (Numeric in, double offset)
Numeric fir (double offset)
 Calculate output for current coefficients. Offset is between 0 and 1.
Numeric rephase (double offset)
 Rephase => recalculate coefficients and output for new offset (for upsampling).
void calculate_coeff2 (void)
 Calculate coefficients for linear (not tested).
void calculate_coeff3 (void)
 Calculate coefficients for square.
void calculate_coeff3a (void)
 Calculate coefficients for parabolic.
void calculate_coeff4 (void)
 Calculate coefficients for 4th order.

Public Attributes

long num_taps
Numeric * coeff

Protected Attributes

Numeric * z
Numeric output

Detailed Description

template<class Numeric>
class SPUC::farrow< Numeric >

Template Class for Farrow implementation of a ploynomial interpolation using a FIR filter.

: Farrow implementation of a polynomial interpolation This covers 3 (orders) cases of interpolation 1. Linear (not efficient using this method) 2. Piecewise-Parabolic 3. Cubic Although derived from the Lagrange coefficients the multiplication factor have been simplified to allow simple VLSI implementations. see Interpolation in Digital Modem - Part II, IEEE Trans. on Comms. June 1993.


Constructor & Destructor Documentation

template<class Numeric>
SPUC::farrow< Numeric >::farrow char  order  )  [inline]
 

Need to cover different orders!

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


Member Function Documentation

template<class Numeric>
void SPUC::farrow< Numeric >::calculate_coeff2 void   )  [inline]
 

Calculate coefficients for linear (not tested).

Calculate coefficients

template<class Numeric>
void SPUC::farrow< Numeric >::calculate_coeff3 void   )  [inline]
 

Calculate coefficients for square.

Calculate coefficients

template<class Numeric>
void SPUC::farrow< Numeric >::calculate_coeff3a void   )  [inline]
 

Calculate coefficients for parabolic.

Calculate coefficients

template<class Numeric>
void SPUC::farrow< Numeric >::calculate_coeff4 void   )  [inline]
 

Calculate coefficients for 4th order.

template<class Numeric>
Numeric SPUC::farrow< Numeric >::check long  i  )  [inline]
 

Clock in new sample & compute current output.

template<class Numeric>
Numeric SPUC::farrow< Numeric >::fir double  offset  )  [inline]
 

Calculate output for current coefficients. Offset is between 0 and 1.

Perform FIR

template<class Numeric>
void SPUC::farrow< Numeric >::input Numeric  in  )  [inline]
 

Only input new sample.

Update history of inputs

Add new input

template<class Numeric>
Numeric SPUC::farrow< Numeric >::out  )  [inline]
 

Get current output.

template<class Numeric>
Numeric SPUC::farrow< Numeric >::rephase double  offset  )  [inline]
 

Rephase => recalculate coefficients and output for new offset (for upsampling).

Here is the call graph for this function:

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

reset

template<class Numeric>
Numeric SPUC::farrow< Numeric >::update Numeric  in,
double  offset
[inline]
 

: Update => Clock in new input sample, recalculate coefficients and determine output

Update history of inputs

Add new input

Calculate coefficients

Perform FIR

Here is the call graph for this function:


Member Data Documentation

template<class Numeric>
Numeric* SPUC::farrow< Numeric >::coeff
 

template<class Numeric>
long SPUC::farrow< Numeric >::num_taps
 

template<class Numeric>
Numeric SPUC::farrow< Numeric >::output [protected]
 

template<class Numeric>
Numeric* SPUC::farrow< Numeric >::z [protected]
 


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