Main Content

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

5G NR CSI-RS 측정

이 예제에서는 TS 38.133 Annex A.4.6.4.3에 설명된 대로 5G Toolbox™의 채널 상태 정보 기준 신호를 사용하여 테스트 환경에 대한 CSI-RSRP, CSI-RSSI, CSI-RSRQ를 측정하는 절차를 보여줍니다.

소개

NR 5G에서 TS 38.215 Section 5.1.2와 5.1.4에 정의된 CSI-RS 기반 기준 신호 측정의 3가지 유형은 다음과 같습니다.

  • CSI-RSRP(CSI reference signal received power): CSI-RSRP는 RSRP 측정을 위해 구성된 CSI-RS를 전달해 주는 안테나 포트의 리소스 요소들의 전력 기여도에 대한 선형 평균으로 정의됩니다. 이 측정은 N개의 리소스 블록(측정 대역폭)에 걸쳐 수행됩니다. 이 측정에는 안테나 포트 3000 또는 3000 및 3001에서 송신되는 CSI-RS가 사용됩니다.

  • CSI-RSSI(CSI received signal strength indicator): CSI-RSSI는 CSI-RS가 존재하는 OFDM 심볼에서만 관측되는 총 수신 전력의 선형 평균으로 정의됩니다. 이 측정도 N개의 리소스 블록(측정 대역폭)에 걸쳐 수행됩니다. CSI-RSSI는 동일 채널(co-channel) 서빙 및 비서빙 셀, 인접 채널 간섭, 열 잡음과 같은 소스로부터의 전력을 포함합니다. 이 측정에는 안테나 포트 3000에서 송신되는 CSI-RS가 사용됩니다.

  • CSI-RSRQ(CSI reference signal received quality): CSI-RSRQ는 N*CSI_RSRPCSI_RSSI로 정의됩니다.

이 측정의 목적은 다음과 같습니다.

  • 셀 선택 및 재선택

  • 이동성 및 핸드오버 관리

  • 빔 관리(빔 조정 및 빔 복원)

이 예제에서는 테스트 환경에서 CSI-RS만 구성합니다.

구성 객체 초기화하기

반송파 구성

TS 38.133 Table A.4.6.4.3.1-1의 구성 1에 따라 15kHz 부반송파 간격으로 10MHz 대역폭을 점유하는 반송파 구성 객체를 생성합니다.

carrier = nrCarrierConfig;
carrier.NSlot = 1;
carrier.NSizeGrid = 52;

CSI-RS 구성

테스트 환경 TS 38.133 Table A.4.6.4.3.2-1에 따르면 UE(사용자 단말)는 2개의 CSI-RS 리소스로 이루어진 하나의 CSI-RS 리소스 세트(CSI-RS 1.2 FDD)로 구성됩니다.

csirs = nrCSIRSConfig;
% CSI-RS resource             #0       #1
csirs.CSIRSType           = {'nzp',   'nzp'};
csirs.CSIRSPeriod         = {[10 1],  [10 1]};
csirs.RowNumber           = [1        1]; % Single port (3000) CSI-RS resources
csirs.Density             = {'three', 'three'};
csirs.SymbolLocations     = {6,       10};
csirs.SubcarrierLocations = {0,       0};
csirs.NumRB               = [52,      52]; % Measurement bandwidth in terms of number of resource blocks

CSI-RS 심볼 및 인덱스 생성하기

출력 리소스 형식을 'cell'로 하여, 지정된 반송파와 CSI-RS 구성 파라미터에 대해 CSI-RS 심볼 및 인덱스를 생성합니다. 이 출력 리소스 형식은 리소스 세트 내의 각 CSI-RS 리소스별로 출력을 고유하게 식별하는 방법을 제공합니다. 각 CSI-RS 리소스별로 서로 다른 전력 수준을 적용할 수도 있습니다.

