Compute intermediate samples between signal samples x(k*Ts) More...
#include <gnuradio/filter/mmse_fir_interpolator_cc.h>
Public Member Functions | |
mmse_fir_interpolator_cc () | |
mmse_fir_interpolator_cc (mmse_fir_interpolator_cc &&)=default | |
unsigned | ntaps () const |
unsigned | nsteps () const |
gr_complex | interpolate (const gr_complex input[], float mu) const |
compute a single interpolated output value. More... | |
Protected Attributes | |
std::vector< kernel::fir_filter_ccf > | filters |
Compute intermediate samples between signal samples x(k*Ts)
This implements a Minimum Mean Squared Error interpolator with 8 taps. It is suitable for signals where the bandwidth of interest B = 1/(4*Ts) Where Ts is the time between samples.
Although mu, the fractional delay, is specified as a float, it is actually quantized. 0.0 <= mu <= 1.0. That is, mu is quantized in the interpolate method to 32nd's of a sample.
For more information, in the GNU Radio source code, see:
gr::filter::mmse_fir_interpolator_cc::mmse_fir_interpolator_cc | ( | ) |
|
default |
gr_complex gr::filter::mmse_fir_interpolator_cc::interpolate | ( | const gr_complex | input[], |
float | mu | ||
) | const |
compute a single interpolated output value.
input
must have ntaps() valid entries and be 8-byte aligned. input[0] .. input[ntaps() - 1] are referenced to compute the output value.
std::invalid_argument | if input is not 8-byte aligned. |
mu
must be in the range [0, 1] and specifies the fractional delay.
unsigned gr::filter::mmse_fir_interpolator_cc::nsteps | ( | ) | const |
unsigned gr::filter::mmse_fir_interpolator_cc::ntaps | ( | ) | const |
|
protected |