Skip to content
Урок 3. Несколько лис и усреднение

Урок 3. Несколько лис и усреднение

Урок 3. Несколько лис по очереди: расписание ARDF и усреднение

Паспорт урока

ПараметрЗначение
Место в модулеFoxHunter, модуль 1 «Физика пеленгации», урок 3 из 6
Длительность45 мин (класс) + полевой выход 90 мин
Возраст11–16, материал двухуровневый
Оборудование3 лисы (FOX_ID = 1, 2, 3), охотник, foxhunt_sim.py
Предварительные знанияУроки 1–2: дБм, зоны, динамический диапазон
ПредметИнформатика (разделение ресурса), математика (среднее, дисперсия)

Образовательные цели

ЦельБлумМиллерЧем доказывается
3.1Объяснять разделение времени как способ сосуществования передатчиковпониматьзнает какРазбор слотовой схемы
3.2Обосновывать необходимость сброса буфера при смене источникаанализироватьзнает какОтвет про rssiReset()
3.3Выбирать окно усреднения под условия задачиоцениватьпоказывает какПодобранный RSSI_AVG_N с обоснованием
3.4Различать шум измерения и реальное изменение величиныанализироватьзнает какОтвет: «цифра прыгает — это поломка?»

Сценарий занятия (45 минут)

ВремяБлокЧто делает педагогЧто делают ученики
0–5RetrievalМини-квиз по уроку 2Пишут, разбор вслух
5–12Проблема 1: три лисыВключает три лисы одновременно на одной частотеНаблюдают хаос
12–22Теория: разделение времениСлоты, расписание, позывныеСчитают параметры цикла
22–28Проблема 2: прыгающая цифраПоказывает сырой RSSI на неподвижном охотникеВидят разброс ±3–5 дБ
28–38Теория: усреднениеСкользящее среднее, компромиссРаботают с симулятором
38–45Практика и ДЗРазбор задачРешают свой уровень

Блок 1. Проблема первая: три лисы (5–12 мин)

Демонстрация

Педагог включает три лисы одновременно, все с FOX_COUNT = 1 (то есть каждая вещает непрерывно, не зная о соседях).

«Раньше была одна лиса. Теперь их три, и все кричат непрерывно на одной частоте. Что услышит охотник?»

Что произойдёт

Охотник будет принимать пакеты вперемешку от всех трёх. Зуммер начнёт метаться: то громко (близкая лиса), то тихо (дальняя). Найти какую-либо конкретную лису невозможно — прибор показывает «то одно, то другое».

Часть пакетов вообще пропадёт: если две лисы передают одновременно, их сигналы накладываются и приёмник не разбирает ни один. Это коллизия.

Постановка проблемы

На доску:

Три передатчика на одной частоте мешают друг другу. Нужен способ поделить эфир.

Вопрос классу: «Как поделить одну частоту между тремя лисами?»

Ожидаемые ответы детей и реакция:

Идея ученикаКомментарий педагога
«Дать каждой свою частоту»Правильно, так тоже делают — это частотное разделение. Но тогда охотнику нужно три приёмника или перестройка
«Пусть говорят по очереди»Это нужный ответ. Записать
«Пусть говорят тише»Не поможет: они всё равно наложатся
«Пусть каждая скажет свой номер»Верно, и мы это сделаем — но сначала надо развести их во времени

Блок 2. Теория: разделение времени (12–22 мин)

2.1. Базовый уровень (11–13 лет)

Через разговор в классе.

Если все в классе заговорят одновременно — не разберёшь ни одного. Что делает учитель? Устанавливает очередь: сначала говорит один, потом другой. Каждому — своё время.

Лисы делают то же самое. Время делится на слоты — отрезки по 20 секунд. В первые 20 секунд говорит только лиса №1, следующие 20 — только лиса №2, потом лиса №3. И снова по кругу.

Как охотник узнаёт, кто сейчас говорит:

Каждая лиса «представляется» числом писков: лиса 1 — один короткий пик, лиса 2 — два, лиса 3 — три. Услышал два пика — сейчас в эфире вторая лиса, и вся громкость относится к ней.

