gr::gfdm::receiver_kernel_cc
gr::gfdm::gfdm_kernel_utils
receiver_kernel_cc.h
std::complex< float > typedef std::complex<float> gr::gfdm::receiver_kernel_cc::gfdm_complex gfdm_complex gr::gfdm::receiver_kernel_cc::gfdm_complex
boost::shared_ptr< receiver_kernel_cc > typedef boost::shared_ptr<receiver_kernel_cc> gr::gfdm::receiver_kernel_cc::sptr sptr gr::gfdm::receiver_kernel_cc::sptr
int int gr::gfdm::receiver_kernel_cc::d_n_subcarriers d_n_subcarriers gr::gfdm::receiver_kernel_cc::d_n_subcarriers
int int gr::gfdm::receiver_kernel_cc::d_n_timeslots d_n_timeslots gr::gfdm::receiver_kernel_cc::d_n_timeslots
int int gr::gfdm::receiver_kernel_cc::d_block_len d_block_len gr::gfdm::receiver_kernel_cc::d_block_len
int int gr::gfdm::receiver_kernel_cc::d_overlap d_overlap gr::gfdm::receiver_kernel_cc::d_overlap
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_filter_taps d_filter_taps gr::gfdm::receiver_kernel_cc::d_filter_taps
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_ic_filter_taps d_ic_filter_taps gr::gfdm::receiver_kernel_cc::d_ic_filter_taps
fftwf_plan fftwf_plan gr::gfdm::receiver_kernel_cc::d_in_fft_plan d_in_fft_plan gr::gfdm::receiver_kernel_cc::d_in_fft_plan
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_in_fft_in d_in_fft_in gr::gfdm::receiver_kernel_cc::d_in_fft_in
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_in_fft_out d_in_fft_out gr::gfdm::receiver_kernel_cc::d_in_fft_out
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_equalized d_equalized gr::gfdm::receiver_kernel_cc::d_equalized
fftwf_plan fftwf_plan gr::gfdm::receiver_kernel_cc::d_sc_ifft_plan d_sc_ifft_plan gr::gfdm::receiver_kernel_cc::d_sc_ifft_plan
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_sc_ifft_in d_sc_ifft_in gr::gfdm::receiver_kernel_cc::d_sc_ifft_in
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_sc_ifft_out d_sc_ifft_out gr::gfdm::receiver_kernel_cc::d_sc_ifft_out
fftwf_plan fftwf_plan gr::gfdm::receiver_kernel_cc::d_sc_fft_plan d_sc_fft_plan gr::gfdm::receiver_kernel_cc::d_sc_fft_plan
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_sc_fft_in d_sc_fft_in gr::gfdm::receiver_kernel_cc::d_sc_fft_in
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_sc_fft_out d_sc_fft_out gr::gfdm::receiver_kernel_cc::d_sc_fft_out
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_sc_postfilter d_sc_postfilter gr::gfdm::receiver_kernel_cc::d_sc_postfilter
gfdm_complex * gfdm_complex* gr::gfdm::receiver_kernel_cc::d_sc_filtered d_sc_filtered gr::gfdm::receiver_kernel_cc::d_sc_filtered
gr::gfdm::receiver_kernel_cc::receiver_kernel_cc
(int n_timeslots, int n_subcarriers, int overlap, std::vector< gfdm_complex > frequency_taps)
receiver_kernel_cc
gr::gfdm::receiver_kernel_cc::receiver_kernel_cc
int n_timeslots
int n_subcarriers
int overlap
std::vector< gfdm_complex > frequency_taps
gr::gfdm::receiver_kernel_cc::~receiver_kernel_cc
()
~receiver_kernel_cc
gr::gfdm::receiver_kernel_cc::~receiver_kernel_cc
void void gr::gfdm::receiver_kernel_cc::generic_work (gfdm_complex *out, const gfdm_complex *in) generic_work gr::gfdm::receiver_kernel_cc::generic_work gfdm_complex * out const gfdm_complex * in
void void gr::gfdm::receiver_kernel_cc::generic_work_equalize (gfdm_complex *out, const gfdm_complex *in, const gfdm_complex *f_eq_in) generic_work_equalize gr::gfdm::receiver_kernel_cc::generic_work_equalize gfdm_complex * out const gfdm_complex * in const gfdm_complex * f_eq_in
void void gr::gfdm::receiver_kernel_cc::fft_filter_downsample (gfdm_complex *p_out, const gfdm_complex *p_in) fft_filter_downsample gr::gfdm::receiver_kernel_cc::fft_filter_downsample gfdm_complex * p_out const gfdm_complex * p_in
void void gr::gfdm::receiver_kernel_cc::fft_equalize_filter_downsample (gfdm_complex *p_out, const gfdm_complex *p_in, const gfdm_complex *f_eq_in) fft_equalize_filter_downsample gr::gfdm::receiver_kernel_cc::fft_equalize_filter_downsample gfdm_complex * p_out const gfdm_complex * p_in const gfdm_complex * f_eq_in
void void gr::gfdm::receiver_kernel_cc::transform_subcarriers_to_td (gfdm_complex *p_out, const gfdm_complex *p_in) transform_subcarriers_to_td gr::gfdm::receiver_kernel_cc::transform_subcarriers_to_td gfdm_complex * p_out const gfdm_complex * p_in
void void gr::gfdm::receiver_kernel_cc::cancel_sc_interference (gfdm_complex *p_out, const gfdm_complex *p_td_in, const gfdm_complex *p_fd_in) cancel_sc_interference gr::gfdm::receiver_kernel_cc::cancel_sc_interference gfdm_complex * p_out const gfdm_complex * p_td_in const gfdm_complex * p_fd_in
void void gr::gfdm::receiver_kernel_cc::filter_superposition (std::vector< std::vector< gfdm_complex > > &out, const gfdm_complex *in) filter_superposition gr::gfdm::receiver_kernel_cc::filter_superposition std::vector< std::vector< gfdm_complex > > & out const gfdm_complex * in
void void gr::gfdm::receiver_kernel_cc::demodulate_subcarrier (std::vector< std::vector< gfdm_complex > > &out, std::vector< std::vector< gfdm_complex > > &sc_fdomain) demodulate_subcarrier gr::gfdm::receiver_kernel_cc::demodulate_subcarrier std::vector< std::vector< gfdm_complex > > & out std::vector< std::vector< gfdm_complex > > & sc_fdomain
void void gr::gfdm::receiver_kernel_cc::serialize_output (gfdm_complex out[], std::vector< std::vector< gfdm_complex > > &sc_symbols) serialize_output gr::gfdm::receiver_kernel_cc::serialize_output gfdm_complex out [] std::vector< std::vector< gfdm_complex > > & sc_symbols
void void gr::gfdm::receiver_kernel_cc::vectorize_2d (std::vector< std::vector< gfdm_complex > > &out_vector, const gfdm_complex *p_in) vectorize_2d gr::gfdm::receiver_kernel_cc::vectorize_2d std::vector< std::vector< gfdm_complex > > & out_vector const gfdm_complex * p_in
void void gr::gfdm::receiver_kernel_cc::remove_sc_interference (std::vector< std::vector< gfdm_complex > > &sc_symbols, std::vector< std::vector< gfdm_complex > > &sc_fdomain) remove_sc_interference gr::gfdm::receiver_kernel_cc::remove_sc_interference std::vector< std::vector< gfdm_complex > > & sc_symbols std::vector< std::vector< gfdm_complex > > & sc_fdomain
int int gr::gfdm::receiver_kernel_cc::block_size () block_size gr::gfdm::receiver_kernel_cc::block_size
std::vector< gfdm_complex > std::vector< gfdm_complex > gr::gfdm::receiver_kernel_cc::filter_taps () filter_taps gr::gfdm::receiver_kernel_cc::filter_taps
std::vector< gfdm_complex > std::vector< gfdm_complex > gr::gfdm::receiver_kernel_cc::ic_filter_taps () ic_filter_taps gr::gfdm::receiver_kernel_cc::ic_filter_taps
int int gr::gfdm::receiver_kernel_cc::timeslots () timeslots gr::gfdm::receiver_kernel_cc::timeslots
void void gr::gfdm::receiver_kernel_cc::initialize_taps_vector (gfdm_complex *filter_taps, std::vector< gfdm_complex > frequency_taps, const int n_timeslots) initialize_taps_vector gr::gfdm::receiver_kernel_cc::initialize_taps_vector gfdm_complex * filter_taps std::vector< gfdm_complex > frequency_taps const int n_timeslots
void void gr::gfdm::receiver_kernel_cc::filter_subcarriers_and_downsample_fd (gfdm_complex *p_out, const gfdm_complex *p_in) filter_subcarriers_and_downsample_fd gr::gfdm::receiver_kernel_cc::filter_subcarriers_and_downsample_fd gfdm_complex * p_out const gfdm_complex * p_in

