主要内容

基于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用于深度CSI采集和干扰测量。它还屏蔽了某些资源元素(REs),使它们无法用于PDSCH传输。正如名称ZP所示,在这些REs中不传输任何内容。

本例介绍了如何使用CSI- rs进行信道估计,这是CSI采集的基础。

初始化配置对象

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

carrier = 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。

csirs = nrCSIRSConfig;csir。CSIRSType = {“nzp”“zp”};csir。CSIRSPeriod = {[5 1],[5 1]};csir。密度= {“一个”“一个”};csir。RowNumber = [3 5];csir。SymbolLocations = {1,6};csir。SubcarrierLocations = {6,4};csir。NumRB = 25
csirs = nrCSIRSConfig with properties: CSIRSType: {'nzp' 'zp'} CSIRSPeriod: {[5 1] [5 1]} RowNumber:[3 5]密度:{'one' 'one'} SymbolLocations: {[1] [6]} SubcarrierLocations: {[6] [4]} NumRB: 25 RBOffset: 0 NID: 0只读属性:NumCSIRSPorts: [2 4] CDMType: {'FD-CDM2' 'FD-CDM2'}

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

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

生成CSI-RS符号和索引

为指定的载波和CSI-RS配置参数生成CSI-RS符号。应用功率缩放。

sym = nrCSIRS(载体,csirs);csirsSym = sym*db2mag(powerCSIRS);

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

生成指定运营商的CSI-RS指标和CSI-RS配置参数。

csirsInd = nrCSIRSIndices(载体,csirs);

的变量csirsInd也是一个列向量的大小与csirsSym

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

初始化载波网格

初始化一个槽位的运营商资源网格。

ports = max(csir . numcsirsports);%天线端口个数txGrid = nrResourceGrid(运营商,端口);

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

执行资源元素映射。

txGrid(csirsInd) = csirsSym;

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

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

图中包含一个轴对象。轴对象的标题载波网格包含CSI-RS包含3个对象类型的图像,线。这些对象代表NZP CSI-RS, ZP CSI-RS。

执行OFDM调制

执行OFDM调制以生成时域波形。

[tx波形,ofdmInfo] = nrofdmmodulation(载波,txGrid);

通过信道传递时域波形并添加AWGN噪声

配置接收天线个数。

R = 4;

配置通道。

channel = nrTDLChannel;通道。numtransmitantenna = ports;通道。numreceiveantenna = R;通道。DelayProfile =“TDL-C”;通道。MaximumDopplerShift = 10;通道。DelaySpread = 1e-8
channel = nrTDLChannel with properties: DelayProfile: 'TDL-C' DelaySpread: 1.0000 -08 MaximumDopplerShift: 10 SampleRate: 30720000 MIMOCorrelation: 'Low' Polarization: ' copolar ' TransmissionDirection: 'Downlink' numtransmitantenna: 4 numreceiveantenna: 4 NormalizePathGains: true InitialTime: 0 NumSinusoids: 48 RandomStream: 'mt19937ar with seed' seed: 73 NormalizeChannelOutputs: true ChannelFiltering: true TransmitAndReceiveSwapped: false

根据所配置的信道,在传输的波形中附加0以说明信道延迟。

chInfo =信息(通道);maxChDelay = ceil(max(chinfo . pathdelayed *channel.SampleRate)) + chInfo.ChannelFilterDelay;tx波形= [tx波形;0 (maxChDelay、尺寸(txWaveform 2)));

通过通道传递波形。

[rx波形,pathgain] =通道(tx波形);

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

pathFilters = getPathFilters(channel);H_actual = nrPerfectChannelEstimate(载体,pathgain,pathFilters);

在波形中添加AWGN噪声。有关本例使用的信噪比定义的解释,请参见链路模拟中使用的信噪比定义

SNRdB = 50;% (dB)信噪比= 10^(SNRdB/10);线性值N0 = 1/√(2.0*R*double(ofdmInfo.Nfft)*信噪比);%噪声方差rng (0);噪声= N0*complex(randn(size(rx波形)),randn(size(rx波形)));rx波形= rx波形+噪声;

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

禁用ZP-CSI-RS资源,不用于计时和通道%的评估csir。CSIRSPeriod = {[5 1],“关闭”};生成参考符号并应用功率缩放refSym = db2mag(powerCSIRS)*nrCSIRS(carrier,csirs);生成参考索引refInd = nrCSIRSIndices(载体,csirs);offset = nrTimingEstimate(载波,rx波形,refInd,refSym)
偏移量= 7
rx波形= rx波形(1+offset:end,:);

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

rxGrid = nrOFDMDemodulate(载波,rx波形);k × l × r大小的%

比较估计渠道和实际渠道

使用NZP-CSI-RS进行实际的信道估计。确认CSI-RS符号csirsSym属于同一清洁发展机制类型。

cdmLen = [2 1];%对应CDMType = 'FD-CDM2'[H_est,nVar] = nrChannelEstimate(carrier,rxGrid,refInd,refSym,“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个轴对象。标题为Estimated Channel的Axes对象1包含一个image类型的对象。标题为Actual Channel的Axes对象2包含一个image类型的对象。

计算信道估计误差。

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

本地函数

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

参考文献

[1]3gpp ts 38.211。“NR;物理通道和调制。”第三代伙伴计划;技术规范集团无线接入网

另请参阅

功能

对象

相关的话题