主要内容

利用PRS的到达时间差定位

本示例展示了如何使用到达时间差(TDOA)定位方法结合Release 9定位参考信号(PRS),使用LTE Toolbox™计算enenodeb网络中的用户设备(UE)的位置。

简介

在本例中,创建了许多eNodeB传输,并将其与不同的延迟和接收功率相结合,以模拟一个UE对所有eNodeB波形的接收。UE与定位参考信号(PRS)进行相关,以建立来自每个eNodeB的延迟,并随后确定所有eNodeB对之间的延迟差值。这些延迟差用于计算常数延迟差的双曲线,它相对于已知的eNodeB位置绘制,并在UE的位置相交。

发射机配置

endeb配置的一组(单元阵列)enb创建,enodeb的数量由NeNodeB.该构型由参考测量通道(RMC) R.5衍生而来lteRMCDL.R.5描述了使用64-QAM调制的3mhz带宽下行共享信道(PDSCH)传输。对于每个eNodeB,更新配置以确定单元标识NCellID唯一的和PRS参数NPRSRB知识产权而且PRSPeriod是集。

由每个eNodeB的X和Y坐标给出的随机位置由hPositioningPosition函数。

rng (“默认”);初始化随机数生成器流noenodeb = 5;% eNodeB数量创建eNodeB配置enb = cell(1, enendeb);i = 1: NeNodeB enb{我}= lteRMCDL (“R.5”);获取基于RMC的配置enb{}。NCellID= mod((i-1)*2,504);设置任意单元格标识enb{}。TotSubframes = 1;%要生成的子帧数enb{}。NPRSRB= 2;%资源块中PRS带宽enb{}。知识产权= 0;% PRS配置索引enb{}。PRSPeriod =“上”% PRS出现在所有子帧中enb{}。Position = hPositioningPosition(i-1, enodeb);% eNodeB位置结束%常规设置使用第一个eNodeB配置info = lteOFDMInfo(enb{1});

enodeb和UE的Plot Location

绘制了enodeb和UE的位置,以供参考。UE位于(0,0),enodeb分布在UE周围。

hPositioningPlotPositions (enb);

产生传输

对于每个eNodeB,传输由PRS、主同步信号(PSS)、辅助同步信号(SSS)和单元特定参考信号(Cell RS)组成。创建一个空资源网格,生成一个PRS并将其映射到网格ltePRS而且ltePRSIndices.PSS、SSS和Cell RS以类似的方式添加。所产生的网格是OFDM调制,以产生发射波形。

tx = cell(1, enodeb);i = 1: noenodeb grid = [];NSF = 0:19 enb{i}。NSubframe = mod(nsf,10);sfgrid = lteDLResourceGrid(enb{i});%空子帧sfgrid(ltePRSIndices(enb{i})) = ltePRS(enb{i});% PRS REssfgrid(ltePSSIndices(enb{i})) = ltepsss (enb{i});% PSS REssfgrid(lteSSSIndices(enb{i})) = lteSSS(enb{i});% SSS REssfgrid(lteCellRSIndices(enb{i})) = lteCellRS(enb{i});% Cell RS REsGrid = [Grid sfgrid];% #好< AGROW >结束enb{}。NSubframe = 0;tx{i} = lteofdm调制(enb{i},网格);OFDM调制结束

计算从enodeb到ue的时延

使用已知的eNodeB位置,每个eNodeB到UE的时延由UE与eNodeB之间的距离计算,半径,以及传播速度(光速)。利用抽样率的知识,信息。SamplingRate,计算样本延迟并存储在sampleDelay.这些变量将用于模拟enodeb和UE之间的环境,但这些信息不会提供给UE。

speedOfLight = 299792458.0;光速的%,单位为m/ssampleDelay = 0 (1, noenodeb);半径= cell(1, enodeb);i = 1: enendeb[~,半径{i}] = cart2pol(enb{i}.Position(1), enb{i}.Position(2));延迟=半径{i}/speedOfLight;%延迟(秒)sampleDelay(i) = round(delay*info.SamplingRate);样品延迟百分比结束

创建接收波形和图接收波形

