주요 콘텐츠

nrPUSCHDMRS

PUSCH DM-RS 심볼 생성

설명

sym = nrPUSCHDMRS(carrier,pusch)는 TS 38.211 Section 6.4.1.1.1[1]에 정의된 대로 PUSCH(physical uplink shared channel)의 DM-RS(복조 기준 신호) 심볼을 포함하는 행렬을 반환합니다. carrier는 특정 OFDM 뉴머롤로지에 대한 반송파 구성 파라미터를 지정합니다. pusch는 PUSCH 구성 파라미터를 지정합니다.

예제

sym = nrPUSCHDMRS(carrier,pusch,'OutputDataType',datatype)은 DM-RS 심볼의 데이터형을 지정합니다.

예제

예제

모두 축소

디폴트 속성을 갖는 반송파 구성 객체를 만듭니다. 이 객체는 15kHz 부반송파 간격을 갖는 10MHz 반송파에 대응됩니다.

carrier = nrCarrierConfig;

지정된 속성으로 PUSCH(physical uplink shared channel) 구성 객체를 만듭니다. 변환 프리코딩이 0으로 설정된 경우 파형 유형은 순환 전치 직교 주파수 분할 다중화(CP-OFDM)입니다.

pusch = nrPUSCHConfig;
pusch.TransformPrecoding = 0;
pusch.TransmissionScheme = 'codebook';
pusch.NumAntennaPorts = 4;
pusch.TPMI = 0;

지정된 파라미터를 사용하여 PUSCH 복조 기준 신호(DM-RS)를 구성합니다.

pusch.DMRS.DMRSAdditionalPosition = 1;
pusch.DMRS.DMRSTypeAPosition = 2;
pusch.DMRS.DMRSPortSet = 2;
pusch.DMRS.NIDNSCID = 10;
pusch.DMRS.NSCID = 1;

single 데이터형의 PUSCH와 연관된 DM-RS 심볼을 생성합니다.

sym = nrPUSCHDMRS(carrier,pusch,'OutputDataType','single')
sym = 624×4 single matrix

  -0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 + 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 + 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 + 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 + 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.3536 - 0.3536i   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
      ⋮

30kHz 부반송파 간격과 5MHz 송신 대역폭을 사용하여 반송파 구성을 만듭니다.

carrier = nrCarrierConfig;
carrier.SubcarrierSpacing = 30;
carrier.NSizeGrid = 11;

지정된 속성으로 PUSCH(physical uplink shared channel) 구성 객체를 만듭니다. 변환 프리코딩이 1로 설정된 경우 파형 유형은 이산 푸리에 변환 확산 직교 주파수 분할 다중화(DFT-s-OFDM)입니다.

pusch = nrPUSCHConfig;
pusch.NSizeBWP = 9;
pusch.NStartBWP = 1;
pusch.PRBSet = 0:3;
pusch.TransformPrecoding = 1;
pusch.FrequencyHopping = 'intraSlot';
pusch.SecondHopStartPRB = 5;

지정된 속성으로 PUSCH DM-RS(복조 기준 신호) 객체를 만듭니다.

dmrs = nrPUSCHDMRSConfig;
dmrs.DMRSAdditionalPosition = 1;
dmrs.DMRSTypeAPosition = 2;
dmrs.DMRSPortSet = 3;
dmrs.GroupHopping = 1;
dmrs.SequenceHopping = 0;
dmrs.NRSID = 10;

PUSCH DM-RS 구성 객체를 PUSCH 구성 객체의 DMRS 속성에 할당합니다.

pusch.DMRS = dmrs;

지정된 반송파, PUSCH 구성, 출력 형식 name-value 쌍의 인수에 대한 PUSCH DM-RS 심볼과 인덱스를 생성합니다.

sym = nrPUSCHDMRS(carrier,pusch,'OutputDataType','single')
sym = 96×1 single column vector

  -0.7071 - 0.7071i
  -0.7071 - 0.7071i
  -0.7071 - 0.7071i
   0.7071 - 0.7071i
  -0.7071 - 0.7071i
  -0.7071 - 0.7071i
  -0.7071 - 0.7071i
   0.7071 - 0.7071i
   0.7071 + 0.7071i
  -0.7071 + 0.7071i
  -0.7071 - 0.7071i
  -0.7071 + 0.7071i
  -0.7071 - 0.7071i
   0.7071 + 0.7071i
  -0.7071 - 0.7071i
      ⋮

ind = nrPUSCHDMRSIndices(carrier,pusch,'IndexBase','0based','IndexOrientation','bwp')
ind = 96×1 uint32 column vector

   217
   219
   221
   223
   225
   227
   229
   231
   233
   235
   237
   239
   241
   243
   245
      ⋮

부분 대역폭(BWP) 그리드를 만들고 그 그리드에 DM-RS 심볼을 매핑합니다.

bwp = complex(zeros([pusch.NSizeBWP*12 carrier.SymbolsPerSlot pusch.NumLayers]));
bwp(ind+1) = sym; % Map the DM-RS symbols

BWP를 반송파 리소스 그리드에 매핑한 다음 반송파 그리드를 표시합니다.

grid = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot pusch.NumLayers])); % Create carrier resource grid
offset = pusch.NStartBWP-carrier.NStartGrid; % BWP start location in the carrier grid
grid(offset*12+1:(offset+pusch.NSizeBWP)*12,:,:) = bwp;
imagesc(abs(grid(:,:,1)));
axis xy;
xlabel('OFDM Symbols');
ylabel('Subcarriers');
title('PUSCH DM-RS Resource Elements in the Carrier Resource Grid');

Figure contains an axes object. The axes object with title PUSCH DM-RS Resource Elements in the Carrier Resource Grid, xlabel OFDM Symbols, ylabel Subcarriers contains an object of type image.

입력 인수

모두 축소

특정 OFDM 뉴머롤로지를 위한 반송파 구성 파라미터로, nrCarrierConfig 객체로 지정됩니다. 이 함수는 nrCarrierConfig 객체의 다음 속성만 사용합니다.

PUSCH 구성 파라미터로, nrPUSCHConfig 객체로 지정됩니다. 이 함수는 nrPUSCHConfig 객체의 다음 속성만 사용합니다.

주파수 범위 1(FR1)에 대한 공유 스펙트럼 채널 액세스와 함께 작동하려면, Interlacing 속성을 true로 설정한 다음 RBSetIndexInterlaceIndex 객체 속성을 사용하여 할당된 주파수 리소스를 지정하십시오. (R2023b 이후)

생성되는 DM-RS 심볼의 데이터형으로, 'double' 또는 'single'로 지정됩니다.

데이터형: char | string

출력 인수

모두 축소

DM-RS 심볼로, 복소수 행렬로 반환됩니다. 열 개수는 구성된 안테나 포트의 개수와 일치합니다.

데이터형: single | double
복소수 지원 여부:

참고 문헌

[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

확장 기능

모두 확장

버전 내역

R2020a에 개발됨

모두 확장