主要内容

使用CSI-RS进行NR信道估计

这个示例演示了如何为给定的载波和CSI-RS资源配置生成信道状态信息参考信号(CSI-RS)符号和索引,如TS 38.211章节7.4.1.5中定义的那样。该示例演示了如何将生成的符号映射到载波资源网格,在接收端执行信道估计,并将估计的信道与实际信道进行比较。

介绍

CSI-RS是下行链路专用(DL)参考信号。NR标准定义了零功率(ZP)和非零功率(NZP) CSI-RSs。

用户设备(UE)流程利用NZP-CSI-RSs:

  • 用于移动性和波束管理的l1参考信号接收功率(RSRP)测量

  • DL CSI收购

  • 干涉测量

  • 时间频率跟踪

ZP-CSI-RS用于DL CSI采集和干扰测量。它还掩盖了某些资源元素(REs),使它们无法用于PDSCH传输。正如名称ZP所表明的,在这些REs中没有传输任何内容。

这个例子展示了如何使用CSI- rs进行信道估计,信道估计是CSI采集的基础。

初始化配置对象

创建一个载波配置对象,表示一个5mhz载波,子载波间距为15khz。

载体= nrCarrierConfig;母舰。NSizeGrid = 25;母舰。SubcarrierSpacing = 15;母舰。NSlot = 1;母舰。NFrame = 0
carrier = nrCarrierConfig with properties: NCellID: 1 SubcarrierSpacing: 15 CyclicPrefix: 'normal' NSizeGrid: 25 NStartGrid: 0 NSlot: 1 NFrame: 0 Read-only properties: SymbolsPerSlot: 14 SlotsPerSubframe: 1 SlotsPerFrame: 10

创建一个CSI-RS配置对象,表示两个CSI-RS资源,行号为3的NZP和行号为5的ZP。

csir = nrCSIRSConfig;csir。CSIRSType = {“nzp”“zp”};csir。csiperperiod = {[5 1],[5 1]};csir。密度= {“一个”“一个”};csir。RowNumber = [3 5];csir。SymbolLocations = {1,6};csir。SubcarrierLocations = {6 4};csir。NumRB = 25
csirs = nrCSIRSConfig with properties: csistype: {'nzp' 'zp'} csiperiod: {[5 1] [5 1]} RowNumber: [3 5] Density: {'one' ' 'one'} SymbolLocations: {[1] [6]} SubcarrierLocations: {[6] [4]} NumRB: 25 RBOffset: 0 NID: 0 Read-only properties: numcsiports: [2 4] CDMType: {'FD-CDM2' 'FD-CDM2'}

考虑CSI-RS在dB中的功率缩放。

powerCSIRS = 0;disp ([“CSI-RS功率缩放:”num2str (powerCSIRS)“数据库”]);
CSI-RS功率缩放:0db

生成CSI-RS符号和索引

为指定的载波和配置参数生成CSI-RS符号。应用扩展。

csir sym = nrCSIRS(载体);csirsSym =符号* db2mag (powerCSIRS);

的变量csirsSym是包含CSI-RS符号的列向量。

为指定的载波和配置参数生成CSI-RS索引。

csir csirsInd = nrCSIRSIndices(载体);

的变量csirsInd列向量的大小是否相同csirsSym

当配置ZP和NZP资源时,ZP信号的生成优先于NZP信号的生成。

初始化载体网格

为一个插槽初始化载波资源网格。

港口= max (csirs.NumCSIRSPorts);%天线端口数txGrid = nrResourceGrid(承运人、港口);

将CSI-RS符号映射到载波网格上

执行资源元素映射。

txGrid (csirsInd) = csirsSym;

在网格中绘制CSI-RS(包括ZP和NZP)的位置。

plotGrid(大小(txGrid)、csirsInd csirsSym);

图中包含一个轴对象。标题为Carrier Grid Containing CSI-RS的轴对象包含3个类型为image, line的对象。这些对象代表NZP CSI-RS, ZP CSI-RS。

执行OFDM调制

进行OFDM调制以产生时域波形。

[txWaveform, ofdmInfo] = nrOFDMModulate(载体,txGrid);

通过通道通过时域波形,加入AWGN噪声

配置接收天线数。

R = 4;

配置通道。

频道= nrTDLChannel;通道。NumTransmitAntennas =港口;通道。NumReceiveAntennas = R;通道。DelayProfile =“TDL-C”;通道。MaximumDopplerShift = 10;通道。DelaySpread = 1 e-8
numtransmitantenna: 4 numreceiveantenna: 4 NormalizePathGains: true InitialTime: 0 NumSinusoids: 48 RandomStream:“mt19937ar with seed”seed: 73 NormalizeChannelOutputs: true ChannelFiltering: true transmitandreceiveswap: false

根据配置的信道,在传输波形上加0,以考虑信道延迟。

chInfo =信息(渠道);maxChDelay = ceil(max(chInfo.PathDelays*channel.SampleRate)) + chInfo.ChannelFilterDelay;txWaveform = [txWaveform;0 (maxChDelay、尺寸(txWaveform 2)));

通过通道传递波形。

[rxWaveform, pathGains] =通道(txWaveform);

以产生实际的传播信道H_actual,进行完美的信道估计。

pathFilters = getPathFilters(渠道);H_actual = nrPerfectChannelEstimate(载体,pathGains pathFilters);

在波形中加入AWGN噪声。有关此示例使用的信噪比定义的解释,请参见用于链路仿真的信噪比定义

SNRdB = 50;在dB %信噪比= 10 ^ (SNRdB / 10);%线性值N0 = 1 /√(2.0 * R *双(ofdmInfo.Nfft) *信噪比);%噪声方差rng (0);噪音= N0 *复杂(randn(大小(rxWaveform)), randn(大小(rxWaveform)));rx波形= rx波形+噪声
rxWaveform =7690×4复杂0.0000 - 0.0001我-0.0001 + 0.0000 -0.0001 - 0.0000 -0.0001 0.0001 - 0.0001 + 0.0000我-0.0000 + 0.0000我0.0001 - 0.0000 -0.0000 - 0.0000 -0.0001 0.0001 + 0.0000 + 0.0000我-0.0001 - 0.0000我-0.0001 + 0.0000 0.0000 - 0.0000 0.0000 - 0.0000我-0.0001 + 0.0001 -0.0000 - 0.0000 0.0000 + 0.0001我0.0001 - 0.0000 0.0000 - 0.0000 0.0001 - 0.0000-0.0001 + 0.0000我-0.0000 + -0.0000 + 0.0000 0.0000我0.0001 + 0.0000 -0.0000 - 0.0001 -0.0000 - 0.0001 -0.0001 - 0.0000 -0.0000 - 0.0000我0.0000 + 0.0001我-0.0001 - 0.0000 -0.0000 + 0.0000我-0.0000 - 0.0000 0.0002 - 0.0001 0.0001 0.0001我0.0001 + 0.0000 + 0.0001 + 0.0000我0.0000 + 0.0001 + 0.0000 0.0000 0.0000 - 0.0001 0.0000 - 0.0001我⋮

使用NZP-CSI-RS进行定时同步。要估计时间偏移,请使用nrTimingEstimate并将NZP-CSI-RS作为参考。

%禁用ZP-CSI-RS资源,不用于计时和通道%的评估csir。csiperperiod = {[5 1],“关闭”};%生成参考符号并应用功率缩放refSym = db2mag (powerCSIRS) * nrCSIRS(载体,csir);生成参考索引csir精炼= nrCSIRSIndices(载体);抵消= nrTimingEstimate(载体,rxWaveform,精炼,refSym)
抵消= 7
rxWaveform = rxWaveform(1 +抵消:最终,);

OFDM对接收的时域波形进行解调。

rxGrid = nrOFDMDemodulate(载体、rxWaveform);百分比大小k - l - l - r

比较估计的信道和实际信道

使用NZP-CSI-RS进行实际的信道估计。确定CSI-RS符号csirsSym都属于相同的CDM类型。

cdmLen = [2 1];%对应CDMType = 'FD-CDM2'[H_est,据nVar] = nrChannelEstimate (refSym载体,rxGrid,精炼,“CDMLengths”, cdmLen);estSNR = -10 * log10(据nVar);disp (['估计信噪比= 'num2str (estSNR)“数据库”])
估计信噪比= 27.4577 dB

绘制第一发射天线和第一接收天线之间的估计信道和实际信道。

图;绘制估计的通道次要情节(1、2、1)显示亮度图像(abs (H_est (:,:, 1, 1)));colorbar;标题(“估计通道”)轴xy;包含(OFDM符号的);ylabel (副载波的);%绘制实际通道次要情节(1、2、2)显示亮度图像(abs (H_actual (:,:, 1, 1)));colorbar;标题(“实际通道”)轴xy;包含(OFDM符号的);ylabel (副载波的);

图中包含2个轴对象。标题为“估计通道”的轴对象1包含一个类型为图像的对象。标题为实际通道的轴对象2包含一个类型为图像的对象。

计算信道估计误差。

H_err = (H_est H_actual(:,:,:, 1:尺寸(H_est 4)));[minErr, maxErr] =边界(abs (H_err),“所有”);disp (['信道估计误差的绝对值在['num2str (minErr)”、“num2str (maxErr)“]”])
信道估计误差绝对值在[4.9184e-06, 0.035047]范围内

本地函数

函数plotGrid (gridSize csirsInd csirsSym)% plotGrid(GRIDSIZE, csirind, csirsym)绘制大小为GRIDSIZE的载波网格%通过使用csirsynd和csirsym用CSI-RS符号填充网格。图()cmap = colormap(gcf);chpval = {20, 2};chpscale = 0.25 *长度城市规划机构(cmap);%的比例因子tempSym = csirsSym;temppsym (temppsym ~= 0) = chpval{1};%替换非零功率符号temppsym (temppsym == 0) = chpval{2};%替换零能量符号tempGrid =复杂(0 (gridSize));tempGrid (csirsInd) = tempSym;图像(chpscale * tempGrid (:,: 1));%与比例因子相乘以获得更好的可视化效果xy;名称= {“NZP CSI-RS”“ZP CSI-RS”};clevels = chpscale * [chpval {}):;N =长度(clevels);L =线((N), (N),“线宽”8);%生成线索引颜色地图,并将选中的颜色与线条关联起来集(L, {“颜色”}, mat2cell(提出(min (1 + clevels长度城市规划机构(cmap)),:), (1, N), 3));%根据cmap设置颜色%创造传奇传奇(名字{:});标题(“包含CSI-RS的载波网格”)包含(OFDM符号的);ylabel (副载波的);结束

参考文献

[1]3 gpp TS 38.211。“NR;物理通道和调制。”第三代合作伙伴项目;技术规范无线电接入网

另请参阅

功能

对象

相关的话题