在UE上接收的信号通过根据中的值延迟每个eNodeB传输来建模sampleDelay,并使用中的值衰减来自每个eNodeB的接收信号半径连同实施TR 36.814 [1城市宏观视线路径损失模型。从每个eNodeB接收的波形都用零填充,以确保所有波形的长度相同。

sumrx = 0(长度(tx{1})+max(sampleDelay), 1);rx = cell(1, enodeb);i = 1: noenodeb%城市宏LOS路径损耗每TR36.814PLdB = hPositioningPathLoss(半径{i}, 2.1e9);PL = 10^(PLdB/10);添加延迟,填充和衰减rx{i} = [0 (sampleDelay(i), 1);tx {};...0 (max(sampleDelay)-sampleDelay(i), 1)]/√(PL);所有endeb的波形之和Sumrx = Sumrx + rx{i};结束绘制接收到的波形hPositioningPlotRx(enb, rx, info.SamplingRate);

执行单元搜索以建立单元标识

执行多单元搜索是为了识别每个eNodeB的单元标识。配置的数组rxcfg然后基于检测到的小区标识创建enodeb,并假设PRS配置已由高层信令给出,因此UE已知。许多其他物理层参数,如循环前缀长度和双工模式,假定是已知的,并假定对于每个eNodeB是相等的。看到Cell搜索,MIB和SIB1恢复有关检测这些参数的更多信息的示例。

假设单元格搜索参数searchcfg。CyclicPrefix = enb{1}.CyclicPrefix;searchcfg。DuplexMode = enb{1}.DuplexMode;searchcfg。NDLRB = enb{1}.NDLRB;%执行多单元搜索searchalg。MaxCellCount = noenodeb;searchalg。SSSDetection =“PostFFT”;[cellIDs,offset] = lteCellSearch(searchcfg,sumrx, searchchalg);为每个检测到的单元设置配置;单元格被视为%,如果它们满足最小RSRQ阈值QqualminQqualmin = -20;RSRQdB = 0 (1,search . maxcellcount);rxcfg = cell(1,searchal . maxcellcount);I = 1:searchalg。MaxCellCount%假设参数Rxcfg {i} = enb{1};使用检测到的单元格标识rxcfg{}。NCellID= cellIDs(i);测量RSRQrxgrid = lteOFDMDemodulate(rxcfg{i},sumrx(1+offset (i):end,:));meas = hRSMeasurements(rxcfg{i},rxgrid);RSRQdB(i) = measure .RSRQdB;结束rxcfg(RSRQdB
               

估计到达时间

通过将传入信号与使用每个eNodeB的单元标识生成的本地PRS相关联,在UE上建立来自每个eNodeB的信号的到达时间。请注意,在UE上不能使用绝对到达时间来计算其位置,因为UE不知道enodeb有多远,只知道到达时间的差异所给出的距离差。因此,每个eNodeB的峰值相关性被用作延迟估计,以便进行比较。

ref = cell(1, Ndetected);corr = cell(1, Ndetected);delayEst = 0 (1, Ndetected);i = 1:Ndetected生成参考PRSsfgrid = lteDLResourceGrid(rxcfg{i});sfgrid(ltePRSIndices(rxcfg{i})) = ltePRS(rxcfg{i});ref{i} = lteofdm调制(rxcfg{i},sfgrid);将接收到的信号与每个参考PRS相关联C = abs(xcorr(sumrx,ref{i}));%用于定位和绘图的相关向量长度减少C(1:长度(sumrx)) = [];删除开始时无意义的结果corr{i} = c(1:info.Nfft);提取一个OFDM符号的数据值%延迟估计是在最大相关点delayEst(i) = find(corr{i}==max(corr{i}));结束图相关性%如果(Ndetected>0) hPositioningPlotCorr(rxcfg, corr, info.SamplingRate);结束

计算TDOA并绘制恒定TDOA双曲线

利用到达时间,计算每对enodeb之间的到达时间差hPositioningTDOA函数。一对eNodeB之间的特定到达时间差可能是由于UE位于以eNodeB为中心的两个圆相交的任何位置。这两个圆的半径因在给定的时间差下光速所覆盖的距离而不同。在一个圆的所有可能半径上的可能UE位置的完整集合(另一个圆保持一个适合于已经描述的时间差的半径)形成了双曲线。所有不同的endeb对的“常数延迟差双曲线”相对于已知的endeb位置绘制,并在UE的位置相交。

估计从每个eNodeB到达的时间差tdoa = hPositioningTDOA(delayEst,info.SamplingRate);绘制双曲线图(1);legendstr = feval(@(x)x. string,legend);Enbs = [enb{:}];txCellIDs = [enbs.NCellID];j = 1:Ndetectedi = (j+1):Ndetected dd = tdoa(i,j)*speedOfLight;延迟距离%%建立延迟距离为的enodeb%通过检查检测到的单元格标识适用txi = find(txCellIDs==rxcfg{i}.NCellID);txj = find(txCellIDs==rxcfg{j}.NCellID);如果(~isempty(txi) && ~isempty(txj))% plot TDOA曲线[x, y] = hPositioningTDOACurve(enb{txi}.]的位置,...enb {txj}。位置,dd);情节(x, y,凯西:”“线宽”2);结束结束结束传奇(legendstr);

附录

本例使用这些helper函数。

参考文献

  1. 3GPP TR 36.814“E-UTRA物理层方面的进一步进展”

Baidu
map