Настоящий ARDF:

В настоящей спортивной радиопеленгации лисы представляются азбукой Морзе: MOE, MOI, MOS, MOH, MO5. Мы заменили морзянку на понятное число писков — принцип тот же.

2.2. Углублённый уровень (14–16 лет)

Шаг 1. TDMA — множественный доступ с разделением по времени.

Приём называется TDMA (Time Division Multiple Access). Общий ресурс — частотный канал — делится не по частоте, а по времени. Каждому участнику выделяется свой периодический интервал.

Параметры нашей схемы:

ПараметрЗначениеСмысл
SLOT_MS20 000 мсдлительность слота одной лисы
FOX_COUNT3число лис в цикле
Период цикла60 сSLOT_MS × FOX_COUNT
BEACON_MS300 мспериод маяка внутри слота
Пакетов за слот66SLOT_MS / BEACON_MS

Шаг 2. Что это означает для охотника.

Если ученик ищет лису №2, а сейчас идёт слот лисы №3, ему придётся ждать. Максимальное ожидание своей лисы:

tожиданияmax=SLOTMS(FOX_COUNT1)=202=40 сt_{\text{ожидания}}^{max} = SLOT_{MS} \cdot (FOX\_COUNT - 1) = 20 \cdot 2 = 40\ \text{с}

Это цена разделения: эфир поделён честно, но каждый участник получает лишь треть времени.

Шаг 3. Почему слоты «плывут».

У каждой лисы свой кварцевый генератор, и их частоты чуть отличаются. За долгую охоту слоты постепенно расходятся — лисы начинают наползать друг на друга.

В настоящем ARDF синхронизацию берут от точного источника: GPS-времени или радиосигнала точного времени. В нашем учебном стенде синхронизации нет, и для занятия длиной час это приемлемо. Честная оговорка: это ограничение нашей реализации, а не принципа.

Шаг 4. Альтернативы разделению по времени.

СпособКак делится ресурсГде применяется
TDMAпо времени (слоты)наш стенд, GSM, промышленные шины
FDMAпо частоте (каналы)радиостанции, аналоговое ТВ
CDMAпо кодам (все сразу, разные коды)3G, GPS
ALOHAникак — передают когда хотят, коллизии допустимыLoRaWAN (разберём в PowerSentry)
Мостик вперёд. В проекте PowerSentry вы увидите противоположное решение: там узлы передают когда захотят, без всякого расписания, и часть кадров гибнет в коллизиях. Это ALOHA. Почему для города выбрано именно оно, а не аккуратный TDMA? Потому что при редких передачах вероятность коллизии мала, а расписание потребовало бы синхронизации тысяч узлов. Инженерный выбор всегда зависит от профиля задачи.

Блок 3. Проблема вторая: прыгающая цифра (22–28 мин)

Демонстрация

Охотник кладётся неподвижно, лиса тоже неподвижна. Открывается монитор порта с сырым RSSI.

«Ничто не движется. Что должен показывать прибор?»

Дети ожидают постоянное число. На экране — значения, гуляющие на несколько дБ: −62, −65, −61, −67, −63…

Разговор

РепликаОтвет
«Прибор плохой»Проверим: он показывает −62…−67, а не −20 и −90. Разброс небольшой и вокруг одного значения
«Что-то мешает»Верно по сути. Что именно — разберём сейчас
«Это ошибка измерения»Точная формулировка. Записать

Откуда берётся разброс

  1. Многолучёвка. Сигнал приходит несколькими путями; малейшее движение воздуха, людей, дверей меняет их сложение.
  2. Тепловой шум приёмника. Собственный шум электроники добавляется к сигналу.
  3. Дискретность измерения. Приёмник оценивает мощность с конечной точностью (±2–3 дБ у SX126x).
Ключевая мысль урока: «цифра прыгает» — не поломка, а нормальное свойство измерения. Любая измеренная величина есть истинное значение плюс шум. Инженер не борется с самим фактом шума — он его усредняет.

Блок 4. Теория: усреднение (28–38 мин)

4.1. Базовый уровень

