802.11az внутреннее расположение Используя время прибытия

В этом примере показано, как вычислить, положение станции (STA) в сети IEEE® 802.11az™ Wi-Fi™ использование расположения времени прибытия (TOA) приближаются в сочетании с методом трилатерации. Пример измеряет точность позиционирования относительно отношения сигнал-шум (SNR) путем вычисления расстояния между предполагаемым и фактическими положениями STA в канале аддитивного белого Гауссова шума (AWGN).

Введение

Появление 802.11az стандарт [1], обычно называемый расположением следующего поколения (NGP), позволяет STA идентифицировать свое положение относительно другого STAs. Этот стандарт поддерживает две высокой эффективности (HE), располагающуюся физический уровень (PHY) модуль данных о протоколе (PPDU) форматы:

  • HE, располагающийся пустой пакет данных (NDP)

  • Основанный на триггере (TB) HE, располагающийся NDP

HE, располагающийся NDP и Тбайт HE, располагающийся NDP, является соответствующими аналогами HE, звучащего как NDP и Тбайт HE обратная связь NDP форматы PPDU, как задано в 802.11ax™ стандарт. Для получения дополнительной информации о них HE форматы PPDU см. [2].

HE, располагающийся NDP, поддерживает расположение одного или нескольких пользователей с дополнительным безопасным HE длинное учебное поле (HE-LTF) последовательность. Однопользовательский HE, располагающийся, форма волны содержит символы HE-LTF для отдельного пользователя, которые также поддерживают дополнительную безопасную последовательность HE-LTF. Многопользовательский HE, располагающийся форма волны, разрешает только безопасные символы HE-LTF для многого пользователя. Чтобы улучшить точность оценки положения, однопользовательские и многопользовательские формы волны могут содержать несколько повторений символов HE-LTF. Чтобы параметрировать и сгенерировать 802.11az HE, располагающийся АРИФМЕТИЧЕСКИЕ ПРОЦЕССОРЫ, смотрите 802.11az Генерация сигналов.

Этот пример симулирует 802.11az сеть, состоящая из STA и нескольких точек доступа (APS). Чтобы оценить положение STA, сеть требует минимума трех APS. Пример демонстрирует располагающийся обмен измерения между STA и каждым AP:

  • Генерация HE, располагающегося NDP

  • Добавление задержки с учетом распространения по расстоянию

  • Добавление AWGN к переданному NDP, чтобы создать желаемый ОСШ

  • Выполнение синхронизации и оценки канала в приемнике и,

  • Вычисление времени цикла обработки (RTT) от фазы переключает оценки канала частотного диапазона на нижний регистр

Оцените положение STA путем выполнения метода трилатерации с помощью расстояний, выведенных из RTT. В каждой точке ОСШ определите среднюю точность положения путем сравнения предполагаемого положения STA к его фактической позиции по нескольким итерациям. ОСШ является тем же самым для всех каналов между STA и AP.

Эта схема иллюстрирует сеть с STA и несколькими AP.

802.11az сеть Wi-Fi

Располагающийся Exchange измерения

В этом примере STA действует как инициирующая станция (ISTA) и действие APS как станции назначения (RSTA). Между APS (RSTAs) и STA (ISTA), неТбайт, располагающийся, последовательность обмена измерения происходит в двух фазах:

  1. Звучащая фаза измерения

  2. Фаза создания отчетов измерения

STA и AP обмениваются располагающимся объявлением NDP (NDPA) система координат и HE, располагающийся, NDP структурирует (I2R/R2I NDP) во время звучащей фазы измерения и системы координат отчета измерения местоположения (LMR) во время фазы создания отчетов измерения, показанной в этом рисунке.

НеТбайт, располагающийся измерение, обменивается последовательностью

Этот пример симулирует звучащий обмен измерения между APS и STA, чтобы оценить положение STA.

Звучащая фаза измерения

STA и APS выполняют измерения TOA путем получения меток времени NDP. STA записывает время (t1), в котором передается восходящий NDP (UL NDP). AP затем получает время (t2), в котором UL NDP прибывает и записывает время (t3), в котором передается нисходящий NDP (DL NDP). STA наконец получает время (t4), в который прибывает DL NDP.

