Reserved PRB in PDSCH object from 5G toolbox not working

3 次查看(过去 30 天)
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 个评论
Sriram Tadavarty
Sriram Tadavarty 2020-4-29
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
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

请先登录,再进行评论。

采纳的回答

Sriram Tadavarty
Sriram Tadavarty 2020-4-30
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 个评论
Christian Ballesteros
Hello,
Thank you very much! It worked perfectly. I did not realized I was passing the subcarrier index and not the PRB.
BR,
Christian

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Schedule Model Components 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by