ind = nrCSIRSIndices(carrier,csirs,'OutputResourceFormat','cell');
sym = nrCSIRS(carrier,csirs,'OutputResourceFormat','cell');

신호와 잡음 전력 설정

TS 38.133 Table A.4.6.4.3.2-2에 설명된 대로 신호와 잡음 전력을 설정합니다. TS 38.133 Table A.4.6.4.3.2-2의 참고 2에 따르면, 다른 셀의 간섭과 다른 소스의 잡음은 적절한 전력 Noc의 가산성 백색 가우스 잡음(AWGN)으로 모델링됩니다.

SINRdB0 = 0; % For CSI-RS #0
SINRdB1 = 3; % For CSI-RS #1
NocdBm = -94.65;
NocdB = NocdBm - 30;
Noc = 10^(NocdB/10);

SINR 값을 사용하여 CSI-RS 리소스의 전력 스케일링을 계산합니다.

% Power scaling of CSI-RS resource #0
SINR0 = 10^(SINRdB0/10);     % linear Es/Noc
Es0 = SINR0*Noc;

% Power scaling of CSI-RS resource #1
SINR1 = 10^(SINRdB1/10);     % linear Es/Noc
Es1 = SINR1*Noc;

반송파 리소스 그리드를 초기화하고 CSI-RS 심볼을 그리드에 매핑하기

하나의 슬롯에 대한 반송파 리소스 그리드를 초기화합니다.

ports = max(csirs.NumCSIRSPorts); % Number of antenna ports
txGrid = nrResourceGrid(carrier,ports);

전력 스케일링 값을 CSI-RS 리소스에 적용하고 그리드에 매핑합니다.

txGrid(ind{1}) = sqrt(Es0)*sym{1};
txGrid(ind{2}) = sqrt(Es1)*sym{2};

% Plot the carrier grid for two CSI-RS resources
plotGrid(size(txGrid),ind)

Figure contains an axes object. The axes object with title Carrier Grid Containing CSI-RS, xlabel OFDM Symbols, ylabel Subcarriers contains 3 objects of type image, line. These objects represent CSI-RS resource #0, CSI-RS resource #1.

OFDM 변조 수행하기

OFDM 변조를 수행하여 시간 영역 파형을 생성합니다.

[txWaveform,ofdmInfo] = nrOFDMModulate(carrier,txGrid);

송신된 파형에 AWGN을 추가하고 OFDM 복조 수행하기

TS 38.133 Table A.4.6.4.3.2-1에 지정된 대로 전파 조건을 AWGN으로 간주합니다.

% Generate the noise
rng('default');  % Set RNG state for repeatability
N0 = sqrt(Noc/(2*double(ofdmInfo.Nfft)));
noise = N0*complex(randn(size(txWaveform)),randn(size(txWaveform)));

% Add AWGN to the transmitted waveform
rxWaveform = txWaveform + noise;

수신된 시간 영역 파형에 대해 OFDM 복조를 수행하여, 수신된 리소스 요소 배열을 얻습니다.

rxGrid = nrOFDMDemodulate(carrier,rxWaveform);

CSI-RSRP, CSI-RSSI, CSI-RSRQ 측정 수행하기

마지막으로, nrCSIRSMeasurements 함수를 사용하여, 수신된 그리드에 존재하는 CSI-RS 리소스에 대해 CSI-RSRP, CSI-RSSI, CSI-RSRQ 측정을 수행합니다.

meas = nrCSIRSMeasurements(carrier,csirs,rxGrid)
meas = struct with fields:
    RSRPPerAntenna: [-94.1599 -91.3258]
    RSSIPerAntenna: [-65.6220 -64.9823]
    RSRQPerAntenna: [-11.3779 -9.1834]

% Plot RSRPdBm, RSSIdBm and RSRQdB measurements for all CSI-RS resources
plotCSIRSMeasurements(meas)