RTT задан как:

RTT = (t4 – t1) – (t3 – t2)

Эта схема иллюстрирует звучащую фазу измерения между STA и одним AP.

Синхронизация схемы фазы Measurement Sounding в Расположении неТбайта

В этом примере, чтобы вычислить RTT, используют основанную на фазе-сдвигом синхронизацию оценки tp2 и tp4 вместо меток времени базирующийся TOAs, t2 и t4. Определите tp2 и tp4 от наклона фазы оценок канала частотного диапазона соответствующего NDP.

Фаза основанный на сдвигах RTT задана как:

RTT = (t4 – t1) – (t3 – t2’’), с t2’’ = tp2 – (tp4 – t4)

Вычислите расстояние между STA и каждым AP от RTT как:

расстояние = RTT*c/2, где c является скоростью света

Используйте метод трилатерации, чтобы оценить положение STA от предполагаемых расстояний и известное положение APS.

Параметры симуляции

Задайте количество APS в сети. Чтобы оценить положение STA, сеть требует минимума трех APS.

numAPs = 3; % Number of APs, must be >=3

Укажите диапазон ОСШ и количество итераций, чтобы симулировать каждую точку ОСШ.

snr = 5:2:15; % SNR (dB)
numIterations = 100; % Number of iterations to average the position error

Настройка формы волны

Чтобы сконфигурировать HE, располагающийся параметры NDP, соответствующие APS и STA, используйте heRangingConfig объект.

chanBW = 'CBW20'; % Channel bandwidth
numTx = 1; % Number of transmit antennas
numSTS = 1; % Number of space-time streams
numLTFRepetitions = 2; % Number of LTF repetitions

% Configure the HE ranging NDP parameters of the STA
cfgSTA = heRangingConfig;
cfgSTA.ChannelBandwidth = chanBW;
cfgSTA.NumTransmitAntennas = numTx;
cfgSTA.SecureHELTF = верный;
cfgSTA.User {1}.NumSpaceTimeStreams = numSTS;
cfgSTA.User {1}.NumHELTFRepetition = numLTFRepetitions;
cfgSTA.GuardInterval = 1.6;

% Configure the HE ranging NDP parameters of the APs
cfgAP = ячейка (1, numAPs);
for iAP = 1:numAPs
    cfgAP {iAP} = heRangingConfig;
    cfgAP {iAP}.ChannelBandwidth = chanBW;
    cfgAP {iAP}.NumTransmitAntennas = numTx;
    cfgAP {iAP}.SecureHELTF = верный;
    cfgAP {iAP}.User {1}.NumSpaceTimeStreams = numSTS;
    cfgAP {iAP}.User {1}.NumHELTFRepetition = numLTFRepetitions;
    cfgAP {iAP}.GuardInterval = 1.6;
end

Располагающаяся оценка измерения и положения

Этот пример оценивает положение STA от располагающегося обмена измерения между STA и APS путем выполнения этих шагов:

  1. Расположите STA в начале координат и numAPs APS случайным образом в xy-плоскости.

  2. Оцените расстояние путем моделирования обмена измерения для каждого STA-AP и ссылки AP-STA: Сгенерируйте располагающийся NDP и задержите NDP согласно расстоянию и добавьте AWGN. Выполните синхронизацию на полученной форме волны и оцените канал. Вычислите время передачи из оценок канала.

  3. Вычислите RTT со времен передачи и оцените расстояние между STA и каждым AP.

  4. Оцените положение STA путем выполнения трилатерации с помощью предполагаемых расстояний.

Повторите вышеупомянутый процесс для numIteration времена со случайными положениями AP в области значений точек ОСШ.

Этот рисунок иллюстрирует обработку для каждой ссылки между STA и AP.

Рабочий процесс в качестве примера

% Validate the simulation parameters
if numAPs<3
    error('Number of APs must be greater than or equals to 3');
end
if numIterations<=0
    error('Number of iterations must be a positive integer scalar');
end

