21template <
class T1> arma::Col<T1>
upsample(
const arma::Col<T1>& x,
const int p )
23 long int N = x.size();
27 for(
long int n = 0; n < N; n++ )
38template <
class T1> arma::Col<T1>
downsample(
const arma::Col<T1>& x,
const int q )
41 int N = int( floor( 1.0 * x.size() / q ) );
43 for(
long int n = 0; n < N; n++ )
69 resampling(
const arma::uword _P,
const arma::uword _Q,
const arma::vec _H )
88 arma::uword M = (
P >
Q ) ?
P :
Q;
89 H =
fir1( 8 * M, 1.0f / M );
107 void downfir(
const arma::Col<T1>& in, arma::Col<T1>& out )
109 arma::uword sz = in.n_elem;
110 for( arma::uword n = 0; n < sz; n++ )
124 void upfir(
const arma::Col<T1>& in, arma::Col<T1>& out )
126 arma::uword sz =
P * in.n_elem;
127 for( arma::uword n = 0; n < sz; n++ )
144 void upfirdown(
const arma::Col<T1>& in, arma::Col<T1>& out )
146 arma::uword sz =
P * in.n_elem;
148 for( arma::uword n = 0; n < sz; n++ )
155 out[n /
Q] =
P * tmp;
void set_coeffs(const arma::Mat< T2 > &_b)
Sets coefficients in FIR filter. The internal state and pointers are cleared.
FIR_filt< T1, double, T1 > aa_filt
void downfir(const arma::Col< T1 > &in, arma::Col< T1 > &out)
Downsampling with anti alias filter.
arma::uword P
Upsampling rate.
void upfir(const arma::Col< T1 > &in, arma::Col< T1 > &out)
Upsampling with anti alias filter.
arma::vec K
Number of filter coefficients.
arma::uword Q
Downsampling rate.
resampling(const arma::uword _P, const arma::uword _Q)
Constructor using a fir1 filter with 8*M+1 taps and cutoff 1/M where M=max(P,Q)
arma::vec H
Filter coefficients.
void upfirdown(const arma::Col< T1 > &in, arma::Col< T1 > &out)
Resampling by a rational P/Q with anti alias filtering.
resampling(const arma::uword _P, const arma::uword _Q, const arma::vec _H)
Constructor.
arma_inline arma::vec fir1(const arma::uword M, const double f0)
FIR lowpass design function. FIR lowpassdesign using windows method (hamming window)....
arma::Col< T1 > upsample(const arma::Col< T1 > &x, const int p)
Upsampling without anti alias filtering.
arma::Col< T1 > downsample(const arma::Col< T1 > &x, const int q)
Downsampling without anti alias filtering.