23#ifndef INCLUDED_GFDM_RECEIVER_KERNEL_CC_H
24#define INCLUDED_GFDM_RECEIVER_KERNEL_CC_H
28#include <boost/shared_ptr.hpp>
56 typedef boost::shared_ptr<receiver_kernel_cc>
sptr;
58 receiver_kernel_cc(
int n_timeslots,
int n_subcarriers,
int overlap, std::vector<gfdm_complex> frequency_taps);
69 void demodulate_subcarrier(std::vector< std::vector<gfdm_complex> > &out, std::vector< std::vector<gfdm_complex> > &sc_fdomain);
72 void remove_sc_interference(std::vector< std::vector<gfdm_complex> > &sc_symbols, std::vector< std::vector<gfdm_complex> > &sc_fdomain);
89 void initialize_taps_vector(
gfdm_complex*
filter_taps, std::vector<gfdm_complex> frequency_taps,
const int n_timeslots);
91 fftwf_plan d_in_fft_plan;
97 fftwf_plan d_sc_ifft_plan;
101 fftwf_plan d_sc_fft_plan;
<+description+>
Definition gfdm_kernel_utils.h:40
Demodulate a GFDM block This class initializes and performs all operations necessary to demodulate a ...
Definition receiver_kernel_cc.h:53
void generic_work_equalize(gfdm_complex *out, const gfdm_complex *in, const gfdm_complex *f_eq_in)
void transform_subcarriers_to_td(gfdm_complex *p_out, const gfdm_complex *p_in)
int timeslots()
Definition receiver_kernel_cc.h:79
void demodulate_subcarrier(std::vector< std::vector< gfdm_complex > > &out, std::vector< std::vector< gfdm_complex > > &sc_fdomain)
void vectorize_2d(std::vector< std::vector< gfdm_complex > > &out_vector, const gfdm_complex *p_in)
void filter_superposition(std::vector< std::vector< gfdm_complex > > &out, const gfdm_complex *in)
void generic_work(gfdm_complex *out, const gfdm_complex *in)
std::vector< gfdm_complex > ic_filter_taps()
void fft_filter_downsample(gfdm_complex *p_out, const gfdm_complex *p_in)
void fft_equalize_filter_downsample(gfdm_complex *p_out, const gfdm_complex *p_in, const gfdm_complex *f_eq_in)
std::complex< float > gfdm_complex
Definition receiver_kernel_cc.h:55
void serialize_output(gfdm_complex out[], std::vector< std::vector< gfdm_complex > > &sc_symbols)
receiver_kernel_cc(int n_timeslots, int n_subcarriers, int overlap, std::vector< gfdm_complex > frequency_taps)
std::vector< gfdm_complex > filter_taps()
int block_size()
Definition receiver_kernel_cc.h:73
void remove_sc_interference(std::vector< std::vector< gfdm_complex > > &sc_symbols, std::vector< std::vector< gfdm_complex > > &sc_fdomain)
boost::shared_ptr< receiver_kernel_cc > sptr
Definition receiver_kernel_cc.h:56
void cancel_sc_interference(gfdm_complex *p_out, const gfdm_complex *p_td_in, const gfdm_complex *p_fd_in)
Definition add_cyclic_prefix_cc.h:30