Если измерить свой рост один раз, можно ошибиться — встал не так, линейка съехала. Если измерить пять раз и взять среднее, ошибка станет меньше: случайные промахи в разные стороны частично гасят друг друга.

Охотник делает то же самое: он хранит последние пять значений RSSI и берёт их среднее. Одно случайное «плохое» измерение уже не заставит зуммер дёрнуться.

4.2. Углублённый уровень

Шаг 1. Скользящее среднее.

Прошивка хранит буфер из RSSI_AVG_N последних значений и на каждый новый пакет пересчитывает среднее:

RSSIk=1Ni=kN+1kRSSIi\overline{RSSI}_k = \frac{1}{N}\sum_{i=k-N+1}^{k} RSSI_i

Это скользящее окно: с приходом нового значения самое старое выбрасывается.

Шаг 2. Насколько уменьшается разброс.

Для независимых измерений со стандартным отклонением σ среднее по N значениям имеет отклонение:

σx=σN\sigma_{\overline{x}} = \frac{\sigma}{\sqrt{N}}

При типичном σ = 3 дБ:

Nσ среднегоВыигрыш
1 (без усреднения)3,00 дБ
31,73 дБв 1,7 раза
5 (по умолчанию)1,34 дБв 2,2 раза
71,13 дБв 2,6 раза
91,00 дБв 3 раза
Закон убывающей отдачи. Переход с 1 на 5 даёт выигрыш в 2,2 раза. Переход с 5 на 9 — ещё лишь в 1,3 раза, но при этом окно растёт почти вдвое. Увеличивать N бесконечно бессмысленно: шум падает как √N, а задержка растёт как N.

Шаг 3. Цена усреднения — задержка.

Пакеты приходят каждые BEACON_MS = 300 мс. Значит окно усреднения занимает:

NДлительность окнаОтставание при ходьбе 1,4 м/с
30,9 с≈ 0,6 м
51,5 с≈ 1,1 м
72,1 с≈ 1,5 м

Когда ученик бежит, зуммер описывает ситуацию, которая была секунду назад — на метр позади.

Шаг 4. Компромисс.

Уменьшить N (до 3)Увеличить N (до 7)
зуммер отзывчивеезуммер плавнее
заметнее дёргаетсязаметнее отстаёт
для быстро бегающих детейдля шумной обстановки

Это тот же компромисс, что в любом сглаживающем фильтре: точность против скорости реакции.

Шаг 5. Зачем сбрасывать буфер при смене лисы.

Когда активная лиса меняется (закончился слот), в буфере остаются значения от предыдущей лисы, стоящей в другом месте. Если продолжить усреднение, первые секунды новая лиса будет «смешана» со старой, и зуммер покажет несуществующую промежуточную громкость.

Поэтому в прошивке при смене fox_id вызывается rssiReset() — буфер очищается, и среднее начинает набираться заново, только из значений новой лисы.

Общее правило работы с данными: усреднять можно только однородные величины. Как только источник изменился, накопленная история становится не помощью, а помехой. Это правило встретится снова в RFCurtain (заморозка базы) и в WarWalk (медиана по ячейке одной сессии).

Блок 5. Работа с симулятором

Запуск: uv run foxhunt_sim.py

  1. Ползунок RSSI_AVG_N = 1. Держим мышь неподвижно — значение в поле зуммера прыгает, зона иногда перескакивает туда-обратно.
  2. RSSI_AVG_N = 9. То же положение — значение почти не меняется, зона стабильна.
  3. Быстрое движение при N = 9. Провести мышь резко через весь этаж: зуммер заметно «догоняет».
  4. То же при N = 3. Реакция быстрее, но появляется дрожание.

Вывод формулируют сами дети: чем больше окно, тем спокойнее, но медленнее.


Блок 6. Практические задачи (38–45 мин)

Уровень A (11–13 лет)

A1. Три лисы, слот 20 секунд. Ученик ищет лису №2, и сейчас только что начался слот лисы №3. Сколько ждать своей лисы?

Ответ

Слот лисы №3 — 20 секунд, затем снова лиса №1 — ещё 20 секунд, и только потом лиса №2. Ждать 40 секунд.

