В этом примере показано, как оценить местоположение единого устройства согласно стандарту IEEE® 802.15.4z™ [2], пользуясь Библиотекой Communications Toolbox™ для ZigBee® и дополнения UWB.
Поправка [2] IEEE 802.15.4z стандарта IEEE® 802.15.4 [1] является MAC и спецификацией PHY, спроектированной для расположения и локализации с помощью крайней широкополосной коммуникации (UWB). Очень короткая импульсная длительность UWB позволяет более прекрасную гранулярность во временном интервале и поэтому более точные оценки в пространственной области.
Ключевая функциональность расположения и локализации 802.15.4z поправка включает 3 метода уровня MAC:
Одностороннее Двухстороннее Расположение (SS-TWR) - Одно устройство оценивает расстояние между двумя устройствами при помощи передачи системы координат в обоих направлениях беспроводной связи 802.15.4z ссылка. Этот метод продемонстрирован в UWB, Располагающемся Используя пример IEEE 802.15.4z.
Двустороннее Двухстороннее Расположение (DS-TWR) - Оба устройства оценивают расстояние между этими двумя устройствами при помощи передачи системы координат в обоих направлениях беспроводной связи 802.15.4z ссылка.
Одностороннее расположение / разница во времени прибытия (OWR/TDOA) - Помогшая с сетью локализация, посредством чего одно устройство связывается с набором синхронизируемых узлов, чтобы оценить положение устройства.
Этот пример демонстрирует метод OWR/TDOA для восходящих передач, при помощи MAC, и системы координат PHY совместимы со стандартом IEEE 802.15.4 [1] и поправка [2] IEEE 802.15.4z. Для получения дополнительной информации о генерации форм волны PHY-уровня IEEE 802.15.4z смотрите пример Генерации сигналов IEEE 802.15.4a/z HRP UWB. Для получения дополнительной информации о генерации системы координат MAC IEEE 802.15.4 смотрите IEEE 802.15.4 - Генерация Системы координат MAC и пример Декодирования.
Одностороннее расположение (OWR) вовлекает передачу системы координат или в восходящий канал или в нисходящее направление. В восходящем случае, устройство, которое будет периодически локализоваться широковещательные короткие сообщения, называемые миганиями. Поправка [2] IEEE 802.15.4z не предусматривает определенный формат системы координат для миганий, однако она утверждает, что мигания должны быть максимально короткими. Эти сообщения мигания получены набором узлов инфраструктуры, которые синхронизируются или через соединенную проводом магистраль или по ссылке радиосвязей UWB. В нисходящем случае синхронизируемые узлы периодически передают широковещательные сообщения с известным смещением времени.
Разница во времени прибытия (TDOA) между периодическими сообщениями помещает устройство в одну гиперболическую поверхность для каждой пары синхронизируемых узлов [3]. Пересечение всех гиперболических поверхностей (для каждой пары синхронизируемых узлов) дает оценку местоположения для устройства.
Этот пример демонстрирует восходящий случай OWR.
Подтвердите установку Библиотеки Communications Toolbox™ для ZigBee® и дополнения UWB.
% Check if the 'Communications Toolbox Library for ZigBee and UWB' support package is installed: commSupportPackageCheck('ZIGBEE');
Настройте сеть с 3 синхронизируемыми узлами и 1 устройством, в 100x100 плоскость:
numNodes = 3;
deviceLoc = [50 50]; % place device at the center
nodeLoc = [40,41;
62,83;
87,24];
TDOA = nan(numNodes);
helperShowLocations(deviceLoc,nodeLoc);
Вычислите фактическое расстояние и время рейса (TOF) между узлами и устройством.
actualDistances = sqrt(sum((nodeLoc - deviceLoc).^2, 2)); c = physconst('LightSpeed'); % speed of light (m/s) actualTOF = actualDistances/c; SNR = 30;
Используйте короткое (MAC IEEE 802.15.4) система координат данных как мигание.
numBlinks = 1; % MAC layer: payload = '00'; cfg = lrwpan.MACFrameConfig( ... FrameType='Data', ... SourceAddressing='Short address', ... SourcePANIdentifier='AB12', ... SourceAddress='CD77'); blinkMAC = lrwpan.MACFrameGenerator(cfg,payload); % PHY layer: % Ensure the Ranging field is enabled. % Also set the proper PSDU length. blinkPHYConfig = lrwpanHRPConfig( ... Mode='HPRF', ... STSPacketConfiguration=1, ... PSDULength=length(blinkMAC), ... Ranging=true); blinkPHY = lrwpanWaveformGenerator( ... blinkMAC, ... blinkPHYConfig); % Cache preamble, to use in preamble detection. % Get the 1st instance out of the Nsync=PreambleDuration repetitions. ind = lrwpanHRPFieldIndices(blinkPHYConfig); % length (start/end) of each field blinkPreamble = blinkPHY( ... 1:ind.SYNC(end)/blinkPHYConfig.PreambleDuration); % 1 of the Nsync repetitions
В цикле симуляции мигание распространяет к каждому узлу с задержкой распространения, которая определяется их отличным расстоянием. Затем каждая пара узлов вычисляет разность их времени поступления мигания. В результате положение устройства оценивается в гиперболической поверхности для каждой пары узлов. Пересечение всех поверхностей дает оценку положения для устройства. Здесь, график 2D кривых показывает точку пересечения, чтобы указать на оценку положения для устройства.
vfd = dsp.VariableFractionalDelay; arrivalTime = zeros(1,numNodes); plotStr = {'r--','b--','g--'}; [x, y] = deal(cell(1, 3)); for idx = 1:numBlinks for node = 1:numNodes % Transmission and reception of blink % Each node receives a specifically delayed version of the blink tof = actualTOF(node); samplesToDelay = tof * blinkPHYConfig.SampleRate; reset(vfd); release(vfd); vfd.MaximumDelay = ceil(1.1*samplesToDelay); delayedBlink = vfd( ... [blinkPHY; zeros(ceil(samplesToDelay), 1)], ... samplesToDelay); % Add white Gaussian noise receivedBlink = awgn(delayedBlink,SNR); % Node receiver detection of preamble preamPos = helperFindFirstHRPPreamble( ... receivedBlink,blinkPreamble,blinkPHYConfig); % Transmit each blink at t=0 of each period arrivalTime(node) = ( ... preamPos - ind.SYNC(end) / ... blinkPHYConfig.PreambleDuration)/blinkPHYConfig.SampleRate; end % Localization: Estimate position at synchronized backbone for each pair % of nodes pairCnt = 1; for node1 = 1:numNodes for node2 = (node1+1):numNodes % Calculate Time Difference of Arrival (TDOA) TDOA(node1, node2) = arrivalTime(node1)-arrivalTime(node2); % Get hyperbolic surface for the TDOA between node1 and node2 [x{pairCnt}, y{pairCnt}] = helperGetHyperbolicSurface( ... nodeLoc(node1,:), ... nodeLoc(node2,:), ... TDOA(node1,node2)); plot(x{pairCnt},y{pairCnt},plotStr{pairCnt}); pairCnt = pairCnt + 1; end end % Find intersection points between hyperbolic surfaces [xC,yC] = helperFindHyperbolicIntersection(x,y); plot(xC,yC,'rx') % Estimate location as the center of intersection triangle xO = mean(xC); yO = mean(yC); plot(xO,yO,'ro') end legend( ... 'Device', ... 'Synchronized nodes', ... 'A-B', ... 'A-C', ... 'B-C', ... 'Intersections', ... 'Estimation', ... 'location', ... 'northwest')
Увеличение к области оценки:
axis([deviceLoc(1) + 2e-2*[-1 1],deviceLoc(2) + 2e-2*[-1 1]])
Вычислите ошибку локализации.
locError = sqrt(sum([xO yO]-deviceLoc).^2);
fprintf('Localization error = %0.3f m.\n',locError);
Localization error = 0.012 m.
Для методов локализации, которые используют оценку времени прибытия, ошибки на расстоянии оценивают, в основном, вызываются, когда время поступления не является целочисленным кратным шаг расчета. Самая большая ошибка по дальности для таких методов локализации происходит, когда время поступления длится половине шага расчета больше, чем целочисленный шаг расчета кратного. Самая маленькая ошибка по дальности происходит, когда время поступления является целочисленным шагом расчета кратного. Для более высокого импульсного режима (HRPF) частоты повторения частоты повторения импульса высокого показателя (HRP) PHY использовал в этом примере, уровень символа составляет 499,2 МГц, и количество отсчетов на символ равняется 10. Максимальная ошибка расчета расстояния , который составляет приблизительно 3 см.
В общем случае большая полоса пропускания канала в UWB соответствует более короткой длительности символа и меньшей располагающейся ошибке, как сравнено, чтобы узкополосно передать коммуникацию. Для узкополосной коммуникации, как задано в IEEE 802.11az, полоса пропускания канала лежит в диапазоне от 20 МГц до 160 МГц. При рассмотрении максимальной ошибки по дальности для узкополосной коммуникации оценки для ошибки локализации находятся между 0 и 10 см для 160 МГц и между 0 и 75 см для 20 МГц. Для получения дополнительной информации относительно расположения с IEEE 802.11az, смотрите 802.11az Располагающий Используя Супервремя разрешения Оценки Прибытия (WLAN Toolbox) пример.
Этот пример использует эти объекты и функции от Библиотеки Communications Toolbox™ для ZigBee® и дополнения UWB.
lrwpan.MACFrameConfig: Создайте настройку для 802.15.4 систем координат MAC
lrwpan.MACFrameGenerator: Сгенерируйте 802.15.4 систем координат MAC
lrwpanHRPConfig: настройка формы волны HRP
lrwpanWaveformGenerator: Создайте форму волны IEEE 802.15.4a/z HRP UWB
Эти утилиты не документированы и их API, или функциональность может измениться в будущем.
1 - "Стандарт IEEE для Беспроводных сетей С низкой ставкой", в Станд. IEEE 802.15.4-2020 (Версия Станд. IEEE 802.15.4-2015), pp.1-800, 23 июля 2020, doi: 10.1109/IEEESTD.2020.9144691.
2 - "Стандарт IEEE для Беспроводных сетей С низкой ставкой - Поправка 1: Расширенные Крайние Широкополосные Физические уровни (UWB) (ФИЗИКА) и Связанные Располагающиеся Методы", в Станд. IEEE 802.15.4z-2020 (Поправка к Станд. IEEE 802.15.4-2020), pp.1-174, 25 августа 2020, doi: 10.1109/IEEESTD.2020.9179124.
3 - Вонг, С.; Заргэни, Р. Джессеми; Brookes, D. & Ким, B. "Пассивный элемент предназначается для локализации с помощью геометрического подхода к различию времени метода прибытия", Оборонные Научные исследования Канада Научный Отчет, DRDC RDDC 2017 R079, июнь 2017, стр 1-77