Compute intermediate samples between signal samples x(k*Ts) More...
#include <gnuradio/filter/mmse_fir_interpolator.h>
Public Member Functions | |
mmse_fir_interpolator () | |
mmse_fir_interpolator (mmse_fir_interpolator &&)=default | |
unsigned | ntaps () const |
unsigned | nsteps () const |
sample_t | interpolate (const sample_t input[], float mu) const |
compute a single interpolated output value. | |
Protected Attributes | |
std::vector< kernel::fir_filter< sample_t, sample_t, float > > | 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< sample_t >::mmse_fir_interpolator | ( | ) |
|
default |
sample_t gr::filter::mmse_fir_interpolator< sample_t >::interpolate | ( | const sample_t | 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< sample_t >::nsteps | ( | ) | const |
unsigned gr::filter::mmse_fir_interpolator< sample_t >::ntaps | ( | ) | const |
|
protected |