LTE: Downlink and Uplink decoding procedure
30 views (last 30 days)
I got the code how to decode DL-SCH and I got DCI 0/4 formats (UL grant), but what is the procedure for DL and UL decoding via Matlab?
I am refering to theory at sharetechnote slides.
If I am iterating every SFN and internal loop for each subframe for DL decoding, then where I should insert a function to decode UL signal?
rxGrid = lteOFDMDemodulate(enb, dlWaveform);
while (size(rxGrid,2) > 0)
% iterate every SFN
for subframeIdx = 0:9
% iterate every subframe and detect DCI and decode it
% on every 4th SFN I Have MIB, and every even I have SIB1
% then I have SIB2 where I have params for UL PUCCH, PRACH etc.
% but I need to use ASN.1 decoder (or wireshark LTE dissector) to get real values from symbols.
if UE.DCI.Format == "Format0"
% this is UL Grant. What should I do with this subframe?
rxGridUl = lteSCFDMADemodulate(FRC,ulWaveform);
% ??? how can I properly use rxGridUl to decode UL-SCH, RACH channels?
Kirsten Hart on 3 Oct 2022
Where and how UL decoding fits depends on several factors, including where we are looking at FDD or TDD transmission. In the former case, uplink transmission is on a different frequency, whereas it is on the same frequency in the latter case. This assumes that the waveform is captured at a location where you can hear both the uplink and the downlink, which is not always the case.
In general, if you are trying to blindly decode UL information, you should first decode DCI format 0 on the downlink and extract the UL grant information. You can assume that 4 subframes later (at least for FDD), the UE replied with the requested transmission. This is when you want to configure the receive parameters for PUSCH demodulation and decoding and process the corresponding subframe.
For an example of receiver for PUSCH demodulation refer to the following MathWorks documentation example:
PRACH demodulation is completely separate from PUSCH or PDCCH. For an example of PRACH detection refer to the following MathWorks documentation example: