Reserved PRB in PDSCH object from 5G toolbox not working

3 ビュー (過去 30 日間)
Christian Ballesteros
Christian Ballesteros 2020 年 4 月 29 日
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
Christian Ballesteros 2020 年 4 月 30 日
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
Christian Ballesteros 2020 年 4 月 30 日
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 Center および File ExchangeSchedule Model Components についてさらに検索

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by