SPUC::iir_allpass1_halfband< Numeric, Coeff > Class Template Reference
[SPUC double templatesIIR filters]

Template Class for Allpass halfband IIR Filter. More...

#include <iir_allpass1_halfband.h>

Collaboration diagram for SPUC::iir_allpass1_halfband< Numeric, Coeff >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 iir_allpass1_halfband (Coeff c0, Coeff c1, long round_bits=0)
void reset ()
 reset
Numeric clock (Numeric input)
 Shift inputs by one time sample and place new sample into array.
char ready (void)

Public Attributes

char even

Protected Attributes

allpass_1< Numeric, Coeff > A0
 The 2 1st order allpass filters.
allpass_1< Numeric, Coeff > A1
Numeric out0
 Individual filter outputs.
Numeric out1

Detailed Description

template<class Numeric, class Coeff = float_type>
class SPUC::iir_allpass1_halfband< Numeric, Coeff >

Template Class for Allpass halfband IIR Filter.

The filter is a combination of 2 Allpass sections of the form G(z) = (a*z*z + 1)/(z*z+a) so that the overall H(z) is H(z) = 1/z*G(z,a0) + G(z,a1) The combination of these two allpass functions result in a lowpass/highpass complementary pair. The class only uses the low pass filter. This is similar to allpass_iir, except since this is used as a halfband filter the output samples are decimated by 2. So that if the member function clock is called at the higher (input) sampling rate, the outputs are only valid even second sample. This is taken advantage off by running the individual sections effectively at the lower rate. The invalid samples are set to zero. This class needs the allpass_1 class

allpass_halfband.gif
Author:
Tony Kirke
iir_allpass1_halfband.png


Constructor & Destructor Documentation

template<class Numeric, class Coeff = float_type>
SPUC::iir_allpass1_halfband< Numeric, Coeff >::iir_allpass1_halfband ( Coeff  c0,
Coeff  c1,
long  round_bits = 0 
) [inline]


Member Function Documentation

template<class Numeric, class Coeff = float_type>
Numeric SPUC::iir_allpass1_halfband< Numeric, Coeff >::clock ( Numeric  input  )  [inline]

Shift inputs by one time sample and place new sample into array.

template<class Numeric, class Coeff = float_type>
char SPUC::iir_allpass1_halfband< Numeric, Coeff >::ready ( void   )  [inline]

template<class Numeric, class Coeff = float_type>
void SPUC::iir_allpass1_halfband< Numeric, Coeff >::reset ( void   )  [inline]

reset


Member Data Documentation

template<class Numeric, class Coeff = float_type>
allpass_1<Numeric,Coeff> SPUC::iir_allpass1_halfband< Numeric, Coeff >::A0 [protected]

The 2 1st order allpass filters.

template<class Numeric, class Coeff = float_type>
allpass_1<Numeric,Coeff> SPUC::iir_allpass1_halfband< Numeric, Coeff >::A1 [protected]

template<class Numeric, class Coeff = float_type>
char SPUC::iir_allpass1_halfband< Numeric, Coeff >::even

template<class Numeric, class Coeff = float_type>
Numeric SPUC::iir_allpass1_halfband< Numeric, Coeff >::out0 [protected]

Individual filter outputs.

template<class Numeric, class Coeff = float_type>
Numeric SPUC::iir_allpass1_halfband< Numeric, Coeff >::out1 [protected]


The documentation for this class was generated from the following file:
Generated on Mon Jun 9 19:40:43 2008 for DSPTemplates by  doxygen 1.4.7