19 #include "../../variables/common_structures/common_structures.h" 25 namespace signal_processing {
27 void channelEstimation(complex<float> * pilots, complex<float> * reference_pilot, vector<vector<int>> &pilot_indexes, vector<vector<complex<float>>> &coefficients,
float &snr,
int num_sc,
int num_symbols,
int pilot_size);
29 void hard_demodulation(vector<complex<float>> signal,
int * bits,
int signal_length,
int modulation_scheme);
31 void soft_demodulation(vector<complex<float>> signal,
double * soft_bits,
int signal_length,
int modulation_scheme);
33 void compute_fine_frequency_offset(vector<complex<float>> input_signal,
int symbol_duration,
int fft_size,
int cp_length,
int scs,
float &output,
int num_symbols);
35 void transpose_signal(vector<complex<float>> *input_signal,
float freq_offset,
int sample_rate,
int input_length);
37 void channel_demapper(vector<vector<complex<float>>> &input_signal, vector<vector<vector<int>>> &ref, complex<float> **output_channels, vector<vector<vector<int>>> &output_indexes,
int num_channels,
int num_symbols,
int num_sc);
45 void get_pdsch_dmrs_symbols(
const string &type,
int duration,
int additionnal_position,
int l0,
int **output,
int &size);
47 void compute_cp_lengths(
int scs,
int nfft,
int is_extended_cp,
int num_symb_per_subframes,
int *cp_lengths,
int *cum_sum_cp_lengths);
49 void compute_phase_decomp(
int* cp_lengths,
int* cum_sum_symb,
float sampling_rate,
float f0,
int num_symb_per_subframes, complex<float>* phase_decomp_factor);
51 int compute_nre(
int num_symb_pdsch,
int num_dmrs_symb);
53 void fft(vector<complex<float>> time_domain_signal, vector<vector<complex<float>>> &output_signal,
int fft_size,
int *cp_lengths,
int *cum_sum_symb,
int num_symbols,
int num_sc_output,
int first_symb_index,
int offset);
55 void get_candidates_frames_indexes(vector<vector<int>> &frame_indexes,
int *frame_numbers,
int sfn,
int index_first_pss,
int num_samples_before_pss,
int frame_size);
void compute_phase_decomp(int *cp_lengths, int *cum_sum_symb, float sampling_rate, float f0, int num_symb_per_subframes, complex< float > *phase_decomp_factor)
void get_candidates_frames_indexes(vector< vector< int >> &frame_indexes, int *frame_numbers, int sfn, int index_first_pss, int num_samples_before_pss, int frame_size)
void fft(vector< complex< float >> time_domain_signal, vector< vector< complex< float >>> &output_signal, int fft_size, int *cp_lengths, int *cum_sum_symb, int num_symbols, int num_sc_output, int first_symb_index, int offset)
void soft_demodulation(vector< complex< float >> signal, double *soft_bits, int signal_length, int modulation_scheme)
void get_pdsch_dmrs_symbols(const string &type, int duration, int additionnal_position, int l0, int **output, int &size)
free5GRAN::pdcch_t0ss_monitoring_occasions compute_pdcch_t0_ss_monitoring_occasions(int pdcch_config, int pbch_scs, int common_scs, int i)
void transpose_signal(vector< complex< float >> *input_signal, float freq_offset, int sample_rate, int input_length)
void compute_rb_start_lrb_dci(int RIV, int n_size_bwp, int &lrb, int &rb_start)
void channelEstimation(complex< float > *pilots, complex< float > *reference_pilot, vector< vector< int >> &pilot_indexes, vector< vector< complex< float >>> &coefficients, float &snr, int num_sc, int num_symbols, int pilot_size)
int compute_nre(int num_symb_pdsch, int num_dmrs_symb)
void channel_demapper(vector< vector< complex< float >>> &input_signal, vector< vector< vector< int >>> &ref, complex< float > **output_channels, vector< vector< vector< int >>> &output_indexes, int num_channels, int num_symbols, int num_sc)
double compute_freq_from_gscn(int gscn)
void compute_cp_lengths(int scs, int nfft, int is_extended_cp, int num_symb_per_subframes, int *cp_lengths, int *cum_sum_cp_lengths)
void compute_fine_frequency_offset(vector< complex< float >> input_signal, int symbol_duration, int fft_size, int cp_length, int scs, float &output, int num_symbols)
void hard_demodulation(vector< complex< float >> signal, int *bits, int signal_length, int modulation_scheme)