22#ifndef INCLUDED_GFDM_PREAMBLE_CHANNEL_ESTIMATOR_CC_H
23#define INCLUDED_GFDM_PREAMBLE_CHANNEL_ESTIMATOR_CC_H
29#include <boost/shared_ptr.hpp>
45 typedef boost::shared_ptr<preamble_channel_estimator_cc>
sptr;
69 int d_active_subcarriers;
71 int d_which_estimator;
75 fftwf_plan d_preamble_fft_plan;
83 int d_n_gaussian_taps;
84 float* d_gaussian_taps;
85 void initialize_gaussian_filter(
float* taps,
const float sigma_sq,
const int n_taps);
<+description+>
Definition: gfdm_kernel_utils.h:40
std::complex< float > gfdm_complex
Definition: gfdm_kernel_utils.h:42
<+description+>
Definition: preamble_channel_estimator_cc.h:43
void estimate_frame(gfdm_complex *frame_estimate, const gfdm_complex *rx_preamble)
~preamble_channel_estimator_cc()
int frame_len()
Definition: preamble_channel_estimator_cc.h:53
preamble_channel_estimator_cc(int timeslots, int fft_len, int active_subcarriers, bool is_dc_free, int which_estimator, std::vector< gfdm_complex > preamble)
void prepare_for_zf(gfdm_complex *transformed_frame, const gfdm_complex *frame_estimate)
bool is_dc_free()
Definition: preamble_channel_estimator_cc.h:55
int fft_len()
Definition: preamble_channel_estimator_cc.h:51
void estimate_preamble_channel(gfdm_complex *fd_preamble_channel, const gfdm_complex *rx_preamble)
int active_subcarriers()
Definition: preamble_channel_estimator_cc.h:54
std::vector< float > preamble_filter_taps()
boost::shared_ptr< preamble_channel_estimator_cc > sptr
Definition: preamble_channel_estimator_cc.h:45
void interpolate_frame(gfdm_complex *frame_estimate, const gfdm_complex *estimate)
int timeslots()
Definition: preamble_channel_estimator_cc.h:52
void filter_preamble_estimate(gfdm_complex *filtered, const gfdm_complex *estimate)
Definition: add_cyclic_prefix_cc.h:30