Figure contains an axes object. The axes object with title CSI-RSRP measurements (in dBm), ylabel CSI-RSRP in dBm contains 3 objects of type bar, text.

Figure contains an axes object. The axes object with title CSI-RSSI measurements (in dBm), ylabel CSI-RSSI in dBm contains 3 objects of type bar, text.

Figure contains an axes object. The axes object with title CSI-RSRQ measurements (in dB), ylabel CSI-RSRQ in dB contains 3 objects of type bar, text.

출력 필드 RSRPdBm으로 표시되는 CSI-RS 리소스 두 개의 CSI-RSRP 측정값을 TS 38.133 Table A.4.6.4.3.2-2에 나와 있는 표준 지정값과 비교할 수 있습니다.

로컬 함수

function plotGrid(gridSize,csirsInd)
%    plotGrid(GRIDSIZE,CSIRSIND) plots the carrier grid of size GRIDSIZE
%    by populating the grid with CSI-RS symbols of multiple resources
%    indicated by a cell array of CSI-RS indices CSIRSIND.

    figure()
    cmap = colormap(gcf);

    % Considering the following values for two CSI-RS resources and they need
    % to be updated based on the number of CSI-RS resources
    names = {'CSI-RS resource #0','CSI-RS resource #1'};
    chpval = {20,2};
    chpscale = 0.25*length(cmap); % Scaling factor
    tempGrid = zeros(gridSize);
    tempGrid(csirsInd{1}) = chpval{1};
    tempGrid(csirsInd{2}) = chpval{2};

    image(chpscale*tempGrid(:,:,1)); % Multiplied with scaling factor for better visualization
    axis xy;
    clevels = chpscale*[chpval{:}];
    N = length(clevels);
    L = line(ones(N),ones(N),'LineWidth',8); % Generate lines
    % Index the color map and associate the selected colors with the lines
    set(L,{'color'},mat2cell(cmap( min(1+clevels,length(cmap) ),:),ones(1,N),3)); % Set the colors according to cmap
    % Create legend
    legend(names{:});

    title('Carrier Grid Containing CSI-RS')
    xlabel('OFDM Symbols');
    ylabel('Subcarriers');
end

function plotCSIRSMeasurements(meas)
%   plotCSIRSMeasurements(MEAS) plots CSI-RS based RSRP/RSSI/RSRQ measurements
    meas = structfun(@(s)max(s,[],1),meas,'UniformOutput',false);
    numRes = numel(meas.RSRPPerAntenna);
    xTickLabels = {};
    for idx = 1:numRes
        xTickLabels = [xTickLabels {['CSI-RS resource #' num2str(idx-1)]}]; %#ok<AGROW>
    end

    measType = {'CSI-RSRP','CSI-RSSI','CSI-RSRQ'};
    measVal = {meas.RSRPPerAntenna, meas.RSSIPerAntenna, meas.RSRQPerAntenna};
    measUnits = {'dBm','dBm','dB'};

    for measIdx = 1:3
        figure()
        values = measVal{measIdx};
        baseVal = 0;
        if ~any(values > 0)
            baseVal = floor(min(values));
        end
        b = bar(values,'FaceColor','#EDB120','BaseValue',baseVal);
        xticklabels(xTickLabels);

        xtips = b.XEndPoints;
        ytips = b.YEndPoints;
        for i = 1:numel(xtips)
            text(xtips(i), ytips(i), sprintf(['%0.2f ' measUnits{measIdx}],values(i)), ...
                'HorizontalAlignment', 'Center', 'VerticalAlignment', 'Top');
        end
        ylabel([measType{measIdx} ' in ' measUnits{measIdx}]);
        title([measType{measIdx} ' measurements (in ' measUnits{measIdx} ')'])
    end
end

참고 문헌

[1] 3GPP TS 38.133. “NR; Requirements for support of radio resource management.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[2] 3GPP TS 38.215. “NR; Physical layer measurements.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

참고 항목

함수

객체

관련 항목