Codes
The codes for most chapters are divided into three scripts:
Script-1 Co-located Transmitter and Receiver: This script handles both the transmission and reception of data using the same SDR. This setup doesn’t face issues like CFO and other hardware impairments but is suitable for users who have only one SDR available.
Script-2 Transmitter side implementation of the Tutorial: Transmitter Side Implementation of the Tutorial. This script is used to transmit the data generated.
Script-3 Receiver side implementation of the Tutorial: This script processes the received data using another SDR to extract the packet. The received signal is affected by path loss based on the Tx-Rx separation, multipath, Doppler, CFO, and other hardware impairments.
- Introduction to Software Defined Radios (SDRs) and Its Application Programming Interface
- 2. Analysis of Wireless Channel Spectrum using ADALM-Pluto SDR
- Wireless Spectrum Analysis based on Fast Fourier Transform techniques
- Transmitter-side: Wireless Spectrum Analysis based on Fast Fourier Transform techniques
- Receiver-side:Fast Fourier Transform based Spectrum Analysis
- 3. Coarse Downlink Time/OFDM frame Synchronization in 5G-Wireless Networks
- Downlink Time/Frame Synchronization using PSS in 5G Networks
- 3. Import Libraries
- 3. Emulation Parameters
- 3. Generate SSB Parameters
- Generate PSS
- Generate SSS
- Generate PBCH-DMRS
- Generate PBCH Payload
- Generate SSB
- Load SSB into SSB resource Grid
- 3. Construct Transmission Grid and Generate Time Domain Samples
- OFDM Modulation
- 3. SDR-Setup Configurations
- 3. Transmission: SDR RF Transmitter
- 3. Reception: SDR RF Receiver
- 3. Time Synchronization: Based on PSS Correlation
- 3. Frame Synchronization: Visualization
- 3. Saving Running frames
- BS Side Implementation-Downlink Time/Frame Synchronization using PSS in 5G Networks
- UE Side Implementation-Downlink Time/Frame Synchronization using PSS in 5G Networks
- Downlink Time/Frame Synchronization using PSS in 5G Networks
- 4. OFDM in 5G Networks
- OFDM in 5G Networks
- 4. Import Libraries
- 4. Emulation Parameters
- 4. Transmitter Implementation
- 4. Generate the SSB Grid for synchronization
- 4. PSS, SSS, PBCH, DMRS Generation
- 4. SSB Generation
- 4. Generate transmission Grid
- 4. OFDM Modulation: Transmitted SSB
- 4. SDR-Setup Configurations
- 4. Transmission
- 4. Reception
- 4. Receive Samples from SDR
- 4. Time Synchronization: Detection of PSS
- 4. OFDM Demodulation: Receiver
- 4. Quasi-realtime reception of OFDM Grid
- Transmitter side implementation: OFDM in 5G Networks
- Receiver side implementation: OFDM in 5G Networks
- OFDM in 5G Networks
- 5. Carrier frequency offset (CFO) Estimation and Correction in 5G networks
- 5. Carrier frequency offset estimation and correction in 5G networks
- 5. Import Libraries
- 5. Toolkit Libraries
- 5. Simulation Parameters
- 5. PBCH Payload Generation: MIB + ATI
- 5. PSS, SSS, PBCH, DMRS Generation
- 5. Constellation Diagram: Base Station
- 5. SSB Generation
- 5. OFDM Implementation: Transmission of SSB
- 5. SDR Setup
- 5. Transmission of samples
- 5. Receiver
- 5. Time Synchronization: Coarse Tuning
- 5. CFO Estimation
- 5. OFDM Demodulation
- 5. Extract SSB Grid
- 5. PBCH Processing
- 5. Constellation Diagram: User Equipment
- 5. Error vector magnitude (EVM)
- 5. Quasi-realtime: CFO Estimation and Reconstruction
- 5.1 Base-station side: Carrier frequency offset (CFO) estimation and correction in 5G networks
- 5. UE_Side: Carrier frequency offset (CFO) estimation and correction in 5G networks
- 5.2 Import Libraries
- 5.2 Toolkit Libraries
- 5.2 Simulation Parameters
- 5.2 TimeFrequency Parameters
- 5.2 SDR Setup
- 5.2 Receiver
- 5.2 Time Synchronization: Coarse Tuning
- 5.2 CFO Estimation
- 5.2 OFDM Demodulation
- 5.2 Extract SSB Grid
- 5.2 PBCH Processing
- 5.2 Constellation Diagram: User Equipment
- 5.2 Error vector magnitude (EVM)
- 5.2 Quasi-realtime: CFO Estimation and Reconstruction
- 5. Carrier frequency offset estimation and correction in 5G networks
- 6. Channel Estimation and Equalization for SSB-PBCH using PBCH-DMRS
- 6. Channel Estimation and Equalization for SSB-PBCH in 5G Networks
- 6. Import Libraries
- 6. Emulation Parameters
- 6. PBCH Payload Generation: MIB + ATI
- 6. PSS, SSS, PBCH, DMRS Generation
- 6. Constellation Diagram: Base Station
- 6. SSB Generation
- 6. OFDM Implementation– Transmission of SSB.
- 6. SDR Setup
- 6. Transmission
- 6. Receive Samples from SDR
- 6. Time Synchronization: Coarse Tuning
- 6. CFO Estimation
- 6. OFDM Demodulation
- 6. Extract SSB Grid
- 6. SSS and DMRS Parameter Detection
- 6. Channel Estimation and PBCH Symbol Equalization
- 6. PBCH Decoding
- 6. Constellation Diagram: UE
- 6. Checking whether CRC is correct
- 6. Quasi-realtime: CFO Estimation and Reconstruction
- 6. BS-Side: Channel Estimation and Equalization for SSB-PBCH in 5G Networks
- 6. UE-Side: Channel Estimation and Equalization for SSB-PBCH in 5G Networks
- 6.2 Import Libraries
- 6.2 Emulation Parameters
- 6.2 Time-frequency Parameter
- 6.2 SDR Setup
- 6.2 Receive Samples from SDR
- 6.2 Time Synchronization: Coarse Tuning
- 6.2 CFO Estimation
- 6.2 OFDM Demodulation
- 6.2 Extract SSB Grid
- 6.2 SSS and DMRS Parameter Detection
- 6.2 Channel Estimation and PBCH Symbol Equalization
- 6.2 PBCH Decoding
- 6.2 Constellation Diagram: UE
- 6.2 Checking whether CRC is correct
- 6.2 Quasi-realtime: CFO Estimation and Reconstruction
- 6. Channel Estimation and Equalization for SSB-PBCH in 5G Networks
- 7. PBCH and MIB in 5G Networks
- 7. Physical Broadcast Channel in 5G Networks
- 7. Import Libraries
- 7. Emulation Configurations
- 7. PBCH Payload Generation: MIB + ATI
- 7. PSS, SSS, PBCH, DMRS Generation
- 7. PBCH: Transmitter
- 7. Constellation Diagram: Base Station
- 7. SSB Generation
- 7. OFDM Implementation
- 7. SDR Setup
- 7. Transmission
- 7. Receive Samples from SDR
- 7. Time Synchronization: Coarse Tuning
- 7. CFO Estimation
- 7. OFDM Demodulation
- 7. Extract SSB Grid
- 7. PBCH Processing
- 7. Channel Estimation and PBCH Symbol Equalization
- 7. PBCH Decoding
- 7. PBCH Receiver: Components
- 7. Constellation Diagram: UE
- 7. Checking whether CRC is correct
- 7. MIB and ATI Parameters at User Equioment
- 7. Base-station side: Physical Broadcast Channel in 5G Networks
- 7. User equipment side: Physical Broadcast Channel in 5G Networks
- 7.2 Import Libraries
- 7.2 Emulation Configurations
- 7.2 Time Frequency Parameters
- 7.2 SDR Setup
- 7.2 Receive Samples from SDR
- 7.2 Time Synchronization: Coarse Tuning
- 7.2 CFO Estimation
- 7.2 OFDM Demodulation
- 7.2 Extract SSB Grid
- 7.2 PBCH Processing
- 7.2 Channel Estimation and PBCH Symbol Equalization
- 7.2 PBCH Decoding
- 7.2 PBCH Receiver: Components
- 7.2 Constellation Diagram: UE
- 7.2 Checking whether CRC is correct
- 7.2 MIB and ATI Parameters at User Equioment
- 7. Physical Broadcast Channel in 5G Networks
- 8. Blind Decoding of Physical Downlink Control Channel in 5G Networks
- 8. Blind Decoding Of Physical Downlink Control Channel on Plutto-SDR
- 8. Import Libraries
- 8. Emulation Configurations
- 8. Transmitter Implementation
- 8. Generate the SSB Grid for synchronization
- 8. CORESET and Search Space Set Parameters
- 8. Display Grids
- 8. Constellation Diagram
- 8. OFDM Modulation: Tx
- 8. SDR-Setup Configurations
- 8. Transmission: SDR RF Transmitter
- 8. Receiver Implementation
- 8. Reception: SDR RF Receiver
- 8. Time Synchronization: Based on PSS Correlation
- 8. OFDM Demodulation and SSB Extraction
- 8. SSB Grid: Transmitter and Receiver
- 8. Spectrum: Transmitted Grid and Received Grid
- 8. Parameter Estimation for SSB and PBCH
- 8. Channel Estimation and PBCH Symbol Equalization
- 8. PBCH Decoding and Constellation
- 8. Performance Verification
- 8. Channel Estimation and Equalization of PDCCH
- 8. Blind Decoding of PDCCH candidates
- 8. Quasi real time animation
- 8.1 Base station side: Blind Decoding Of Physical Downlink Control Channel on Plutto-SDR
- 8.2 User-Equipment side: Blind Decoding Of Physical Downlink Control Channel on Plutto-SDR
- 8.2 Import Libraries
- 8.2 Emulation Configurations
- 8.2 SDR-Setup Configurations
- 8.2 Receiver Implementation
- 8.2 Reception: SDR RF Receiver
- 8.2 Time-Frequency Parameters
- 8.2 Time Synchronization: Based on PSS Correlation
- 8.2 CFO Estimation
- 8.2 OFDM Demodulation and SSB Extraction
- 8.2 Spectrum: Received Grid
- 8.2 Parameter Estimation for SSB and PBCH
- 8.2 Channel Estimation and PBCH Symbol Equalization
- 8.2 PBCH Decoding and Constellation
- 8.2 CORESET and Search Space Parameters
- 8.2 Channel Estimation and Equalization of PDCCH
- Blind Decoding
- 8.2 Quasi-real-time simulation
- 8. Blind Decoding Of Physical Downlink Control Channel on Plutto-SDR
- 9. Data Communication in 5G Networks using Physical Downlink Shared Channel
- 9. Downlink Data Communication in 5G Networks
- 9. Import Python Libraries
- 9. 5G Toolkit Libraries
- 9. Emulation Parameters
- 9. PDSCH Transmitter Implementation
- 9. Generate the PDSCH related parameters: Use PDSCH Configurations
- 9. Generate the PDSCH Resource Grid
- 9. SSB Transmitter Implementation
- 9. Generate the SSB Resource Grid
- 9. SDR-Setup Configurations
- 9. Transmission: SDR RF Transmitter
- 9. Receiver Implementation: SSB
- 9. Reception: SDR RF Receiver
- 9. Time Synchronization: Based on PSS Correlation
- 9. PBCH Receiver
- 9. SSB Grid: Transmitter and Receiver
- 9. Spectrum: Transmitted Grid and Received Grid
- 9. PBCH Decoding and Constellation
- 9. Performance Verification
- 9. PDSCH Receiver Implementation
- 9. Key Performance Indicators
- Quasi-realtime simulation
- 9. Base-station side: Downlink Data Communication in 5G Networks
- 9.1. Import Python Libraries
- 9.1. 5G Toolkit Libraries
- 9.1. Emulation Parameters
- 9.1. PDSCH Transmitter Implementation
- 9.1. Generate the PDSCH related parameters: Use PDSCH Configurations
- 9.1. Generate the PDSCH Resource Grid
- 9.1. SSB Transmitter Implementation
- 9.1. Generate the SSB Resource Grid
- 9.1. SDR-Setup Configurations
- 9.1. Transmission: SDR RF Transmitter
- 9. UE Side: Downlink Data Communication in 5G Networks
- 9.2. Import Python Libraries
- 9.2. 5G Toolkit Libraries
- 9.2. Emulation Parameters
- Time-Frequency Parameters
- 9.2. Generate the PDSCH related parameters: Use PDSCH Configurations
- 9.2. SDR-Setup Configurations
- 9.2. Receiver Implementation: SSB
- 9.2. Reception: SDR RF Receiver
- 9.2. Time Synchronization: Based on PSS Correlation
- 9.2. PBCH Receiver
- 9.2. SSB Grid: Transmitter and Receiver
- 9.2. Spectrum: Transmitted Grid and Received Grid
- 9.2. PBCH Decoding and Constellation
- 9.2. PDSCH Receiver Implementation
- 9.2. Key Performance Indicators
- 9.2. Quasi-realtime simulation
- 9. Downlink Data Communication in 5G Networks
- 10. MIMO-OFDM in 5G Networks
- 10. MIMO-OFDM in Spatial Multiplexing Mode in 5G Networks
- 10. Import Python Libraries
- 10. 5G Toolkit Libraries
- 10. Emulation Parameters
- 10. PDSCH Transmitter Implementation
- 10. Generate the PDSCH related parameters: Use PDSCH Configurations
- 10. Generate the PDSCH Resource Grid
- 10. SSB Transmitter Implementation
- 10. Generate the SSB Resource Grid
- 10. Precoding and Beamforming Architecture
- 10. SDR-Setup Configurations
- 10. Transmission: SDR RF Transmitter
- 10. Receiver Implementation: SSB
- 10. Reception: SDR RF Receiver
- 10. Time Synchronization: Based on PSS Correlation
- 10. PBCH Receiver
- 10. SSB Grid: Transmitter and Receiver
- 10. Spectrum: Transmitted Grid and Received Grid
- 10. PBCH Decoding and Constellation
- 10. Performance Verification
- 10. PDSCH Receiver Implementation
- 10. Key Performance Indicators
- 10. Quasi-realtime simulation: MIMO in Spatial Multiplexing Mode
- 10 MIMO-OFDM in Spatial Diversity Mode in 5G Networks
- 10.1 Import Python Libraries
- 10.1. 5G Toolkit Libraries
- 10.1. Emulation Parameters
- 10.1. PDSCH Transmitter Implementation
- 10.1. Generate the PDSCH related parameters: Use PDSCH Configurations
- 10.1. Generate the PDSCH Resource Grid
- 10.1. SSB Transmitter Implementation
- 10.1. Generate the SSB Resource Grid
- 10.1 Precoding and Beamforming Architecture
- 10.1. SDR-Setup Configurations
- 10.1. Transmission: SDR RF Transmitter
- 10.1. Receiver Implementation: SSB
- 10.1. Reception: SDR RF Receiver
- 10.1. Time Synchronization: Based on PSS Correlation
- 10.1. PBCH Receiver
- 10.1. SSB Grid: Transmitter and Receiver
- 10.1. Spectrum: Transmitted Grid and Received Grid
- 10.1. PBCH Decoding and Constellation
- 10.1. Performance Verification
- 10.1. PDSCH Receiver Implementation
- 10.1. Key Performance Indicators
- 10.1. Quasi-realtime simulation: MIMO in Spatial Diversity Mode
- 10. MIMO-OFDM in Spatial Multiplexing Mode in 5G Networks
- 11. Effect of System Parameters on the Performance of 5G Networks
- 11.1 Effect of Bandwidth on 5G Networks Performance
- 11.1. Import Python Libraries
- 11.1. 5G Toolkit Libraries
- 11.1. Emulation Parameters
- 11.1. Time Frequency Parameters
- 11.1. PDSCH Transmitter Implementation
- 11.1. Generate the PDSCH related parameters: Use PDSCH Configurations
- 11.1. Generate the PDSCH Resource Grid
- 11.1. SSB Transmitter Implementation
- 11.1. Generate the SSB Resource Grid
- 11.1.Precoding and Beamforming Architecture
- 11.1. SDR-Setup Configurations
- 11.1. Transmission: SDR RF Transmitter
- 11.1. Receiver Implementation: SSB
- 11.1. Reception: SDR RF Receiver
- 11.1. Time Synchronization: Based on PSS Correlation
- 11.1. PBCH Receiver
- 11.1. SSB Grid: Transmitter and Receiver
- 11.1. Spectrum: Transmitted Grid and Received Grid
- 11.1. PBCH Decoding and Constellation
- 11.1. Performance Verification
- 11.1. PDSCH Receiver Implementation
- 11.1. Key Performance Indicators
- 11.1. Bandwidth vs Network Throughput
- 11.3 Effect of Modulation Order and Coding Rate (MCS) on 5G Networks Performance
- 11.3. Import Python Libraries
- 11.3. 5G Toolkit Libraries
- 11.3. Emulation Parameters
- 11.3. Time Frequency Parameters
- 11.3. PDSCH Transmitter Implementation
- 11.3. Generate the PDSCH related parameters: Use PDSCH Configurations
- 11.3. Generate the PDSCH Resource Grid
- 11.3. SSB Transmitter Implementation
- 11.3. Generate the SSB Resource Grid
- 11.3. SDR-Setup Configurations
- 11.3. Receiver Implementation: SSB
- 11.3. Reception: SDR RF Receiver
- 11.3. Time Synchronization: Based on PSS Correlation
- 11.3. PBCH Receiver
- 11.3. SSB Grid: Transmitter and Receiver
- 11.3. Spectrum: Transmitted Grid and Received Grid
- 11.3. PBCH Decoding and Constellation
- 11.3. Performance Verification
- 11.3. PDSCH Receiver Implementation
- 11.3. Key Performance Indicators
- 11.3. MCS Index (\(Q_m, r\)) vs Network Throughput
- 11.1 Effect of Bandwidth on 5G Networks Performance