SPUC  3.0
Classes | Functions
FIR filters
Collaboration diagram for FIR filters:

Classes

class  SPUC::cic< Numeric >
 class for CIC digital filter More...
 
class  SPUC::farrow< Numeric >
 Template Class for Farrow implementation of a ploynomial interpolation using a FIR filter. More...
 
class  SPUC::fir< Numeric, Coeff >
 Template Class for Modeling a Finite Impulse Response filter. More...
 
class  SPUC::fir_adapt< Numeric, Coeff >
 template class fir_adapt Based on FIR class, created to support LMS adaptive filtering More...
 
class  SPUC::fir_coeff< Numeric >
 Template Class for Modeling a Finite Impulse Response filter. More...
 
class  SPUC::fir_decim< Numeric, Coeff >
 template class for fir decimation based on FIR class More...
 
class  SPUC::fir_interp< Numeric, Coeff >
 template class fir_decim based on FIR class More...
 
class  SPUC::lagrange< Numeric, Coeff >
 Template Lagrange interpolation via FIR Fitler. More...
 
class  SPUC::remez_fir
 template Remez_fir class More...
 
class  SPUC::running_average< Numeric >
 template class running average filter consisting of a delay line, adder and subtractor More...
 
class  SPUC::running_sum< Numeric >
 template class running average filter consisting of a delay line, adder and subtractor More...
 
class  SPUC::scic< Numeric >
 Implementation for sharped cascaded integrator comb filter. More...
 
class  SPUC::sum_and_dump< Numeric >
 sum and dump filter More...
 

Functions

void SPUC::butterworth_fir (fir_coeff< float_type > &butfir, float_type spb)
 Calculate coefficients for FIR assuming butterworth frequency response. More...
 
void SPUC::create_remez_lpfir (fir_coeff< float_type > &remezfir, float_type pass_edge, float_type stop_edge, float_type stop_weight)
 calculates the coefficients for lowpass FIR based on Remez constraints More...
 
std::vector< float_type > SPUC::inv_dft_symmetric (const std::vector< float_type > &A, int N)
 Calculate coefficients for FIR using frequency sampling IDFT. More...
 
void SPUC::gaussian_fir (fir_coeff< float_type > &gaussf, float_type bt, float_type spb)
 Calculate coefficients for FIR assuming gaussian frequency response. More...
 
template<class T >
void SPUC::root_raised_cosine (fir_coeff< T > &rcfir, float_type alpha, int rate)
 
template<>
void SPUC::root_raised_cosine_quantized (fir_coeff< long > &rcfir, float_type alpha, int rate, int bits, float_type scale)
 
template<>
void SPUC::root_raised_cosine_quantized (fir_coeff< float > &rcfir, float_type alpha, int rate, int bits, float_type scale)
 
template<>
void SPUC::root_raised_cosine_quantized (fir_coeff< int > &rcfir, float_type alpha, int rate, int bits, float_type scale)
 
template<>
void SPUC::root_raised_cosine_quantized (fir_coeff< double > &rcfir, float_type alpha, int rate, int bits, float_type scale)
 
float_type SPUC::io (float_type x)
 bessel function for kaiser window More...
 
std::vector< float_type > SPUC::hamming (long nf, float_type alpha, float_type beta)
 hamming window $ w(n) = alpha + beta*cos( 2*\pi*(n-1)/(nf-1) )$ More...
 
