Collaboration diagram for FIR filters:
![]() |
Classes | |
class | SPUC::rfir< Numeric > |
template class rfir FIR filter implementation with complex input and real coefficients More... | |
class | SPUC::cic |
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 > |
Template Class for Modeling a Finite Impulse Response filter. More... | |
class | SPUC::fir_adapt< Numeric > |
template class fir_adapt Based on FIR class, created to support LMS adaptive filtering More... | |
class | SPUC::fir_decim< Numeric > |
template class fir_decim based on FIR class, created to support polyphase FIR decimation More... | |
class | SPUC::fir_interp< Numeric > |
template class fir_decim based on FIR class, created to support polyphase FIR interpolation More... | |
class | SPUC::fir_multi_interp< Numeric > |
template class fir_decim based on FIR class, created to support polyphase FIR interpolation More... | |
class | SPUC::fir_sparse_coef< Numeric > |
template class fir_decim based on FIR class, created to support spare coefficients (zero padded) More... | |
class | SPUC::lagrange< Numeric > |
Template Class for Lagrange interpolation using a FIR filter. 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::sum_and_dump |
sum and dump filter More... | |
class | SPUC::scic |
Registers are signed long and default number of stages is 2. More... | |
Functions | |
void | SPUC::root_raised_cosine (fir< long > &rcfir, double alpha, int rate) |
void | SPUC::root_raised_cosine (fir< complex< long > > &rcfir, double alpha, int rate, int bits=10) |
void | SPUC::root_raised_cosine (fir< complex< long > > &rcfir, double alpha, int rate, int bits=10, double scale=1.0) |
void | SPUC::root_raised_cosine (fir< complex< double > > &rcfir, double alpha, int rate) |
void | SPUC::root_raised_cosine (fir_interp< complex< double > > &rcfir, double alpha, int rate) |
void | SPUC::root_raised_cosine (fir< double > &rcfir, double alpha, int rate) |
void | SPUC::raised_cosine (fir< long > &rcfir, double alpha, int rate) |
void | SPUC::raised_cosine (fir< double > &rcfir, double alpha, int rate) |
double | SPUC::io (double x) |
bessel function for kaiser window | |
void | SPUC::hamming (double *w, long nf, double alpha, double beta) |
hamming window ![]() | |
void | SPUC::hanning (double *w, long nf) |
hanning window ![]() | |
void | SPUC::blackman (double *w, long nf) |
Blackman Window ![]() | |
void | SPUC::kaiser (double *w, long nf, double beta) |
kaiser window | |
void | SPUC::chebc (double nf, double dp, double df, double n, double x0) |
chebyshev window subroutine to generate chebyshev window parameters when one of the three parameters nf,dp and df is unspecified | |
void | SPUC::cheby (double *w, long nf, long n, long ieo, double dp, double df, double x0) |
dolph chebyshev window design | |
void | SPUC::butterworth_fir (fir< double > &butfir, double spb) |
calculates the sampled butterworth (max flat) filter impulse response | |
void | SPUC::create_remez_lpfir (fir< double > &remezfir, double *edge, double *fx, double *wtx) |
calculates the coefficients for lowpass FIR based on Remez constraints | |
void | SPUC::gaussian_fir (fir< double > &gaussf, double bt, double spb) |
calculates the sampled Gaussian filter impulse response | |
void | SPUC::ls_fir (fir< double > fil, double fc, double spb) |
calculates the least square filter impulse response |
|
Blackman Window
|
|
calculates the sampled butterworth (max flat) filter impulse response With B(p) the butterworth response we have:
with N = Order of Butterworth filter (always even)
The impulse response of B(p) can be found by realizing that:
and that B(p) can be written as a linear combination of the these two expressions:
We find after some algebra:
Also used is the time scaling rule for Fourier transforms: |a| * y(at) <--> Y(f/a) |
|
chebyshev window subroutine to generate chebyshev window parameters when one of the three parameters nf,dp and df is unspecified
|
|
dolph chebyshev window design parameters
|
|
calculates the coefficients for lowpass FIR based on Remez constraints
|
|
calculates the sampled Gaussian filter impulse response
|
|
hamming window
|
|
hanning window
|
|
bessel function for kaiser window : function: io |
|
kaiser window
|
|
calculates the least square filter impulse response
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|