A2. Охотник лежит неподвижно, а число на экране меняется: −62, −65, −61, −67. Прибор сломан?

Ответ

Нет. Это нормальный шум измерения: сигнал приходит несколькими путями, добавляется собственный шум приёмника. Все значения лежат близко друг к другу (около −64), значит прибор работает. Для устранения дёрганья прибор усредняет несколько последних значений.

A3. Почему лисы «представляются» разным числом писков?

Ответ

Чтобы охотник понимал, к какой именно лисе относится текущая громкость. Без этого он бы слышал громко-тихо-громко и не знал, что это разные лисы, а не одна движущаяся.

Уровень B (13–15 лет)

B1. Сырой RSSI имеет разброс σ = 3 дБ. Насколько уменьшится разброс при усреднении по 5 значениям? По 9?

Решениеσx=σN\sigma_{\overline{x}} = \frac{\sigma}{\sqrt{N}}
  • N = 5: 3 / √5 = 3 / 2,236 = 1,34 дБ (в 2,2 раза меньше);
  • N = 9: 3 / √9 = 3 / 3 = 1,00 дБ (в 3 раза меньше).

Замечание: чтобы уменьшить разброс вдвое, нужно увеличить N вчетверо. Это фундаментальное свойство усреднения.

B2. Пакеты приходят каждые 300 мс, окно усреднения N = 7. Ученик бежит со скоростью 3 м/с. На сколько метров «отстаёт» показание зуммера?

Решение

Длительность окна: 7 · 300 мс = 2,1 с.

Среднее по окну отражает середину этого интервала, то есть отстаёт примерно на половину окна: 2,1 / 2 = 1,05 с.

Отставание в метрах: 3 м/с · 1,05 с ≈ 3,2 м.

Вывод: при беге отставание становится существенным — сопоставимым с размером зоны. Для быстро двигающихся детей окно надо уменьшать до 3.

B3. Почему буфер усреднения сбрасывается при смене активной лисы?

Ответ

В буфере лежат значения RSSI от предыдущей лисы, которая находится в другом месте и даёт другой уровень сигнала. Если не сбросить, среднее первые несколько пакетов будет смесью двух разных источников и покажет громкость, не соответствующую ни одной из лис.

Например: старая лиса давала −60 дБм, новая даёт −85 дБм. Без сброса первое же среднее по 5 значениям (4 старых + 1 новое) даст около −65 дБм — прибор скажет «очень близко», хотя новая лиса далеко.

Уровень C (15–16 лет)

C1. Время пакета в эфире при SF7/BW125 для 9-байтового payload составляет 41 мс. Период маяка — 300 мс. Какую долю времени лиса занимает эфир? Останется ли место для трёх лис без слотов?

Решение

Занятость эфира одной лисой:

41 мс300 мс=0,137=13,7%\frac{41\ \text{мс}}{300\ \text{мс}} = 0{,}137 = \mathbf{13{,}7\%}

Три лисы без расписания: суммарная нагрузка 3 · 13,7% = 41%.

Формально эфир не переполнен (41% < 100%), но передачи не синхронизированы, поэтому наложения неизбежны. Вероятность коллизии для случайных передач оценивается по модели ALOHA: при нагрузке G = 0,41 доля успешных ≈ e^(−2G) ≈ 44%. То есть больше половины пакетов погибнет.

Вывод: без расписания три лисы теряют больше половины пакетов, что делает громкость рваной. TDMA решает проблему полностью: в каждый момент передаёт ровно одна лиса, коллизий нет по построению.

C2. Предложите способ уменьшить время ожидания своей лисы, не отказываясь от разделения времени. Оцените последствия.

Разбор

Варианты:

  1. Уменьшить SLOT_MS (например, до 5 с). Ожидание падает с 40 до 10 с. Цена: за слот приходит лишь 16 пакетов вместо 66 — буфер усреднения (5 значений) успевает набраться, но времени на поиск в пределах одного слота мало, ученик едва успевает сделать несколько шагов.
  2. Уменьшить число лис в цикле. Прямое сокращение ожидания, но это меняет условия задачи.
  3. Перемежать слоты: 1, 2, 3, 1, 2, 3 с более коротким слотом — это и есть вариант 1.
  4. Разнести лис по частотам (FDMA) — ожидание исчезает вовсе, но охотнику нужна перестройка частоты, то есть усложнение прибора и потеря простоты.

Правильный вывод: уменьшение слота сокращает ожидание, но сокращает и непрерывное время наблюдения за одной лисой. Оптимум лежит там, где за слот ученик успевает сделать осмысленное перемещение (5–10 шагов) — это примерно 10–20 с.

C3. Скользящее среднее — не единственный способ сглаживания. Сравните его с медианой по окну (применяется в WarWalk). Какой фильтр лучше для охоты и почему?

Разбор
СвойствоСкользящее среднееМедиана окна
Гашение гауссова шумалучше (использует все значения)хуже
Устойчивость к выбросамплохая: один выброс тянет среднееотличная: выброс игнорируется
Сохранение резкой ступенькиразмываетсохраняет
Вычислительная стоимостьминимальнаятребует сортировки

Для охоты предпочтительно среднее: шум здесь в основном гауссов (тепловой + мелкая многолучёвка), резких ступенек нет — расстояние меняется плавно при ходьбе.

Для WarWalk предпочтительна медиана: там встречаются одиночные сильные выбросы от зеркальных отражений, и есть настоящие ступеньки — граница тени здания, которую нельзя размывать.

Вывод: выбор фильтра определяется характером шума и характером полезного сигнала, а не «качеством» фильтра вообще.


Ответы на вопросы, которые прозвучат

Вопрос ученикаКак отвечать
«Почему нельзя дать каждой лисе свою частоту?»Можно, это FDMA. Но охотнику пришлось бы перестраиваться между частотами и он терял бы время — либо нужно три приёмника. Разделение по времени дешевле
«Что будет, если две лисы собьются и заговорят вместе?»Их сигналы наложатся, приёмник не разберёт ни один — это коллизия. Именно поэтому часы лис должны идти согласованно
«А почему не усреднять по 100 значениям — будет очень точно?»Точность растёт как √N, а задержка — как N. При 100 значениях окно составит 30 секунд: зуммер будет описывать, где вы были полминуты назад
«Среднее или медиана — что лучше?»Зависит от шума. Если помеха — редкий сильный выброс, лучше медиана. Если мелкое дрожание — лучше среднее. У нас второй случай
«Зачем вообще усреднять, если можно смотреть на график?»Ребёнок на охоте смотрит не на график, а под ноги. Зуммер — единственный канал информации, и он должен быть однозначным
«Настоящий ARDF тоже так работает?»Да, принцип тот же: пять лис по очереди, минутные слоты, позывные азбукой Морзе. Мы упростили морзянку до числа писков

Раздаточный лист (для печати)

Урок 3. Несколько лис и усреднение

Часть 1. Расписание.

ПараметрЗначение
Длительность слота20 с
Число лис3
Период цикла____ с
Максимальное ожидание своей лисы____ с
Пакетов за слот (маяк каждые 300 мс)____

Позывные: лиса 1 — ● , лиса 2 — ●● , лиса 3 — ●●●

Часть 2. Усреднение.

Формула уменьшения разброса: σср=σ/N\sigma_{\text{ср}} = \sigma / \sqrt{N}

Nσ среднего (при σ = 3 дБ)Длительность окнаОтставание при 1,4 м/с
1
3
5
7

Мой вывод: какое N выбрать для нашей группы и почему?

________________________________________________________

Часть 3. Полевые наблюдения (заполнить на охоте).

ЛисаНайдена за (мин)Что мешалоЧто помогло
№1
№2
№3

Полевой выход (отдельное занятие, 90 мин)

Подготовка

  • Три лисы прошиты с FOX_ID = 1, 2, 3 и FOX_COUNT = 3 во всех трёх;
  • SLOT_MS = 20000, мощность подобрана под площадку (урок 2);
  • Проведён инструктаж по ТБ и регламент полевого выхода (документ 4 экспертизы);
  • У каждой команды — раздаточный лист и часы.

