주요 콘텐츠

디코딩을 위한 PBCH 심볼 및 채널 추정값 추출

빔포밍된 PBCH을 디코딩하기 위한 준비 과정으로, 수신된 그리드와 관련 채널 추정값에서 PBCH(physical broadcast channel) 심볼을 추출합니다.

PBCH 코딩 및 빔포밍

BCH 코드워드에 대응하는 이진 값으로 구성된 랜덤 시퀀스를 생성합니다. TS 38.212 Section 7.1.5에 지정된 대로 코드워드 길이는 864입니다. 코드워드를 사용하여 PBCH 송신을 위한 심볼과 인덱스를 만듭니다. 물리 계층 셀 ID 번호를 지정합니다.

E = 864;
cw = randi([0 1],E,1);
ncellid = 17;
v = 0;
pbchTxSym = nrPBCH(cw,ncellid,v);
pbchInd = nrPBCHIndices(ncellid);

nrExtractResources 를 사용하여 빔포밍된 PBCH의 두 송신 안테나에 대한 인덱스를 생성합니다. 이러한 인덱스를 사용하여 빔포밍된 PBCH를 송신기 리소스 배열에 매핑합니다.

carrier = nrCarrierConfig('NSizeGrid',20);
P = 2;
txGrid = nrResourceGrid(carrier,P);
F = [1 0.3i];
[~,bfInd] = nrExtractResources(pbchInd,txGrid);
txGrid(bfInd) = pbchTxSym*F;

OFDM은 송신기 리소스 배열에 매핑된 PBCH 심볼을 변조합니다.

txWaveform = nrOFDMModulate(carrier,txGrid);

PBCH 송신 및 디코딩

채널 행렬을 생성하여 파형에 적용합니다. 송신된 파형을 수신합니다.

R = 3;
H = dftmtx(max([P R]));
H = H(1:P,1:R);
H = H/norm(H);
rxWaveform = txWaveform*H;

빔포밍을 포함하는 채널 추정값을 만듭니다.

 hEstGrid = repmat(permute(H.'*F.',[3 4 1 2]),[240 4]);
 nEst = 0;

OFDM(직교 주파수 분할 다중화)을 사용하여, 수신된 파형을 복조합니다.

 rxGrid = nrOFDMDemodulate(carrier,rxWaveform);

PBCH 디코딩을 위한 준비 과정으로, 수신된 그리드와 채널 추정 그리드에서 심볼을 추출합니다.

[pbchRxSym,pbchHestSym] = nrExtractResources(pbchInd,rxGrid,hEstGrid);
scatterplot(pbchRxSym(:),[],[],'y+');
title('Received PBCH Constellation');

Figure Scatter Plot contains an axes object. The axes object with title Received PBCH Constellation, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

추출된 리소스에 대해 MMSE 이퀄라이제이션을 수행하여 심볼을 이퀄라이징합니다. 결과를 플로팅합니다.

pbchEqSym = nrEqualizeMMSE(pbchRxSym,pbchHestSym,nEst);
scatterplot(pbchEqSym(:),[],[],'y+');
title('Equalized PBCH Constellation');

Figure Scatter Plot contains an axes object. The axes object with title Equalized PBCH Constellation, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

이퀄라이징된 심볼에 대해 PBCH 디코딩을 수행하여 소프트 비트를 가져옵니다.

pbchBits = nrPBCHDecode(pbchEqSym,ncellid,v)
pbchBits = 864×1
1010 ×

   -2.0000
   -2.0000
    2.0000
   -2.0000
   -2.0000
    2.0000
    2.0000
   -2.0000
   -2.0000
   -2.0000
    2.0000
   -2.0000
   -2.0000
    2.0000
   -2.0000
      ⋮

참고 항목

함수