Demodulate a GFDM block This class initializes and performs all operations necessary to demodulate a GFDM block.

The GFDM receiver kernel class provides all necessary operations to blocks which instantiate it. Further functions and methods not depending on GNU Radio should be implemented here. This receiver implementation is based on [Gas+13]. It is recommended to use overlap = 2 to make use of sparse frequency domain processing.

[Gas+13] I.S. Gaspar et al. "Low Complexity GFDM Receiver Based on Sparse Frequency Domain Processing"

gr::gfdm::gfdm_kernel_utils
gr::gfdm::receiver_kernel_cc
gr::gfdm::gfdm_kernel_utils
gr::gfdm::receiver_kernel_cc
- gr::gfdm::receiver_kernel_cc
  block_size
- gr::gfdm::receiver_kernel_cc
  calculate_signal_energy
- gr::gfdm::receiver_kernel_cc
  cancel_sc_interference
- gr::gfdm::receiver_kernel_cc
  d_block_len
- gr::gfdm::receiver_kernel_cc
  d_equalized
- gr::gfdm::receiver_kernel_cc
  d_filter_taps
- gr::gfdm::receiver_kernel_cc
  d_ic_filter_taps
- gr::gfdm::receiver_kernel_cc
  d_in_fft_in
- gr::gfdm::receiver_kernel_cc
  d_in_fft_out
