Steps for Implementing SIB1 Transmission and Reception over two Antennas with USRP Hardware
1. Connect one USRP to a virtual machine which acts as a transmitter whereas the other USRP to another virtual machine which acts as a receiver. In addition to this, connect a spectrum analyzer at the receiver side. The transmitter uses two channels of USRP X310 to transmit an LTE downlink signal which requires two antennas.
2. Copy ‘sdruLTE2x2SIB1Tx’ MATLAB scripts on the transmitter machine and ‘sdruLTE2x2SIB1Rx.m’, ‘hPDSCHConfiguration.m’ and ‘hSIB1RecoveryExamplePlots.m’ at the receiver machine, respectively. In both the scripts change the variable value ‘radio.CenterFrequency’ to 915e6.
3. Type ‘findsdru’ in the command window at both transmitter and receiver end. The status should be ‘Success’ as shown in the screenshot below.
4. Run the ‘sdruLTE2x2SIB1Tx’ and then ‘sdruLTE2x2SIB1Rx.m’ scripts simultaneously.
5. Check the transmitted signal on the spectrum analyzer as shown in the figure below.
6. At the transmitter end, you will observe the spectrum as shown in the below figure:
7.Similarly, at the receiver end you will observe the same spectrum of the input signal as shown below. You can also verify the same in the command window which shows ‘Plotting received signal spectrum…’
8. The code then checks if the received signal is at desired sample rate and thus if resampling is required. If the condition is fulfilled then it prints the below statement in the command window and specifies the LTE sampling rate (In this case, 1.92Ms/s):
’Resampling not required; received signal is at desired sampling rate for cell search / MIB decoding (1.920Ms/s).’
Frequency offset estimation and correction:
9. The frequency offset is estimated by means of correlation of the cyclic prefix and in order to compensate for any frequency offset, it uses inbuilt functions ‘lteFrequencyOffset’ and ‘lteFrequencyCorrect’ and displays the value in command window as mentioned below:
‘Performing frequency offset estimation...
Frequency offset: 405.556Hz’
Cell Search and Synchronization:
10. By using 'lteCellSearch' function, the cell identity and timing offset to the first frame head is obtained. A plot of the correlation between the received signal and the PSS/SSS for the detected cell identity is produced. The following command and output is received.
PBCH Demodulation, BCH Decoding, MIB parsing:
11. The code then performs OFDM demodulation and decodes MIB with the number of cell-specific reference signal ports using the ' ltePBCHDecode' function. After that it again displayed the cell-wide settings as shown below:
OFDM Modulation on Full Bandwidth:
12. Now that the signal bandwidth is known, the signal is resampled to the nominal sampling rate used by LTE Toolbox for that bandwidth using ‘'lteOFDMModulate' function. Frequency offset estimation and correction is performed on the resampled signal. Timing synchronization and OFDM demodulation are then performed and displayed on the command window:
SIB1 Decoding:
13. SIB is transmitted in subframe 5 of every even frame, so the input signal is first checked to establish that at least one occurrence of SIB1 is present. If the frame number is odd, then it displays the same in the command window, and if not it advances by 1 frame, provided the data is enough. Otherwise, the code is terminated. In this case, the frame 103 is skipped and SIB1 is decoded from frame 104. The HARQ buffer is reset with each new set of 8 frames as the SIB1 information may be different.The code then performs channel estimation and PCFICH, CFI and is decoded.
14. The PDCCH is then decoded after DCI and constellation diagram of PDCCH is plotted as shown. Thus, for each SIB1 subframe, the channel estimate magnitude response is plotted, as is the constellation of the received PDCCH.
15. The PDSCH configuration after DCI decoding are calculated and displayed in the command window. The DCI message is then parsed to give the configuration of the corresponding PDSCH carrying SIB1, the PDSCH is demodulated and finally the received bits are DL-SCH decoded to yield the SIB1 bits. PDSCH EVM is also calculated and printed in the command window.
16. If SIB1 CRC is zero, then the successful SIB1 recovery message is printed, else it gives a decoding failed message. The channel magnitude plot is obtained as shown below:
17. The same steps are performed starting from step 13 to step 16 in a loop for each occurrence of a subframe carrying SIB1 in the received signal. Finally, a plot for channel estimation is obtained for the first OFDM symbol.
18. Thus, in this example, MIMO transmission is performed on four links between two transmit antennas and two receive antennas.
References: https://www.mathworks.com/help/supportpkg/usrpradio/examples/lte-sib1-transmission-over-two-antennas.html