基于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);
执行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 (副载波的);
计算信道估计误差。
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;物理通道和调制。”第三代伙伴计划;技术规范集团无线接入网.