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 と Section 5.1.4 で定義されているように、次の 3 種類の CSI-RS ベースの基準信号測定があります。

  • CSI-RSRP (CSI 基準信号受信電力): CSI-RSRP は、RSRP 測定用に構成された CSI-RS を伝送するアンテナ ポートでのリソース エレメントの電力寄与に対する線形平均として定義されます。この測定は、N 個のリソース ブロック (測定帯域幅) にまたがって実行されます。この測定では、アンテナ ポート 3000、またはアンテナ ポート 3000 と 3001 で送信される CSI-RS が使用されます。

  • CSI-RSSI (CSI 受信信号強度インジケーター): CSI-RSSI は、CSI-RS が存在する OFDM シンボルのみで観測される総受信電力の線形平均として定義されます。この測定もまた、N 個のリソース ブロック (測定帯域幅) にまたがって実行されます。CSI-RSSI には、同一チャネルのサービング セルと非サービング セル、隣接チャネル干渉、熱ノイズなどのソースからの電力が含まれます。この測定では、アンテナ ポート 3000 で送信される CSI-RS が使用されます。

  • CSI-RSRQ (CSI 基準信号受信品質): CSI-RSRQ は、N*CSI_RSRPCSI_RSSI として定義されます。

これらの測定を行う目的は、次のようなものです。

  • セルの選択と再選択

  • 移動とハンドオーバーの管理

  • ビーム管理 (ビーム調整とビーム復元)

この例では、テスト環境から CSI-RS のみを構成します。

構成オブジェクトの初期化

キャリア構成

TS 38.133 の Table A.4.6.4.3.1-1 の構成 1 に従って、15 kHz のサブキャリア間隔で 10 MHz の帯域幅を占有するキャリア構成オブジェクトを作成します。

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 リソースから成る 1 つの 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 の Note 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 シンボルのグリッドへのマッピング

1 スロット分のキャリア リソース グリッドを初期化します。

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 の規定に従って、伝播条件を検討します。

% 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 の各測定の実行

最後に、受信したグリッドに存在する CSI-RS リソースに対して、関数 nrCSIRSMeasurements を使用し、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 で表される 2 つの 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.

参考

関数

オブジェクト

関連するトピック