free5GRAN  V1.0
free5GRAN::phy::synchronization Namespace Reference

Functions

void search_pss (int &n_id_2, int &synchronisation_index, float &peak_value, int cp_length, vector< complex< float >> &buff, int fft_size)
 
void cross_correlation (vector< complex< float >> in1, vector< complex< float >> in2, complex< float > *out, int size1, int size2)
 
void get_sss (int &n_id_1, float &peak_value, vector< complex< float >> &buff, int fft_size, int n_id_2)
 
complex< float > correlate (vector< complex< float >> in1, int *in2, int size)
 

Function Documentation

◆ correlate()

complex< float > free5GRAN::phy::synchronization::correlate ( vector< complex< float >>  in1,
int *  in2,
int  size 
)

Simple correlation between two signals

Parameters
[in]in1Signal 1
[in]in2Signal 2
[in]sizeSignals size
Returns
Complex correlation value

Definition at line 306 of file synchronization.cpp.

◆ cross_correlation()

void free5GRAN::phy::synchronization::cross_correlation ( vector< complex< float >>  in1,
vector< complex< float >>  in2,
complex< float > *  out,
int  size1,
int  size2 
)

Perform cross correlation (i.e. moving window correlation) between signal 1 and signal 2

Parameters
[in]in1Signal 1
[in]in2Signal 2
[out]outCorrelation result
[in]size1Signal 1 size
[in]size2Signal 2 size

Definition at line 196 of file synchronization.cpp.

◆ get_sss()

void free5GRAN::phy::synchronization::get_sss ( int &  n_id_1,
float &  peak_value,
vector< complex< float >> &  buff,
int  fft_size,
int  n_id_2 
)

Search for SSS sequence value.

Details:

  • Retrieve frequency domain input signal
  • Generate 336 possible freq domain SSS signals for N_ID_1 in [0,335]
  • Correlate every signals to input freq domain signal
  • Return N_ID_1 with highest correlation
Parameters
[out]n_id_1N_ID_1 with highest correlation peak
[out]peak_valuePeak value
[in]buffInput IQ signal
[in]fft_sizeFFT size
[in]n_id_2N_ID_2 value computed by search_pss function

Definition at line 233 of file synchronization.cpp.

◆ search_pss()

void free5GRAN::phy::synchronization::search_pss ( int &  n_id_2,
int &  synchronisation_index,
float &  peak_value,
int  cp_length,
vector< complex< float >> &  buff,
int  fft_size 
)

Search for PSS correlation peak inside a signal.

Details:

  • Generating the three possible PSS sequences (for N_ID_2 in [0,1,2])
  • Performing iFFT to retreive Time domain PSS sequence
  • Cross-correlation between received signal and three time domain PSS signals
  • Return PSS sequence with highest correlation peak.
Parameters
[out]n_id_2Returned N_ID_2
[out]synchronisation_indexSynchronization index corresponding to correlation peak
[out]peak_valuePeak height
[in]cp_lengthCyclic prefix length
[in]buffInput IQ signal
[in]fft_sizeFFT size and symbol size

Definition at line 32 of file synchronization.cpp.