% Define constants
speedOfLight = physconst('lightspeed');  % Speed of light (m/s)
subcarrierSpacing = 78.125e3;            % Subcarrier spacing (Hz)
carrierFrequency = 5e9;                  % Carrier frequency (Hz)
if carrierFrequency == 5e9
    delayULDL = 16e-6;                   % Time gap (tDelay) between UL NDP TOA and DL NDP TOD (sec)
elseif carrierFrequency == 2.4e9
    delayULDL = 8e-6; 
end

% Get sample rate
sampleRate = heRangingSampleRate(cfgSTA);

% Get occupied subcarrier indices and OFDM parameters
ofdmInfo = wlanHEOFDMInfo('HE-LTF',chanBW,cfgSTA.GuardInterval);

% Initialize average position error
numSNR = numel(snr); % Number of SNR points
avgPositionError = zeros(1,numSNR);
for isnr = 1:numSNR % Loop over SNR range
    
    % Set random substream index to ensure that each iteration uses a
    % repeatable set of random numbers
    stream = RandStream('combRecursive','Seed',123456);
    stream.Substream = isnr;
    RandStream.setGlobalStream(stream);
    
    % Loop over number of iterations to average the positioning error. For
    % each iteration, generate random positions for the STA and APs and model
    % ranging measurement exchange between each AP and STA.
    positionError = 0;
    linkFailCount = 0;
    for iter = 1:numIterations
        
        % Randomly place the STA and APs in the xy-plane
        [positionSTA, positionAP, distance] = heGeneratePositions(numAPs);
        
        % Range-based delay
        delay = distance/speedOfLight;
        sampleDelay = delay*sampleRate;
        
        % Loop over the number of APs
        distEst = zeros(1,numAPs); % Estimate distance
        for ap = 1:numAPs
            linkType = ["Uplink", "Downlink"];
            
            % Time of departure of UL NDP (t1)
            todUL = randsrc(1,1,0:1e-9:1e-6);
            
            % Loop for both UL and DL transmission
            numLinks = numel(linkType);
            txTime = zeros(1,numLinks);
            for l = 1:numLinks
                if linkType(l) == "Uplink" % STA to AP
                    cfgSTA.UplinkIndication = 1; % For UL
                    % Generate a random secure HE-LTF sequence for the exchange
                    cfgSTA.User{1}.SecureHELTFSequence = dec2hex(randsrc(1,10,(0:15)))';
                    cfg = cfgSTA;
                else % AP to STA
                     % Generate a random secure HE-LTF sequence for the exchange
                    cfgAP{ap}.User{1}.SecureHELTFSequence = dec2hex(randsrc(1,10,(0:15)))';                 
                    cfg = cfgAP{ap}; % For DL
                end
                
                % HE Ranging NDP transmission
                tx = heRangingWaveformGenerator(cfg);
                
                % Introduce time delay in the transmit waveform
                txDelay = heDelaySignal(tx,sampleDelay(ap)); % Add both integer and fractional delay
                
                % Pass the waveform through AWGN channel
                % Account for noise energy in nulls so the SNR is defined
                % per active subcarrier and per transmit antenna
                rx = awgn(txDelay,snr(isnr)-10*log10(ofdmInfo.FFTLength/(numTx*ofdmInfo.NumTones)));
                
                % Perform synchronization by assuming that the transmit
                % side secure HE-LTF sequence is known at the receiver
                [chanEst, integerOffset] = heRangingSynchronize(rx,cfg);
                
                % Estimate the transmission time between UL and DL
                if ~isempty(chanEst) % If packet detection is successful
                    diffAngleChan = diff(unwrap(angle(chanEst))) ;
                    fracDelay = -mean(diffAngleChan(:))/(2*pi*subcarrierSpacing); % Estimate fractional time delay
                    intDelay = integerOffset/sampleRate;  % Estimate integer time delay
                    txTime(l) = intDelay + fracDelay; % Transmission time
                    rangeEstFlag = 1; % If packet detection is successful, enable the range estimation flag 
                else
                    rangeEstFlag = 0; % If packet detection fails, disable the range estimation flag 
                    break;
                end
                    
            end
            if rangeEstFlag % If packet detection is successful
                % TOA of UL waveform (t2)
                toaUL = todUL + txTime(1);
                
                % Time of departure of DL waveform (t3)
                todDL = toaUL + delayULDL;
                
                % TOA DL waveform (t4)
                toaDL = todDL + txTime(2);
                
                % Compute the RTT
                rtt = (toaDL-todUL) - (todDL-toaUL);
                
                % Estimate the distance between the STA and AP
                distEst(ap) = (rtt/2)*speedOfLight;
            else
                break; % If packet detection fails, discard the link between STA and AP
            end
        end
        
        % If range estimation flag is enabled, then estimate the STA
        % position using trilateration and compute the position error.
        if rangeEstFlag
            positionSTAEst = hePositionEstimate(positionAP,distEst);
            positionError = positionError + sqrt(sum((positionSTAEst - positionSTA).^2));
        else
            positionSTAEst = NaN;
            linkFailCount = linkFailCount + 1; % Count the failed links used to average the position error
        end
    end
    if linkFailCount == numIterations % If all the links fail at a given SNR value
        disp(['At SNR = ',num2str(snr(isnr)),' dB, ', 'all ranging NDP packet transmissions failed'])
    else
        avgPositionError(isnr) = positionError/(numIterations-linkFailCount);
        disp(['At SNR = ',num2str(snr(isnr)),' dB, ', 'Positioning error in meters = ', num2str(avgPositionError(isnr))]) 
    end
