On-air transmitted and received 5G NR data

Citation Author(s):
BHASKAR
BANERJEE
University of Oulu
ZAHEER
KHAN
University of Oulu
JANNE
LEHTOMÄKI
University of Oulu
Submitted by:
Bhaskar Banerjee
Last updated:
Thu, 01/13/2022 - 17:01
DOI:
10.21227/w8m2-jt42
Data Format:
License:
0
0 ratings - Please login to submit your rating.

Abstract 

We have designed a ZYNQ SDR-based platform that utilizes real on-air 5G new radio (NR) signals to develop and test the performance of channel estimation for wireless channel estimators. On-air samples are obtained via the SDR platform to determine the unknown values of the channel response using known values at the pilot locations. We have collected extensive channel estimation data under a variety of scenarios: 1) line-of-sight (LOS), 2) LOS multipath and 3) non-LOS multipath. We have considered 2m,4m,6m test cases to simulate meter-level indoor positioning for indoor scenarios.

 

Instructions: 

Transmission Dataset Details:

 

This dataset is 5G NR data for 1 slot period transmitted and received using Software Defined Radio hardware (SDR). Transmitted data is created using the Matlab 5G toolbox. The slot period of the resource grid with 51 resource blocks is chosen for PDSCH data forming a 612-by-14 matrix of resource elements. Only DMRS symbols are used as pilot symbols while other symbols are kept 0. A slot-wise type-A mapping type was chosen with the DMRS symbol position l0 set to be 2. A single DRMS symbol with an additional position of 3 was chosen. The data symbols are kept 0. PDSCH grid details is given below

 

 

                     PRBSet: [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 … ]

                  SymbolSet: [0 1 2 3 4 5 6 7 8 9 10 11 12 13]

                 EnableHARQ: 1

                    NLayers: 1

             TargetCodeRate: 0.4785

                 Modulation: '16QAM'

                    PortSet: 0

           PDSCHMappingType: 'A'

          DMRSTypeAPosition: 2

                 DMRSLength: 1

     DMRSAdditionalPosition: 3

      DMRSConfigurationType: 2

    NumCDMGroupsWithoutData: 0

                   NIDNSCID: 1

                      NSCID: 0

                   Reserved: [1×1 struct]

       VRBToPRBInterleaving: 0

                       RNTI: 1

                  Xoh_PDSCH: 0

 

 

The PDSCH structure information is shown below:

 

 

            NCellID: 2

    SubcarrierSpacing: 30

         CyclicPrefix: 'normal'

            NSizeGrid: 51

           NStartGrid: 0

                NSlot: 0

               NFrame: 0

 

   Read-only properties:

       SymbolsPerSlot: 14

     SlotsPerSubframe: 2

        SlotsPerFrame: 20

 

 

SDR settings and information:

 

SDR in the form of AD9361 transceiver device along with a Xilinx Zynq-7000 SoC in ZedBoard was used. 2 SDRs are used together, one for transmission and another for the reception. On the transmitter side, 1  the PDSCH data was stored in the DRAM memory of the Zynq-7000 SoC. The programmed sample rate was 15.368 Msps and on-air bandwidth of bandwidth on-air to 9.037204 MHz was maintained. On the reception side, data is stored in DRAM memory after the reception. The same sample rate and bandwidth settings are used as used for transmission. The local oscillator frequency used for transmission and reception is 2.489 GHZ. Same TX data is repeatedly transmitted. Data is received for 100 slot periods. Collected data is transferred to Matlab using UART. The timing offset of the received data is calculated using correlation against TX data and offset is compensation. 100 slot period of data is expanded to 250 slot period by replicating and stored in .mat files in matrix of size = 15360*250.

 

Received data scenarios : 

 

Data is collected for multiple channel fading scenarios. Since the data usage is for channel estimation for fading channels in meter-level indoor scenarios, data is collected by keeping the receiver SDR 2m,4m,6m apart in LOS and non-LOS scenarios.The transmitted data is stored in mat file. Following is the file name of the transmitted data and instructions to use it:

 txWaveform.mat

The file can be loaded in Matlab with the following command

load('txWaveform.mat')

The Matlab variable that contains the data is named: txWaveform. The data can be plotted to check against TX waveform image by following command in Matlab

 plot(abs(txWaveform))

 

 

 

The received data for 2m, 4m, 6m LOS, and non-LOS scenarios are stored in mat files. Following are the file names for various scenarios and instructions to use them:

 

1.) 2m LOS test case: rxWaveform_2m.mat 

The file can be loaded in Matlab with the following command

load('rxWaveform_2m.mat')

The Matlab variable that contains the data is named: rxWaveform. The data can be plotted to check against RX waveform for 2 m image by following command in Matlab

plot(abs(rxWaveform(:,1)))

 

 

 

2.) 4m LOS test case: rxWaveform_4m.mat  

The file can be loaded in Matlab with the following command

load('rxWaveform_4m.mat')

Matlab variable that contains the data is named: rxWaveform_4m.  The data can be plotted to check against RX waveform for 4 m image by following command in Matlab

plot(abs(rxWaveform_4m(:,1)))

 

3.) 4m non-LOS test case: rxWaveform4m_nonLOS.mat 

The file can be loaded in Matlab with the following command 

load('rxWaveform4m_nonLOS.mat')

Matlab variable that contains the data is named: rxWaveform4m_nonLOS.  The data can be plotted to check against RX waveform for 4 m non-LOS image by following command in Matlab

plot(abs(rxWaveform4m_nonLOS(:,1)))

 

4.) 6m LOS test case: rxWaveform_6m.mat 

The file can be loaded in Matlab with the following command

load('rxWaveform_6m.mat')

Matlab variable that contains the data is named: rxWaveform_6m.  The data can be plotted to check against RX waveform for 6 m image by following command in Matlab

plot(abs(rxWaveform_6m(:,1)))

 

5.) 6m non-LOS test case: rxWaveform_6m_nonLOS.mat 

The file can be loaded in Matlab with the following command

load('rxWaveform_6m_nonLOS.mat')

Matlab variable that contains the data is named: rxWaveform_6m_nonLOS. The data can be plotted to check against RX waveform for 6 m non-LOS image by following command in Matlab

plot(abs(rxWaveform_6m(:,1)))