此示例显示如何生成信道状态信息参考信号(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符号。应用电力缩放。
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(载波、端口);
执行资源元素映射。
txGrid (csirsInd) = csirsSym;
在网格中绘制CSI-RS(ZP和NZP)的位置。
plotGrid(大小(txGrid)、csirsInd、csirsym);
进行OFDM调制以产生时域波形。
[txWaveform, ofdmInfo] = nrOFDMModulate(载体,txGrid);
配置接收天线的数量。
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 (“子载波”);
计算信道估计误差。
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;物理信道和调制。”第三代合作项目;技术规范组无线接入网。