主要内容

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

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

介绍

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捕获的基础。

初始化配置对象

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

carrier=nrCarrierConfig;carrier.NSizeGrid=25;carrier.subcarriers-space=15;carrier.NSlot=1;carrier.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”};csirs.csirspiriod={[51],[51]};csirs.Density={“一个”“一个”};csirs.rownumber = [3 5];csirs.symbollocations = {1,6};csirs.subcarrierlocations = {6,4};csirs.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配置参数生成CSI-RS符号。应用电力缩放。

sym = nrcsirs(承运人,csirs);csirssym = sym * db2mag(powercsirs);

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

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

csirsInd=nrCSIRSIndices(载波,csirs);

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

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

初始化载波网格

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

端口=最大值(csirs.NumCSIRSPorts);%天线端口数txGrid=nrResourceGrid(载波、端口);

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

执行资源元素映射。

txGrid (csirsInd) = csirsSym;

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

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

图中包含一个axes对象。标题载体网格包含CSI-RS的axes对象包含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”;channel.MaximumDopplerShift=10;channel.DelaySpread=1e-8
numtransmitantenna: 4 numreceiveantenna: 4 NormalizePathGains: true InitialTime: 0 NumSinusoids: 48 RandomStream:“mt19937ar with seed”seed: 73 NormalizeChannelOutputs: true ChannelFiltering: true transmitandreceiveswap: false

根据配置的信道,向发送的波形添加零,以说明信道延迟。

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

通过通道传递波形。

[RX波形,路径增益]=通道(TX波形);

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

pathfilters = getpathfilters(频道);h_actual = nrperfectChanneLestimate(承运人,携带,Pathgains,Pathfilters);

向波形添加AWGN噪声。有关此示例使用的SNR定义的说明,请参阅用于链路仿真的信噪比定义

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

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

%禁用ZP-CSI-RS资源,不用于定时和信道%的评估csir。csiperperiod = {[5 1],“关”};%生成参考符号并应用功率缩放refSym=db2mag(powerCSIRS)*nrCSIRS(carrier,csirs);%生成参考索引refind = nrcsirsindices(载体,csirs);offset = nrtimingestimate(运营商,rxwaveform,refind,refsym)
偏移量=7
rxWaveform = rxWaveform(1 +抵消:最终,);

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

rxGrid = nrOFDMDemodulate(载体、rxWaveform);尺寸尺寸k-by-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);显示(['估计信噪比= 'num2str(ESTSR)“数据库”])
估计信噪比= 27.4577 dB

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

图形绘制估计的通道子图(1,2,1)ImageC(ABS(H_EST(:,:,1,1))));彩色杆;标题(“估计通道”)轴心xy; xlabel(“OFDM符号”);ylabel (“子载波”);%绘制实际通道子批次(1,2,2)图像SC(abs(H_实际(:,:,1,1));颜色栏;标题(“实际频道”)轴心xy; xlabel(“OFDM符号”);ylabel (“子载波”);

图包含2个轴对象。带标题估计通道的轴对象1包含类型图像的对象。具有标题实际通道的轴对象2包含类型图像的对象。

计算信道估计误差。

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

局部函数

功能plotGrid (gridSize csirsInd csirsSym)%plotGrid(GRIDSIZE,CSIRSIND,CsirSym)绘制GRIDSIZE大小的载体网格使用CSIRSIND和CSIRSSYM使用CSI-RS符号填充网格来实现%。图()cmap = colormap(gcf);chpval = {20,2};CHPSCALE = 0.25 *长度(CMAP);%比例因子tempSym = csirsSym;temppsym (temppsym ~= 0) = chpval{1};%替换非零功率符号tempSym(tempSym==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(cmap(min(1+clevels,length(cmap)),:),one(1,N),3));%根据CMAP设置颜色%创建图例传奇(名字{:});标题(“包含CSI-RS的载波网格”)Xlabel(“OFDM符号”);ylabel (“子载波”);结束

参考

[1]3GPP TS 38.211.“NR;物理信道和调制。”第三代合作项目;技术规范组无线接入网

另请参阅

功能

对象

相关话题