Ход

ВремяЭтап
0–10Инструктаж, распределение ролей в командах
10–20Тренировка: научиться считать писки и определять номер активной лисы
20–70Поиск трёх лис по очереди
70–85Сбор, обмен результатами, заполнение листа
85–90Короткий разбор: что мешало, что помогло

Роли в команде (обязательно, по рубрике В)

  • Оператор — держит охотник, называет зону вслух;
  • Штурман — принимает решение о направлении, следит за временем слота;
  • Протоколист — записывает время находок и наблюдения в лист.

Роли меняются после каждой найденной лисы.


Домашнее задание

Обязательная часть

Врайтап по рубрике А. Обязательные пункты: какое RSSI_AVG_N вы бы выбрали для своей команды и почему; что происходило в первые секунды после смены лисы.

Уровень A

Провести дома опыт с усреднением: измерить пять раз что-нибудь неточным способом (например, время падения предмета по секундомеру телефона). Записать все пять значений и среднее. Объяснить, почему среднее надёжнее одного измерения.

Уровень B

Рассчитать параметры расписания для 5 лис при слоте 15 с: период цикла, максимальное ожидание, число пакетов за слот. Оценить, удобно ли это для охоты длиной 45 минут.

Ориентир для педагога

Период цикла: 5 · 15 = 75 с. Максимальное ожидание: 4 · 15 = 60 с. Пакетов за слот: 15000 / 300 = 50.

За 45 минут проходит 45·60/75 = 36 полных циклов — каждая лиса выходит в эфир 36 раз. Достаточно. Но ожидание до минуты утомительно: ученик стоит без информации. Вывод: для 5 лис слот лучше сократить до 10 с.

Уровень C

Оценить, при каком числе лис схема TDMA перестаёт быть удобной, если считать приемлемым ожидание не более 30 секунд. Предложить, что делать при большем числе лис.

Ориентир для педагога

Условие: SLOT_MS · (N − 1) ≤ 30 с. При слоте 20 с: N − 1 ≤ 1,5, то есть N ≤ 2,5 → максимум 2 лисы. При слоте 10 с: N ≤ 4. При слоте 5 с: N ≤ 7, но за 5 с приходит лишь 16 пакетов, и ученик почти не успевает переместиться.

Вывод: TDMA плохо масштабируется по числу участников — время делится на всех. При большом числе передатчиков переходят к частотному разделению либо к случайному доступу (ALOHA), где нет гарантированного слота, но нет и ожидания. Это прямая подводка к PowerSentry.


Итог урока: что записать в журнал

Вывод урока 3

  1. Несколько передатчиков на одной частоте мешают друг другу — нужен способ разделить эфир.
  2. TDMA: время делится на слоты, в каждый момент передаёт один. Цена — ожидание своей очереди.
  3. Измеренная величина всегда содержит шум. «Цифра прыгает» — не поломка.
  4. Скользящее среднее уменьшает разброс в √N раз, но задерживает реакцию на N периодов.
  5. Усреднять можно только однородные данные: при смене источника буфер сбрасывается.

Связь с курсом

Что родилось на этом урокеГде станет инструментом
Разделение общего ресурсаPowerSentry (ALOHA, ёмкость сети)
Шум измерения как нормаRFCurtain (два окна), WarWalk (медиана)
Скользящее окноRFCurtain (быстрая медиана и медленная база)
Однородность усредняемых данныхRFCurtain (заморозка базы), WarWalk (сетка по сессии)
Компромисс «точность ↔ скорость»Все последующие модули

Чек-лист педагога перед уроком

  • Три лисы прошиты с разными FOX_ID и FOX_COUNT = 3
  • Проверено: охотник корректно проговаривает номер активной лисы
  • Для демонстрации хаоса подготовлен вариант с FOX_COUNT = 1 на всех трёх
  • Монитор порта настроен для показа сырого RSSI
  • Симулятор проверен, ползунок RSSI_AVG_N работает
  • Раздаточный лист распечатан по числу команд
  • Для полевого выхода — выполнен регламент (документ 4 экспертизы)