Шум датчика

остановлено

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

источник: —

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

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

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

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

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

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

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

Это сам сигнал датчика, до всякой монетки. «Шум» — дрожание крупным планом (отклонение от среднего), «Как есть» — абсолютные значения: на столе видно 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цифра выросла → светлая · упала → тёмная
AYцифра выросла → светлая · упала → тёмная
AZцифра выросла → светлая · упала → тёмная
?Что здесь нарисовано и что здесь хорошо?

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

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

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

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

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

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

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

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

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

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

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

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

Шкала времени — реальные часы телефона: метки одинаковые на всех телефонах, события сверяются по ним («в 18:40 я постучал по столу»).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Общий сеанс

Полосы всех телефонов с общей шкалой времени и масштабом. Жёлтые столбы — выходы за коридор: тусклый — один телефон, яркий — два и больше одновременно. Скачок на одном — локальная тряска, одновременный на нескольких — кандидат в аномалии: ставьте метку и сохраняйте лог. Детали — в справке под графиком.

ниже — полосы всех телефонов с включённым участием
окно:
пока никто не подключён — включите участие на телефонах
Скачать сеансчёрный ящик: 0 сэмплов · меток 0
Разбор лога и сеанса — события, поправка часов, сэмплы, полосы: свой файл, из архива или «Скачать сеанс»
лог телефона, файл из архива или файл сеанса («Скачать сеанс») — читается прямо здесь, без загрузки на компьютер
Архив логов участников — общий, скачать может любой желающий
открываю список…
?Как читать общий сеанс?

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

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

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

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

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

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