22#ifndef INCLUDED_GFDM_AUTO_CROSS_CORR_MULTICARRIER_SYNC_CC_H
23#define INCLUDED_GFDM_AUTO_CROSS_CORR_MULTICARRIER_SYNC_CC_H
28#include <boost/shared_ptr.hpp>
44 typedef boost::shared_ptr<auto_cross_corr_multicarrier_sync_cc>
sptr;
67 float* d_abs_auto_corr;
73 float d_preamble_attenuation;
75 fftwf_plan d_fxc_plan;
76 fftwf_plan d_ixc_plan;
83 float d_reference_preamble_energy;
85 float calculate_normalized_cfo(
const gfdm_complex corr_val);
86 void adjust_buffer_size(
const int ninput_size);
Simplified version of "Improved Preamble-Aided Timing Estimation for OFDM Systems".
Definition: auto_cross_corr_multicarrier_sync_cc.h:41
int find_peak(float *vals, const int ninput_size)
float frame_phase()
Definition: auto_cross_corr_multicarrier_sync_cc.h:56
std::complex< float > gfdm_complex
Definition: auto_cross_corr_multicarrier_sync_cc.h:43
boost::shared_ptr< auto_cross_corr_multicarrier_sync_cc > sptr
Definition: auto_cross_corr_multicarrier_sync_cc.h:44
int detect_frame_start(const gfdm_complex *p_in, int ninput_size)
float last_cfo()
Definition: auto_cross_corr_multicarrier_sync_cc.h:55
float calculate_preamble_attenuation(const gfdm_complex *p_in)
void fixed_lag_auto_correlate(gfdm_complex *p_out, const gfdm_complex *p_in, const int ninput_size)
float preamble_attenuation()
Definition: auto_cross_corr_multicarrier_sync_cc.h:57
auto_cross_corr_multicarrier_sync_cc(int subcarriers, int cp_len, std::vector< gfdm_complex > preamble)
int subcarriers()
Definition: auto_cross_corr_multicarrier_sync_cc.h:58
int cp_len()
Definition: auto_cross_corr_multicarrier_sync_cc.h:59
void normalize_power_level(gfdm_complex *p_out, const gfdm_complex *p_in, const float norm_factor, const int ninput_size)
void cross_correlate_preamble(gfdm_complex *p_out, const gfdm_complex *p_in, const int ninput_size)
~auto_cross_corr_multicarrier_sync_cc()
<+description+>
Definition: gfdm_kernel_utils.h:40
Definition: add_cyclic_prefix_cc.h:30