std::vector< float_type > SPUC::hanning (long nf)
 hanning window $ w(n) = 0.5( 1 - cos( 2*\pi*n/(nf-1) )$ More...
 
std::vector< float_type > SPUC::blackman (long nf)
 Blackman Window $ w[x] = 0.42 - 0.5*cos(2*\pi*x/nf) + 0.08*cos(2*\pi*x/nf)$. More...
 
std::vector< float_type > SPUC::kaiser (long nf, float_type beta)
 kaiser window More...
 
std::vector< float_type > SPUC::cheby (long nf, long n, long ieo, float_type dp, float_type df, float_type x0)
 dolph chebyshev window design More...
 
void SPUC::chebc (float_type nf, float_type dp, float_type df, float_type n, float_type x0)
 chebyshev window subroutine to generate chebyshev window parameters when one of the three parameters nf,dp and df is unspecified??? More...
 

Detailed Description

Function Documentation

std::vector< float_type > SPUC::blackman ( long  nf)

Blackman Window $ w[x] = 0.42 - 0.5*cos(2*\pi*x/nf) + 0.08*cos(2*\pi*x/nf)$.

Author
Tony Kirke

References SPUC::cos(), and TWOPI.

Here is the call graph for this function:

void SPUC::butterworth_fir ( fir_coeff< float_type > &  butfir,
float_type  spb 
)

Calculate coefficients for FIR assuming butterworth frequency response.

Author
Tony Kirke, Copyright(c) 2001
Tony Kirke

References SPUC::fir_coeff< Numeric >::coeff, SPUC::cos(), SPUC::exp(), SPUC::fir_coeff< Numeric >::num_taps, PI, SPUC::sqrt(), and TWOPI.

Referenced by main().

Here is the call graph for this function:

void SPUC::chebc ( float_type  nf,
float_type  dp,
float_type  df,
float_type  n,
float_type  x0 
)

chebyshev window subroutine to generate chebyshev window parameters when one of the three parameters nf,dp and df is unspecified???

chebyshev window

subroutine to generate chebyshev window parameters when one of the three parameters nf,dp and df is unspecified

Author
Tony Kirke

References SPUC::cos(), SPUC::cosh(), SPUC::coshin(), PI, and TWOPI.

Here is the call graph for this function:

std::vector< float_type > SPUC::cheby ( long  nf,
long  n,
long  ieo,
float_type  dp,
float_type  df,
float_type  x0 
)

dolph chebyshev window design

Author
Tony Kirke

References SPUC::cos(), SPUC::cosh(), SPUC::coshin(), SPUC::expj(), PI, and TWOPI.

Here is the call graph for this function:

void SPUC::create_remez_lpfir ( fir_coeff< float_type > &  remezfir,
float_type  edge,
float_type  fx,
float_type  wtx 
)

calculates the coefficients for lowpass FIR based on Remez constraints

Calculate coefficients for lowpass FIR assuming equiripple frequency response.

Author
Tony Kirke, Copyright(c) 2001
Tony Kirke

References SPUC::fir_coeff< Numeric >::num_taps, SPUC::remez_fir::remez(), and SPUC::fir_coeff< Numeric >::settap().

Referenced by main().

Here is the call graph for this function:

void SPUC::gaussian_fir ( fir_coeff< float_type > &  gaussf,
float_type  bt,
float_type  spb 
)

Calculate coefficients for FIR assuming gaussian frequency response.

Author
Tony Kirke, Copyright(c) 2001
Tony Kirke

References SPUC::fir_coeff< Numeric >::coeff, SPUC::exp(), SPUC::fir_coeff< Numeric >::num_taps, SPUC::sqrt(), and TWOPI.

Referenced by main().

Here is the call graph for this function:

std::vector< float_type > SPUC::hamming ( long  nf,
float_type  alpha,
float_type  beta 
)

hamming window $ w(n) = alpha + beta*cos( 2*\pi*(n-1)/(nf-1) )$

Author
Tony Kirke

References SPUC::cos(), and TWOPI.

Here is the call graph for this function:

std::vector< float_type > SPUC::hanning ( long  nf)

hanning window $ w(n) = 0.5( 1 - cos( 2*\pi*n/(nf-1) )$

Author
Tony Kirke

References SPUC::cos(), and TWOPI.

Here is the call graph for this function:

std::vector< float_type > SPUC::inv_dft_symmetric ( const std::vector< float_type > &  A,
int  N 
)

Calculate coefficients for FIR using frequency sampling IDFT.

Author
Tony Kirke, Copyright(c) 2001
Tony Kirke

References SPUC::cos(), M, and TWOPI.

Referenced by SPUC::remez_fir::remez().

Here is the call graph for this function:

float_type SPUC::io ( float_type  x)

bessel function for kaiser window

Author
Tony Kirke, Copyright(c) 2001 function: io
Tony Kirke

Referenced by SPUC::kaiser().

std::vector< float_type > SPUC::kaiser ( long  nf,
float_type  beta 
)

kaiser window

Author
Tony Kirke

References SPUC::io(), and SPUC::sqrt().

Here is the call graph for this function:

template<class T >
void SPUC::root_raised_cosine ( fir_coeff< T > &  rcfir,
float_type  alpha,
int  rate 
)
template<>
void SPUC::root_raised_cosine_quantized ( fir_coeff< long > &  rcfir,
float_type  alpha,
int  rate,
int  bits,
float_type  scale 
)
template<>
void SPUC::root_raised_cosine_quantized ( fir_coeff< float > &  rcfir,
float_type  alpha,
int  rate,
int  bits,
float_type  scale 
)
template<>
void SPUC::root_raised_cosine_quantized ( fir_coeff< int > &  rcfir,
float_type  alpha,
int  rate,
int  bits,
float_type  scale 
)
template<>
void SPUC::root_raised_cosine_quantized ( fir_coeff< double > &  rcfir,
float_type  alpha,
int  rate,
int  bits,
float_type  scale 
)