Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

nrEqualizeMMSE

MMSE(최소 평균 제곱 오차) 이퀄라이제이션

설명

예제

[eqSym,csi] = nrEqualizeMMSE(rxSym,hest,nVar)은 물리 채널의 추출된 리소스 요소 rxSym에 MMSE 이퀄라이제이션을 적용하여 이퀄라이징된 심볼을 eqSym에 반환합니다. 이퀄라이제이션 프로세스에서는 추정된 채널 정보 hest와 수신된 잡음 분산의 추정값 nVar을 사용합니다. 이 함수는 소프트 채널 상태 정보 csi도 반환합니다.

예제

모두 축소

PBCH(physical broadcast channel)의 추출된 리소스 요소에 대해 MMSE 이퀄라이제이션을 수행합니다.

PBCH 송신을 위한 심볼과 인덱스를 만듭니다.

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

하나의 송신 안테나에 대해 빈 리소스 배열을 생성합니다. 생성된 PBCH 인덱스를 사용하여 PBCH 심볼로 배열을 채웁니다.

carrier = nrCarrierConfig('NSizeGrid',20);
P = 1;
txGrid = nrResourceGrid(carrier,P);
txGrid(pbchInd) = pbchTxSym;

OFDM 변조를 수행합니다.

txWaveform = nrOFDMModulate(carrier,txGrid);

채널 행렬을 만들고 채널을 송신된 파형에 적용합니다.

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

채널 추정을 만듭니다.

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

OFDM 복조를 수행합니다.

rxGrid = nrOFDMDemodulate(carrier,rxWaveform);

PBCH 디코딩을 준비하기 위해, nrExtractResources를 사용하여, 수신된 그리드와 채널 추정 그리드에서 심볼을 추출합니다. 수신된 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.

추출된 리소스 요소를 사용하여 PBCH를 디코딩합니다. 이퀄라이징된 PBCH 성상도를 플로팅합니다.

[pbchEqSym,csi] = nrEqualizeMMSE(pbchRxSym,pbchHestSym,nEst);
pbchBits = nrPBCHDecode(pbchEqSym,ncellid,v);
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.

입력 인수

모두 축소

물리 채널의 추출된 리소스 요소로, NRE×R 숫자형 행렬로 지정됩니다. NRE는 수신된 그리드의 각 K×L 평면에서 추출된 리소스 요소 개수입니다. K는 부반송파 개수이고 L은 OFDM 심볼 개수입니다. R은 수신 안테나 개수입니다.

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

추정된 채널 정보로, NRE×R×P 숫자형 배열로 지정됩니다. NRE는 수신된 그리드의 각 K×L 평면에서 추출된 리소스 요소 개수입니다. K는 부반송파 개수이고 L은 OFDM 심볼 개수입니다. R은 수신 안테나 개수입니다. P는 계층 개수입니다.

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

추정된 잡음 분산으로, 음이 아닌 실수형 스칼라로 지정됩니다.

데이터형: double

출력 인수

모두 축소

이퀄라이징된 심볼로, NRE×P 숫자형 행렬로 반환됩니다. NRE는 수신된 그리드의 각 K×L 평면에서 추출된 리소스 요소 개수입니다. K는 부반송파 개수이고 L은 OFDM 심볼 개수입니다. P는 계층 개수입니다.

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

소프트 채널 상태 정보로, NRE×P 숫자형 행렬로 반환됩니다. NRE는 수신된 그리드의 각 K×L 평면에서 추출된 리소스 요소 개수입니다. K는 부반송파 개수이고 L은 OFDM 심볼 개수입니다. P는 계층 개수입니다. 이 출력값은 각 RE의 SNR을 설명하는 LLR(로그 가능도비) 스케일링 인자입니다.

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

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2018b에 개발됨