В этом примере показано, как оценить расстояние между двумя устройствами согласно стандарту 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 поправка включает три метода уровня MAC:
Одностороннее Двухстороннее Расположение (SS-TWR) - Одно устройство оценивает расстояние между двумя устройствами при помощи передачи системы координат в обоих направлениях беспроводной связи 802.15.4z ссылка.
Двустороннее Двухстороннее Расположение (DS-TWR) - Оба устройства оценивают расстояние между этими двумя устройствами при помощи передачи системы координат в обоих направлениях беспроводной связи 802.15.4z ссылка.
Одностороннее расположение / разница во времени прибытия (OWR/TDOA) - Помогшая с сетью локализация, посредством чего одно устройство связывается с набором синхронизируемых узлов, чтобы оценить положение устройства. Этот метод продемонстрирован в Локализации UWB Используя пример IEEE 802.15.4z.
Этот пример демонстрирует метод SS-TWR при помощи систем координат PHY, которые совместимы со стандартом IEEE 802.15.4 [1] и поправка [2] IEEE 802.15.4z. Для получения дополнительной информации о генерации форм волны PHY-уровня IEEE 802.15.4z смотрите пример Генерации сигналов IEEE 802.15.4a/z HRP UWB.
Двухстороннее расположение вовлекает передачу системы координат в оба направления беспроводной связи 802.15.4z ссылка. Односторонний располагающийся означает, что только одно из этих двух устройств оценивает расстояние между ними.
Каждая система координат синхронизирована в ее располагающемся маркере (RMARKER), который является временем первого символа после разделителя запуска из системы координат (SFD). Для получения дополнительной информации о полях в переданном кадре смотрите пример Генерации сигналов IEEE 802.15.4a/z HRP UWB. Располагающееся устройство респондента, передает кадр ответа после определенного времени ответа (Treply). Располагающееся устройство инициатора вычисляет время туда и обратно (Tround) как временной интервал между RMARKERs переданного и системами координат ответа. Treply передается с располагающегося устройства респондента на располагающееся устройство инициатора, так, чтобы последние оценки время распространения (Tprop) как Tprop = (Tround - Treply)/2.
Поправка [2] IEEE 802.15.4z задает несколько возможностей для совместного использования Treply:
Коммуникация Treply от респондента инициатору задерживается и выполняется с другим сообщением после системы координат ответа.
Встройте Treply в систему координат ответа.
Установите Treply на фиксированное значение, известное между инициатором и респондентом.
Этот пример рассматривает фиксированный сценарий времени ответа между этими двумя устройствами.
IEEE 802.15.4 [1] указывает, что обмененные системы координат должны быть системой координат Данных и ее подтверждением. Поправка [2] IEEE 802.15.4z ослабляет эту спецификацию и позволяет располагающемуся измерению выполняться по любой паре систем координат ответа и переданных. Однако для фиксированного сценария времени ответа, 802.15.4z поправка задает обмен скремблированным пакетным параметром конфигурации последовательности метки времени три (SP3) системы координат. Системы координат SP3 содержат скремблированную последовательность метки времени (STS) и никакой заголовок PHY (PHR) или полезная нагрузка.
Этот пример фокусируется на основном располагающемся обмене, не демонстрируя предыдущую настройку и после действий конца, сопоставленных с располагающейся процедурой.
Подтвердите установку Библиотеки Communications Toolbox™ для ZigBee® и дополнения UWB.
% Ensure that the ZigBee/UWB add-on is installed: commSupportPackageCheck('ZIGBEE');
Определите фактическое расстояние и Tprop, и инициализируйте визуализацию. Сконфигурируйте timescope
возразите, чтобы построить сигналы инициатора и респондента.
c = physconst('LightSpeed'); % Speed of light (m/s) actualDistance = 5; % In meters actualTprop = actualDistance/c; % In seconds SNR = 30; % Signal-to-Noise ratio symbolrate = 499.2e6; % Symbol rate for HRP PHY sps = 10; % Samples per symbol ts = timescope( ... SampleRate=sps*symbolrate, ... ChannelNames={'Initiator','Responder'}, ... LayoutDimensions=[2 1], ... Name='SS-TWR'); ts.YLimits = [-0.25 0.25]; ts.ActiveDisplay = 2; ts.YLimits = [-0.25 0.25];
Сгенерируйте форму волны, содержащую системы координат SP3 PHY (без MAC frame/PSDU), чтобы быть переданными между устройствами. Укажите переданный кадр на временной шкале инициатора.
sp3Config = lrwpanHRPConfig( ... Mode='HPRF', ... STSPacketConfiguration=3, ... PSDULength=0, ... Ranging=true); sp3Wave = lrwpanWaveformGenerator([],sp3Config); [transmitFrame,responseFrame] = deal(sp3Wave); % start initiator time at the start of transmission initiatorView = transmitFrame;
Пропустите систему координат передачи через AWGN, образовывают канал и добавляют задержку распространения. Затем временная шкала обновления для обеих конечных точек ссылки.
samplesToDelay = actualTprop*sp3Config.SampleRate;
receivedTransmitted = lclDelayWithNoise( ...
transmitFrame,samplesToDelay,SNR);
initiatorView = [initiatorView; zeros(ceil(samplesToDelay),1)];
responderView = receivedTransmitted;
В стороне респондента обнаружьте преамбулу 802.15.4z система координат PHY, и затем обработайте переданный кадр. Обнаружение преамбулы состоит из определения первой инстанции преамбулы из Nsync = PreambleDuration. Постройте представления инициатора и респондента о timescope
.
ind = lrwpanHRPFieldIndices(sp3Config); % length (start/end) of each field sp3Preamble = sp3Wave(1:ind.SYNC(end)/sp3Config.PreambleDuration); preamPos = helperFindFirstHRPPreamble( ... receivedTransmitted,sp3Preamble,sp3Config); ts(initiatorView,responderView);
Установите время Treply на длину трех систем координат SP3 задавать, когда передать кадр ответа. Установите первые и последние демонстрационные индексы RMARKER на стороне респондента быть началом первого символа пост-SFD и выборок Treply позже. После выборок Treply передайте кадр ответа от устройства респондента.
Treply = 3*length(sp3Wave); % in samples % Find RMARKERs at responder side frameStart = 1+preamPos-ind.SYNC(end)/sp3Config.PreambleDuration; sfdEnd = frameStart + ind.SYNC(end) + diff(ind.SFD); RMARKER_R1 = sfdEnd+1; RMARKER_R2 = RMARKER_R1 + Treply; % Transmit after Treply. Find how long the responder needs to remain idle. idleResponderTime = Treply - diff(ind.STS)-1 - diff(ind.SHR)-1; responderView = [responderView; zeros(idleResponderTime,1); responseFrame; zeros(ceil(samplesToDelay),1)]; initiatorView = [initiatorView; zeros(idleResponderTime, 1)];
Пропустите систему координат передачи через AWGN, образовывают канал и добавляют задержку распространения. Затем временная шкала обновления для обеих конечных точек ссылки.
receivedResponse = lclDelayWithNoise( ...
responseFrame,samplesToDelay,SNR);
initiatorView = [initiatorView; receivedResponse];
Назад в стороне инициатора, обнаружьте преамбулу 802.15.4z система координат PHY, и затем обработайте переданный кадр.
txFrameEnd = ind.STS(end);
preamPos = helperFindFirstHRPPreamble( ...
initiatorView(txFrameEnd+1:end),sp3Preamble,sp3Config);
Оцените задержку распространения и расстояние между двумя устройствами. Установите первые и последние демонстрационные индексы RMARKER на стороне инициатора быть запуском передачи (который известен в t=0), и начало первого символа пост-SFD. Используйте RMARKERs, Tround и Tprop, чтобы оценить расстояние между инициатором и респондентом.
RMARKER_I1 = 1+ind.SFD(end); frameStart = 1+preamPos-ind.SYNC(end)/sp3Config.PreambleDuration; sfdEnd = txFrameEnd + frameStart + ind.SYNC(end) + diff(ind.SFD); RMARKER_I2 = sfdEnd+1; Tround = RMARKER_I2 - RMARKER_I1; % In samples Tprop = (Tround-Treply)/(2*sp3Config.SampleRate); % In seconds estimatedDistance = c*Tprop; % In meters
Этот timescope
иллюстрирует обмен системы координат, когда на Рис., 6-47a в [2] с пределом Оси X, увеличил масштаб, чтобы видеть, что распространение задерживается между системами координат ответа и переданным.
reset(ts); ts([initiatorView; zeros(ceil(samplesToDelay),1)],responderView); release(ts);
Предполагаемое расстояние является несколькими сантиметрами, отличающимися, чем фактическое расстояние.
fprintf(['Actual distance = %d m.' ... '\nEstimated Distance = %0.2f m' ... '\nError = %0.3f m (%0.2f%%)\n'], ... actualDistance,estimatedDistance, ... estimatedDistance-actualDistance, ... 100*(estimatedDistance-actualDistance)/actualDistance)
Actual distance = 5 m. Estimated Distance = 5.01 m Error = 0.015 m (0.29%)
Для располагающихся методов, которые используют оценку времени рейса (TOF), ошибки на расстоянии оценивают, в основном, вызываются, когда время распространения (Tprop) не является целочисленным кратным шаг расчета. Самая большая ошибка по дальности для таких методов расположения происходит, когда Tprop длится половине шага расчета больше, чем целочисленный шаг расчета кратного. Самая маленькая ошибка по дальности происходит, когда Tprop является целочисленным шагом расчета кратного. Для более высокого импульсного режима (HRPF) частоты повторения частоты повторения импульса высокого показателя (HRP) PHY использовал в этом примере, уровень символа составляет 499,2 МГц, и количество отсчетов на символ равняется 10, который приводит к максимальной погрешности по оценке Tprop . Так, значение по умолчанию, располагающееся ошибка, находится между 0 и 3 см.
В общем случае большая полоса пропускания канала в UWB соответствует более короткой длительности символа и меньшей располагающейся ошибке, как сравнено, чтобы узкополосно передать коммуникацию. Для узкополосной коммуникации, как задано в IEEE 802.11az, полоса пропускания канала лежит в диапазоне от 20 МГц до 160 МГц. При рассмотрении максимальной ошибки Tprop для узкополосной коммуникации оценки для располагающейся ошибки находятся между 0 и 10 см для 160 МГц и между 0 и 75 см для 20 МГц. Для получения дополнительной информации относительно расположения с IEEE 802.11az, смотрите 802.11az Располагающий Используя Супервремя разрешения Оценки Прибытия (WLAN Toolbox) пример.
Этот пример использует эти объекты и функции от Библиотеки Communications Toolbox™ для ZigBee® и дополнения UWB.
lrwpanHRPConfig: настройка формы волны HRP
lrwpanWaveformGenerator: Создайте форму волны IEEE 802.15.4a/z HRP UWB
Эти утилиты не документированы и их API, или функциональность может измениться в будущем.
function received = lclDelayWithNoise(transmitted, samplesToDelay, SNR) % lclDelayWithNoise Operations of wireless channel (propagation delay, AWGN) vfd = dsp.VariableFractionalDelay; % zero pad @ end, to get entire frame out of VFD delayedTransmitted = vfd( ... [transmitted; zeros(ceil(samplesToDelay), 1)],samplesToDelay); % add white gaussian noise: received = awgn(delayedTransmitted,SNR); end
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.