#include <phy.h>
Definition at line 27 of file phy.h.
 
◆ phy() [1/2]
      
        
          | phy::phy  | 
          ( | 
          rf *  | 
          rf_dev,  | 
        
        
           | 
           | 
          double  | 
          ssb_period,  | 
        
        
           | 
           | 
          int  | 
          fft_size,  | 
        
        
           | 
           | 
          int  | 
          scs,  | 
        
        
           | 
           | 
          free5GRAN::band  | 
          band_obj  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
- Parameters
 - 
  
    | [in] | rf_dev | RF device. (Only USRP B210 is currently supported)  | 
    | [in] | ssb_period | SSB periodicity. Default value is 0.02 (20 ms)  | 
    | [in] | fft_size | FFT/iFFT size. Represents the total number of os subcarriers to be decoded  | 
    | [in] | scs | Subcarrier spacing  | 
    | [in] | band_obj | Band object for getting Lmax value | 
  
   
Definition at line 41 of file phy.cpp.
 
 
◆ phy() [2/2]
◆ cell_synchronization()
      
        
          | int phy::cell_synchronization  | 
          ( | 
          float &  | 
          received_power | ) | 
           | 
        
      
 
Perform time synchronization
- PSS cross-correlation to retrieve N_ID_2
 
- SSS correlation to retrieve N_ID_1
 
- PCI computation based on N_ID_1 and N_ID_2
 
- Parameters
 - 
  
    | [in] | received_power | PSS received power. Used for power ramping. | 
  
   
Definition at line 60 of file phy.cpp.
 
 
◆ extract_pbch()
      
        
          | int phy::extract_pbch  | 
          ( | 
           | ) | 
           | 
        
      
 
Time resynchronization, frequency synchronization, PBCH extraction and decoding.
- Getting 3ms signal from RF device
 
- PSS cross-correlation to retrieve N_ID_2
 
- SSS correlation to retrieve N_ID_1
 
- PCI computation based on N_ID_1 and N_ID_2
 
- Function ends if recomputed PCI differs from to initially computed one
 
- Fine frequency synchronization by correlating cyclic prefixes and corresponding symbol part
 
- Signal extraction and FFT
 
- Resource element de-mapper
 
- Channel estimation based on different values of i_ssb
 
- Channel equalization based on best SNR value
 
- PBCH decoding
 
- BCH decoding
 
- MIB parsing
 
Definition at line 188 of file phy.cpp.
 
 
◆ extract_pdsch()
      
        
          | void phy::extract_pdsch  | 
          ( | 
           | ) | 
           | 
        
      
 
PDSCH extraction, PDSCH decoding, DL-SCH decoding and SIB1 parsing
- Parameters extraction from DCI and standard
 
- Phase de-compensation. Looping over different possible phase compensation:
- Signal extraction, FFT and resource element de-mapper
 
- Channel estimation & equalization
 
- PDSCH decoding
 
- DL-SCH decoding
 
- If CRC is validated, phase de-compensation is validated and functions continues. Otherwise, another phase de-compensation is tried.
 
 
- SIB1 parsing using ASN1C
 
Definition at line 894 of file phy.cpp.
 
 
◆ getSib()
      
        
          | BCCH_DL_SCH_Message_t * phy::getSib  | 
          ( | 
           | ) | 
           | 
        
      
 
 
◆ getSIB1RV()
◆ parse_dci_1_0_si_rnti()
Parse DCI informations 
- Parameters
 - 
  
    | [in] | dci_bits | DCI decoded bits  | 
    | [in] | freq_domain_ra_size | Number of bits used for frequency allocation in DCI  | 
    | [out] | dci | Filled DCI object | 
  
   
Definition at line 861 of file phy.cpp.
 
 
◆ print_cell_info()
      
        
          | void phy::print_cell_info  | 
          ( | 
           | ) | 
           | 
        
      
 
Print cells global informations and MIB.
Definition at line 476 of file phy.cpp.
 
 
◆ print_dci_info()
      
        
          | void phy::print_dci_info  | 
          ( | 
           | ) | 
           | 
        
      
 
Print DCI decoded informations
Definition at line 841 of file phy.cpp.
 
 
◆ print_sib1()
◆ reconfigure()
      
        
          | void phy::reconfigure  | 
          ( | 
          int  | 
          fft_size | ) | 
           | 
        
      
 
 
◆ search_pdcch()
      
        
          | void phy::search_pdcch  | 
          ( | 
          bool &  | 
          validated | ) | 
           | 
        
      
 
PDCCH config extraction, PDCCH blind search and DCI decoding
3GPP standard: TS 38.213 13
- Read PDCCH config from MIB
 
- Detect frame beginning
 
- Select frame containing PDCCH and PDSCH based of SFN
 
- Frequency calibration to retrieve center on CORESET0
 
- Compute CCE to REG mapping
 
- Blind search DCI decoding over different candidates:
- Select a candidate
 
- Perform resource element de-mapping and FFT
 
- Channel estimation & equalization
 
- PDCCH decoding
 
- DCI decoding
 
- If CRC is validated, candidate is selected and function ends
 
- Otherwise, function continues with another candidates
 
 
- Parameters
 - 
  
    | [out] | dci_found | returns true if blind decode succeeds. | 
  
   
Definition at line 515 of file phy.cpp.
 
 
◆ band_object
Definition at line 39 of file phy.h.
 
 
◆ buff
  
  
      
        
          | std::vector<std::complex<float> > phy::buff | 
         
       
   | 
  
private   | 
  
 
Definition at line 43 of file phy.h.
 
 
◆ cell_confirmed
Definition at line 35 of file phy.h.
 
 
◆ common_cp_length
  
  
      
        
          | int phy::common_cp_length | 
         
       
   | 
  
private   | 
  
 
Definition at line 32 of file phy.h.
 
 
◆ crc_validated
Definition at line 35 of file phy.h.
 
 
◆ dci_1_0_si_rnti
Definition at line 40 of file phy.h.
 
 
◆ fft_size
Definition at line 34 of file phy.h.
 
 
◆ frame_data
  
  
      
        
          | std::vector<std::complex<float> > phy::frame_data | 
         
       
   | 
  
private   | 
  
 
Definition at line 37 of file phy.h.
 
 
◆ frame_size
Definition at line 32 of file phy.h.
 
 
◆ freq_offset
Definition at line 36 of file phy.h.
 
 
◆ i_b_ssb
Definition at line 32 of file phy.h.
 
 
◆ i_ssb
Definition at line 32 of file phy.h.
 
 
◆ index_first_pss
Definition at line 32 of file phy.h.
 
 
◆ is_extended_cp
Definition at line 32 of file phy.h.
 
 
◆ l_max
Definition at line 32 of file phy.h.
 
 
◆ max_snr
Definition at line 36 of file phy.h.
 
 
◆ mib_bits
Definition at line 32 of file phy.h.
 
 
◆ mib_object
Definition at line 38 of file phy.h.
 
 
◆ mu
Definition at line 32 of file phy.h.
 
 
◆ n_id_1
Definition at line 32 of file phy.h.
 
 
◆ n_id_2
Definition at line 32 of file phy.h.
 
 
◆ n_size_bwp
Definition at line 32 of file phy.h.
 
 
◆ num_slots_per_frame
  
  
      
        
          | int phy::num_slots_per_frame | 
         
       
   | 
  
private   | 
  
 
Definition at line 32 of file phy.h.
 
 
◆ pci
Definition at line 32 of file phy.h.
 
 
◆ pdcch_ss_mon_occ
Definition at line 41 of file phy.h.
 
 
◆ rf_device
Definition at line 31 of file phy.h.
 
 
◆ scs
Definition at line 32 of file phy.h.
 
 
◆ sib1
  
  
      
        
          | BCCH_DL_SCH_Message_t* phy::sib1 =0 | 
         
       
   | 
  
private   | 
  
 
Definition at line 44 of file phy.h.
 
 
◆ ss_pwr
Definition at line 45 of file phy.h.
 
 
◆ ssb_period
Definition at line 33 of file phy.h.
 
 
◆ time_first_pss
  
  
      
        
          | std::chrono::time_point<std::chrono::high_resolution_clock> phy::time_first_pss | 
         
       
   | 
  
private   | 
  
 
Definition at line 42 of file phy.h.
 
 
The documentation for this class was generated from the following files: