Шум датчика

100%
остановлено

отсчётов: 0 · 0/с

источник: —

?Что это вообще такое и как считается?

В телефоне есть датчик движения — акселерометр. Он 60 раз в секунду отдаёт три числа: силу давления на телефон по осям X, Y и Z.

Последние цифры этих чисел никогда не стоят на месте — они мелко дрожат от электронного шума. Это чистая случайность, как броски монетки.

«Монетка» делается так: берём живую цифру после запятой — обычно четвёртую (на некоторых телефонах она спит, и программа сама переходит на третью) — и сравниваем её В ПАРЕ соседних отсчётов: первый запоминаем, второй сравниваем с ним. Выросла — записываем 1, упала — 0; следующая пара начинается с нового отсчёта.

Почему пара, а не каждый отсчёт? У соседних разностей общий член (x₂−x₁ и x₃−x₂ делят x₂), поэтому они чередуются чаще случайного — проверили симуляцией, корреляция −0,4. Пары разрывают эту цепочку: биты честно независимы.

Если шум честный, единиц и нулей должно быть примерно поровну, а закономерностей в их чередовании быть не должно. Именно это и проверяют блоки ниже.

У каждого блока — своя справка с подробностями. Когда убедимся, что шум честный, из него сделаем генератор случайных чисел — это следующий шаг.

Имитатор аномалий — проверка ловушек

?Зачем имитатор и что он проверяет?

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

«Намерения» — это классические опыты PEAR-лаборатории (Принстон): оператор пытался «своим намерением» чуть наклонить монетку генератора. «Вспышка» — как у FieldREG: короткое событие в «значимом месте» пришло и ушло. «Стопор» — контроль: энтропии нет вовсе, и прибор должен отличать поломку от аномалии.

Важно: во время имитации датчики телефона не используются — источник переключается на синтетику, а в чёрный ящик пишется пометка «имитация», чтобы подделку нельзя было спутать с настоящей записью. Телефон для этого не нужен — работает и на столе.

Пометки имитатора видны всем: при включении/выключении в общий сеанс уходит метка — полоса этого телефона помечается фиолетовой зоной с подписью «имитатор: …» (какой именно — написано). График перекоса при этом НЕ стирается: после имитации запись продолжается на том же графике, а период имитации остаётся помечен зоной. В логе те же пометки — фиолетовые метки в «Разборе лога».

отклонение от среднего · масштаб авто
?Что за график и зачем он?

Это сам сигнал датчика, до всякой монетки. «Шум» — дрожание крупным планом (отклонение от среднего), «Как есть» — абсолютные значения: на столе видно Z ≈ 9,8 — притяжение Земли.

График стоит сразу после «Пуска» не зря: по нему сразу видно, что запись пошла и телефон отзывается на ваши движения — потрясите его и посмотрите. Диагностика: датчик живой и шум мелко дрожит, а не стоит столбом. На честность монетки он не влияет.

Цифры датчиков

AX—AY—AZ—

уник. значений за 10 с: —

фиолетовая метка — рабочая цифра (обычно 4-я после запятой): из её движений рождаются биты

?Что это за числа и какая цифра «живая»?

Три канала — это три оси акселерометра вашего телефона: X — вдоль, Y — поперёк, Z — из экрана наружу. Когда телефон лежит на столе, Z ≈ 9,8 — это притяжение Земли прижимает его к столу.

Мы опрашиваем датчик 60 раз в секунду. Каждое число похоже на −0,360744: для монетки важно только одно — как дрожит одна из цифр после запятой (в примере это 7, она выделена меткой).

Обычно живее всех 4-я цифра: третья почти не дрожит (шум до неё не достаёт), а пятая и шестая тонут в округлении и «решётке» шагов датчика. Но датчики разные: на части телефонов решётка грубее, 4-я цифра всегда стоит на нуле, а жива только 3-я. Поэтому первые секунды записи программа смотрит, какие цифры реально меняются, и берёт самую мелкую живую: 4-ю, если молчит — 3-ю, потом 2-ю. Метка и подписи перестраиваются сами; если рабочая цифра в середине записи замолчит на 10 секунд, поиск повторится.

Строка «уник. значений за 10 с» — сколько РАЗНЫХ чисел дал канал за 10 секунд. Канал жив, пока числа всё время новые. На столе их около 100 — это норма: полоса шума узкая, и больше разных значений из неё физически не достать. В руке их около 500. Красное — канал залип на нескольких значениях, такому шуму верить нельзя.

Анализ рабочей цифры

AXкопим данные… 0/300
0123456789
AYкопим данные… 0/300
0123456789
AZкопим данные… 0/300
0123456789

сколько раз какая цифра 0–9 была рабочим знаком за последнюю минуту · в идеале все примерно по 10% · красный столбик — цифра-перебор

?Зачем считать цифры?

Датчик шагает «решёткой»: его значения идут ступеньками, а не плавно. Из-за этого некоторые цифры могут выпадать чаще других.

Если все десять цифр появляются одинаково часто (примерно по 10%), решётка не портит нашу монетку. А заметный перебор одной цифры мог бы перекашивать биты.

Красный столбик — цифра выпадает подозрительно часто. Пока их нет — порядок.

Перекос по каналам — чего больше прямо сейчас

AX
—греется
AY
—греется
AZ
—греется

каждая полоска — доля «вверх» в последних 512 битах (~9 секунд) · шкала 40–60%, середина = поровну · зелёный — обычное случайное гуляние, жёлтый — редкий выброс, красный — стойкий перекос

?Как это понимать?

Полоска уехала вправо — единиц сейчас чуть больше, влево — нулей. Немного уезжать — нормально: даже у идеальной монетки за 512 бросков доля никогда не стоит ровно на 50%.

Насколько можно гулять «по-честному», показывает зелёный коридор на графике ниже — примерно ±6,6 от середины. Полоски почти всё время должны быть внутри такой вилки.

Красная полоска — перекос держится долго и сильно. На ровном столе так не должно: если увидели красное — что-то не так с шумом.

Поток битов — пиксельные поля

AXцифра выросла → светлая · упала → тёмная
AYцифра выросла → светлая · упала → тёмная
AZцифра выросла → светлая · упала → тёмная
?Что здесь нарисовано и что здесь хорошо?

Мы следим за рабочей цифрой каждого канала — обычно это четвёртая после запятой, но у части телефонов жива только третья (см. справку в «Цифрах датчиков»). Цифра выросла — ставим светлую клетку, упала — тёмную. Каждая клетка — один бросок «монетки» (один бит).

Свежие клетки дописываются справа; когда поле заполняется, оно уезжает вверх, как бегущая строка. На поле 96×12 = 1152 клетки — это последние секунд двадцать.

Хорошо выглядит ровный «песок»: светлое и тёмное вперемешку, без узоров. Это значит, что в шуме нет заметной структуры.

Плохо было бы увидеть зебру (строгое чередование), длинные полосы одного цвета, пятна, заливки или повторяющиеся узоры. Такое глаз ловит без всякой математики.

График перекоса во времени

что показывает график — коротко

это соотношение нулей и единиц · линии должны гулять внутри зелёного коридора · вышли за коридор — в шуме появилась аномалия · жёлтый столб отмечает момент выхода · белая линейка в центре — время на плашке: листаешь историю, линейка стоит, время под ней едет

гуляние по осям: разрешено против фактически
Разрешено гулять: набираем биты…
AX— копим данные…
AY— копим данные…
AZ— копим данные…

за всё время наблюдения (после прогрева окна)

?Как читать график и что тут можно делать?

Каждая точка — доля единиц за последние ~9 секунд (окно 512 битов). Зелёная полоса — разрешённый коридор: у честного шума линии гуляют внутри него в 997 случаях из 1000.

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

Пока окно ещё набирается (первые секунды), коридор шире — так честно: чем меньше данных, тем больше случайный разброс. Потом он сужается до ±6,6.

Вертикальная шкала закреплена на 40–60%: сразу видно, что линии гуляют в середине, а не «от стенки до стенки». Если сдвиг выскочит за 40–60, шкала сама раздвинется ровно настолько, насколько нужно.

Шкала времени — реальные часы телефона: метки одинаковые на всех телефонах, события сверяются по ним («в 18:40 я постучал по столу»). Масштаб и прокрутка этого графика СИНХРОННЫ с «Общим сеансом» ниже: подвинете один — поедут оба (как во вкладке «Логи»).

Палец — прокрутка назад до самого начала измерений, щипок или колесо — масштаб. В памяти 3 часа, дальше старые точки вытесняются. Разрыв линии — пауза в записи. Пока идёт запись, экран не гаснет: уснёт экран — уснёт и сбор.

Общий сеанс

окно:
что тут нарисовано — коротко

Полосы всех телефонов с общей шкалой времени и масштабом. Жёлтые столбы — выходы за коридор: тусклый — один телефон, яркий — два и больше одновременно. Скачок на одном — локальная тряска, одновременный на нескольких — кандидат в аномалии: ставьте метку и сохраняйте лог. Масштаб и прокрутка здесь СИНХРОННЫ с графиком перекоса выше: тронете один — поедут оба, как во вкладке «Логи». Подробности — в справке под графиком.

ниже — полосы всех телефонов с включённым участием
пока никто не подключён — включите участие на телефонах
чёрный ящик: 0 сэмплов · меток 0
?Как читать общий сеанс?

Каждый телефон с включённым участием раз в 10 секунд отдаёт свой график перекоса (точка раз в полсекунды, ~0,5 КБ за раз). По умолчанию каждый телефон — своя узкая полоса, но шкала времени и масштаб у всех общие: полосы выровнены по вертикали, и излом виден на всех сразу. Селектор AX/AY/AZ выбирает ось, которую сравниваем. Полосы, у которых есть точки в видимой части, идут сверху, молчащие прижаты вниз и сжаты — переключатели «Рабочие сверху» и «По алфавиту» над графиком; стрелками ↑↓ в подписи под графиком можно выставить свой порядок — он сохранится в браузере, кнопка «вернуть авто» вернёт автомат. Кнопки масштаба (10 мин / 30 мин / 2 ч) стоят сразу над графиком.

У каждого телефона в сеансе есть имя и постоянная личность: имя придумывается само («Синий Барс-42»), и его можно поменять на своё в поле «имя» под графиком. Ключ телефона живёт в браузере, поэтому после обновления страницы или короткого выхода телефон возвращается в СОБСТВЕННУЮ полосу — график продолжается после перерыва, полоса не раздваивается. Переименование меняет только подпись у всех, полоса остаётся той же.

Жёлтые столбы — выходы за коридор 43,4–56,6%. Тусклый столб — вышел один телефон, яркий — два и больше в один и тот же момент (и полоска-линейка над дорожками). Настоящая аномалия должна дать яркий столб; скачок только на одном — локальное событие. Важно: телефоны на одном столе связаны механически — шаги и стук дойдут до обоих, для честного опыта держите телефоны в разных местах или на разных опорах.

Масштаб у каждой полосы СВОЙ: база 40–60, расширение только до данных этой полосы — раздутая аномалия одного телефона больше не сжимает чужие линии в прямую линию (в «Наложить» масштаб общий). Фиолетовая зона на полосе с подписью «имитатор: …» — у этого телефона в то время был включен имитатор аномалий, какой именно — написано: такие точки синтетические, аномалией их считать не надо.

Кнопки лога стоят внизу этого блока и на вкладке «Логи» — везде одни и те же: «Аномалия» — красный флажок в лог и на общую шкалу всем зрителям; «Сохранить лог» — файл на телефон (работает даже без интернета — например, в лесу у аномального места); «Лог на сервер» — выложить в общий архив. «Чёрный ящик» каждого телефона ВСЕГДА держит в памяти последние ~2 часа: сырые отсчёты датчика (~60 Гц, все оси), поток битов, полосы общего сеанса, историю поправки часов относительно сервера и события (скрытие страницы, потеря сети, смена рабочей цифры, сбои отправки). На вкладке «Логи» любой лог открывается в привычном интерфейсе: график перекоса с линейкой, пиксельные поля на момент линейки и групповые полосы. При разборе сдвига первая улика — кривая поправки часов (строки «offsets») и расхождение времени телефона с сервером.

Управление: потяните график в сторону — линии едут ЗА ПАЛЬЦЕМ (тот же жест, что на графике перекоса выше) — уйдёте назад во времени (появится кнопка «к сейчас»), щипок или колесо — масштаб. Белая линейка времени постоянно стоит в центре графика и показывает время в центре видимого окна — её не нужно ставить тапом, она всегда на месте. Окно и прокрутка здесь общие с графиком перекоса: подвинете один график — второй поедет вместе с ним, у обоих будет одна и та же шкала времени (как во вкладке «Логи»). Часы телефонов выравниваются по серверу (поправка видна в подписи), но если телефон давно не сверял время, «одновременность» может врать на минуты — включите интернет перед сеансом.

Режим «Наложить» кладёт все линии на один график — удобно для двух телефонов, на трёх и больше выходит каша. Уходит только перекос осей (числа 40–60%) — сырых данных, координат и личного ничего нет. Участие выключается той же кнопкой, серии сервера живут не больше трёх часов.