end
At SNR = 5 dB, Positioning error in meters = 1.4137
At SNR = 7 dB, Positioning error in meters = 0.77532
At SNR = 9 dB, Positioning error in meters = 0.63
At SNR = 11 dB, Positioning error in meters = 0.51577
At SNR = 13 dB, Positioning error in meters = 0.42353
At SNR = 15 dB, Positioning error in meters = 0.37412

Результаты симуляции

При расположении пакетные передачи NDP успешны, этот раздел генерирует эти графики:

График № 1: Постройте STA, оцененный STA и положения APS в xy-плоскости с кругами трилатерации для последнего значения ОСШ и для последней итерации.

График № 2: Постройте среднюю ошибку положения (метры) против ОСШ (дБ).

if ~isnan(positionSTAEst)
    % Plot the position of APs and STA
    heRangingPlotPositions(positionAP,positionSTAEst,distEst,snr(isnr),iter);
end

% Plot the position error (meters) against SNR (dB)
figure
semilogy(snr,avgPositionError,'-b*','LineWidth',2,...
    'MarkerEdgeColor','b',...
    'MarkerSize',10)
hold on; grid on
xlabel('SNR (dB)')
ylabel('Estimated position error (meters)')
title('Position accuracy in an 802.11az network')

Заключение

Этот пример выполняет HE, располагающийся обмен измерения NDP между APS и STA, чтобы оценить положение STA с помощью трилатерации. Пример также измеряет точность позиционирования, связанную с ОСШ путем вычисления расстояния между предполагаемыми и фактическими положениями STA в канале AWGN. Чтобы параметрировать и сгенерировать 802.11az HE, располагающийся АРИФМЕТИЧЕСКИЕ ПРОЦЕССОРЫ, смотрите 802.11az Генерация сигналов.

Дальнейшее исследование

Чтобы получить значимую среднюю ошибку положения, увеличьте число итераций numIterations в каждой точке ОСШ. Чтобы визуализировать удар на точность положения, можно также увеличить число повторений LTF, numLTFRepetitions и в STA и в AP. Этот рисунок сгенерирован путем выполнения более длительной симуляции с тремя APS, 1 000 итераций для пропускной способности канала 20 МГц и области значений значений ОСШ, 7:2:21. Этот график показывает, что предполагаемая ошибка положения уменьшается с увеличением повторений LTF.

Выбранная библиография

  1. Черновой Стандарт IEEE P802.11az™/D2.0 для Информационных технологий — Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями — Конкретными требованиями - Поправка 3: Улучшения для расположения.

  2. Черновой Стандарт IEEE P802.11ax™/D4.1 для Информационных технологий - Телекоммуникаций и обмена информацией между системами - Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования - Поправка 6: Улучшения для Высокой эффективности WLAN.