- gr::gfdm::receiver_kernel_cc
  d_in_fft_plan
- gr::gfdm::receiver_kernel_cc
  d_n_subcarriers
- gr::gfdm::receiver_kernel_cc
  d_n_timeslots
- gr::gfdm::receiver_kernel_cc
  d_overlap
- gr::gfdm::receiver_kernel_cc
  d_sc_fft_in
- gr::gfdm::receiver_kernel_cc
  d_sc_fft_out
- gr::gfdm::receiver_kernel_cc
  d_sc_fft_plan
- gr::gfdm::receiver_kernel_cc
  d_sc_filtered
- gr::gfdm::receiver_kernel_cc
  d_sc_ifft_in
- gr::gfdm::receiver_kernel_cc
  d_sc_ifft_out
- gr::gfdm::receiver_kernel_cc
  d_sc_ifft_plan
- gr::gfdm::receiver_kernel_cc
  d_sc_postfilter
- gr::gfdm::receiver_kernel_cc
  demodulate_subcarrier
- gr::gfdm::receiver_kernel_cc
  fft_equalize_filter_downsample
- gr::gfdm::receiver_kernel_cc
  fft_filter_downsample
- gr::gfdm::receiver_kernel_cc
  filter_subcarriers_and_downsample_fd
- gr::gfdm::receiver_kernel_cc
  filter_superposition
- gr::gfdm::receiver_kernel_cc
  filter_taps
- gr::gfdm::receiver_kernel_cc
  generic_work
- gr::gfdm::receiver_kernel_cc
  generic_work_equalize
- gr::gfdm::receiver_kernel_cc
  gfdm_complex
- gr::gfdm::receiver_kernel_cc
  gfdm_kernel_utils
- gr::gfdm::receiver_kernel_cc
  ic_filter_taps
- gr::gfdm::receiver_kernel_cc
  initialize_fft
- gr::gfdm::receiver_kernel_cc
  initialize_taps_vector
- gr::gfdm::receiver_kernel_cc
  receiver_kernel_cc
- gr::gfdm::receiver_kernel_cc
  remove_sc_interference
- gr::gfdm::receiver_kernel_cc
  serialize_output
- gr::gfdm::receiver_kernel_cc
  sptr
- gr::gfdm::receiver_kernel_cc
  timeslots
- gr::gfdm::receiver_kernel_cc
  transform_subcarriers_to_td
- gr::gfdm::receiver_kernel_cc
  vectorize_2d
- gr::gfdm::receiver_kernel_cc
  ~gfdm_kernel_utils
- gr::gfdm::receiver_kernel_cc
  ~receiver_kernel_cc