主要内容

使用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表示时,在这些RE中没有任何内容。

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

初始化配置对象

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

载体= nrCarrierConfig;母舰。NSizeGrid = 25;母舰。SubcarrierSpacing = 15;母舰。NSlot = 1;母舰。NFrame = 0
CARRORT = nrcarrierconfig具有属性:ncellid:1子载波间隔:15 cyclicprefix:'normal'nsizegrid:25 nstartgrid:0 nslot:1 nframe:0只读属性:symbolsperslot:14 slotspersubframe:1 slotspersubframe:1

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

csirs = nrcsirsconfig;csirs.csirstype = {“nzp”'ZP'};csirs.csirsperiod = {[5 1],[5 1]}; csirs.Density = {“一个”“一个”};csir。RowNumber = [3 5];csir。SymbolLocations = {1,6};csir。SubcarrierLocations = {6 4};csir。NumRB = 25
csirs = nrcsirsconfig具有属性:csirstype:{'nzp'zp'} csirsperiod:{[5 1] [5 1]} rownumber:[3 5]密度:{'一个'一个'} symbollocations:{[1][6] subcarierlocations:{[6] [4]} numrb:25 rboffset:0 nid:0只读属性:numcsirsports:[2 4] cdmtype:{'fd-cdm2''fd-cdm2'}

考虑DB中CSI-RS的电力缩放。

powerCSIRS = 0;DISP(['CSI-RS电力缩放:'num2str(PowerCsirs)' D b']);
CSI-RS功率缩放:0 dB

生成CSI-RS符号和索引

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

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

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

为指定的载波和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] = NROFDMMODULES(载波,TxGrid);

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

配置接收天线数。

R = 4;

配置通道。

channel = nrtdlchannel;channel.numtransmitantennas =端口;channel.numreceiveantennas = r;channel.delayprofile =“TDL-C”;通道。MaximumDopplerShift = 10;通道。DelaySpread = 1 e-8
Channel = NRTDLChannel具有属性:DelayProfile:'TDL-C'Delayspread:1.0000E-08 MaximumDopplershift:10 Samplere:30720000 Mimocorrelation:'低'极化:'Co-Polar'传输:'Downlink'NumTransmitantNAnas:4 NumreCeiveantennas:4 Nuremizepathains:真正的初始时间:0 numsinUsoids:48 OrmanyStream:'MT19937AR与种子'种子:73 IrmanizeChAnnelOutputs:真正的传输andreceiveswapped:false

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

Chinfo = Info(频道);maxchdelay = ceil(max(chinfo.pathdelays * channel.samplerate))+ chinfo.channelfilterdelay;txwaveform = [txwaveform;零(maxchdelay,尺寸(txwaveform,2))];

通过通道传递波形。

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

产生实际的传播信道h_actual.,执行完美的频道估计。

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

在波形中加入AWGN噪声。

SNRdB = 50;DB中的%信噪比= 10 ^ (SNRdB / 20);%线性值N0 = 1 /(SQRT(2.0 * R * DOUBE(OFDMINFO.NFFT))* SNR);%噪声方差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资源,不用于计时和通道%估计csirs.csirsperiod = {[5 1],“关闭”};%生成参考符号并应用功率缩放refSym = db2mag (powerCSIRS) * nrCSIRS(载体,csir);生成参考索引csir精炼= nrCSIRSIndices(载体);抵消= nrTimingEstimate(载体,rxWaveform,精炼,refSym)
抵消= 7
rxwaveform = rxwaveform(1 + offset:结束,:);

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(载体,rxgrid,refind,refsym,'cdmlength', cdmLen);estSNR = -10 * log10(据nVar);DISP(['估计snr ='num2str (estSNR)' D b'])
估计SNR = 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包含一个类型为image的对象。标题为“实际通道”的轴2包含一个类型为image的对象。

计算信道估计误差。

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;tempsym(tempsym〜= 0)= chpval {1};%替换非零功率符号temppsym (temppsym == 0) = chpval{2};百分比替换零功率符号tempgrid =复合物(零(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;物理通道和调制。”第三代合作伙伴项目;技术规范无线电接入网

也可以看看

职能

对象