Reserved PRB in PDSCH object from 5G toolbox not working

2 Ansichten (letzte 30 Tage)
Hello,
I am trying to create a small script to generate 5G signals to transmit through an SDR device. My problem is related to the reservation of resources for sync signals. I generate the SSB grid and, then, I want to reserve the resource blocks corresponding to those symbols when generating the PDSCH indices and symbols. For that purpose, I create a nrPDSCHReservedConfig object with the subcarriers and symbol positions where the SSB is expected to be allocated, but this information is not considered when generating the indices of the other signals (nrPDSCHIndices). Could you provide me some feedback about the best way to do that?
Thank you very much.
Christian
  2 Kommentare
Sriram Tadavarty
Sriram Tadavarty am 29 Apr. 2020
Hi Christian
Can you please provide the script your tried with nrPDSCHIndices? So that it helps to know where the issue was. You can use the paperclip icon to attach the script.
Christian Ballesteros
Christian Ballesteros am 30 Apr. 2020
Hi Sririam,
Basically, I try to create an SSB and insert it in the appropriate position in my OFDM grid. Then, nrPDSCHIndices should give me the shared channel indices without overlapping with the SSB. Attached you can find the MATLAB function I created to generate symbols for a random number of frames, but this is basically what I try to do for each slot period (if SSB is active):
% Protect SSB indices
reservedPRB1 = nrPDSCHReservedConfig;
reservedPRB1.PRBSet = ssb_freqs-1;
reservedPRB1.SymbolSet = reshape(mod(ssb_symb(idx_n,:),14)',[],1)-1;
pdsch.ReservedPRB = {reservedPRB1};
% Gnerate PDSCH indices
[ind_data,info] = nrPDSCHIndices(carrier,pdsch,'IndexOrientation','carrier');
ind_dmrs = nrPDSCHDMRSIndices(carrier,pdsch,'IndexOrientation','carrier');
ind_ptrs = nrPDSCHPTRSIndices(carrier,pdsch,'IndexOrientation','carrier');
% Generate symbols
sym_data = nrPDSCH(carrier,pdsch,data,'OutputDataType','single');
sym_dmrs = nrPDSCHDMRS(carrier,pdsch,'OutputDataType','single');
sym_ptrs = nrPDSCHPTRS(carrier,pdsch,'OutputDataType','single');
% Allocate symbols (idata/idmrs/iptrs for current slot)
symbols(idata) = sym_data;
symbols(idmrs) = sym_dmrs;
symbols(iptrs) = sym_ptrs;
Thank you for your fast answer.
Christian

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Sriram Tadavarty
Sriram Tadavarty am 30 Apr. 2020
Hi Christian,
Thanks for sharing the code.
The issue of PDSCH not rate-matching around the SSB comes from the incorrect assignment of subcarriers, instead of resource blocks for the property PRBSet of reservedPRB1.
Make the following update and it would work as expected:
reservedPRB1.PRBSet = floor((ssb_freqs)/12-1); % convert subcarriers to resource blocks
As the property name PRBSet, it indicates that resource blocks need to be provided and any value provided is taken as a separate resource block.
Hope this helps.
Thanking you.
Regards,
Sriram
  1 Kommentar
Christian Ballesteros
Christian Ballesteros am 30 Apr. 2020
Hello,
Thank you very much! It worked perfectly. I did not realized I was passing the subcarrier index and not the PRB.
BR,
Christian

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu End-to-End Simulation finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by