11#ifndef INCLUDED_DIGITAL_LINEAR_EQUALIZER_H
12#define INCLUDED_DIGITAL_LINEAR_EQUALIZER_H
34 typedef std::shared_ptr<linear_equalizer>
sptr;
63 adaptive_algorithm_sptr alg,
64 bool adapt_after_training =
true,
65 std::vector<gr_complex> training_sequence = std::vector<gr_complex>(),
66 const std::string& training_start_tag =
"");
69 virtual std::vector<gr_complex>
taps()
const = 0;
93 unsigned int num_inputs,
94 unsigned int max_num_outputs,
95 std::vector<unsigned int> training_start_samples = std::vector<unsigned int>(0),
96 bool history_included =
false,
98 unsigned short* state =
nullptr) = 0;
Linear Equalizer block provides linear equalization using a specified adaptive algorithm.
Definition: linear_equalizer.h:31
std::shared_ptr< linear_equalizer > sptr
Definition: linear_equalizer.h:34
virtual void set_taps(const std::vector< gr_complex > &taps)=0
virtual int equalize(const gr_complex *input_samples, gr_complex *output_symbols, unsigned int num_inputs, unsigned int max_num_outputs, std::vector< unsigned int > training_start_samples=std::vector< unsigned int >(0), bool history_included=false, gr_complex *taps=nullptr, unsigned short *state=nullptr)=0
Public "work" function - equalize a block of input samples.
virtual std::vector< gr_complex > taps() const =0
static sptr make(unsigned num_taps, unsigned sps, adaptive_algorithm_sptr alg, bool adapt_after_training=true, std::vector< gr_complex > training_sequence=std::vector< gr_complex >(), const std::string &training_start_tag="")
Return a shared_ptr to a new instance of gr::digital::linear_equalizer.
synchronous N:1 input to output with history
Definition: sync_decimator.h:26
#define DIGITAL_API
Definition: gr-digital/include/gnuradio/digital/api.h:18
std::complex< float > gr_complex
Definition: gr_complex.h:15
static constexpr float taps[NSTEPS+1][NTAPS]
Definition: interpolator_taps.h:9
GNU Radio logging wrapper.
Definition: basic_block.h:29