Финский инженер определила GPS-координаты вертолёта по звуку с Youtube

Оона сначала подумала, что это помехи от двигателя, но когда изолировала левый канал и усилила звук , то сразу стало ясно, что это некий таинственный цифровой сигнал! 

Любопытство заставило девушку взяться за решение головоломки. Судя по спектрограмме левого канала, аппарат использовал бинарную частотную модуляцию (BFSK), когда значениям 0 и 1 присваиваются звуки определённой частоты. В данном случае частота изменялась между 1200 и 2200 Гц. Оона осуществила демодуляцию сигнала по фильтру нижних и верхних частот в open-source программе для аудиобработки SoX (Sound eXchange). На выходе получился цифровой поток на 1200 бод.



Поток состоит из пакетов по 47 байт, синхронизированных по начальным и конечным битам и разделённых между собой байтом 0x80. Большинство битов остаются неизменными на протяжении всего видеоролика, но три отдельные группы определённо изменяются. На скриншоте они обозначены синим.

Оона начала гадать, что бы это могло быть? Может быть, данные телеметрии? Или информация о направлении съёмки с видеокамеры? Какие-то метки времени по кадрам?

Проведя анализ трех групп данных, Ряйсянен пришла к мнению, что это именно телеметрия. Если отбросить первые четыре бита в каждом байте, то оставшиеся байты можно представить как пару трехзначных чисел в кодировке base-10. Если нанести их на оси координат x и y, то получится график, очень похожий на реальную схему передвижения вертолёта. На карте желтым показаны его примерные координаты, судя по картинке с видео, а слева вверху — график со значениями из таинственного потока данных (отображены первые несколько минут видеосъемки).

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

Зная конечные координаты вертолёта (в конце он кружился над полицейским участком), можно привязать получившуюся траекторию к карте Google Earth.

Благодаря советам знающих товарищей из интернета Оона Ряйсянен поняла, что здесь используется 7-битная кодировка Bell 202 ASCII. После декодирования значения выглядят так:

#L N390386 W09434208YJ
#L N390386 W09434208YJ
#L N390384 W09434208YJ
#L N390384 W09434208YJ
#L N390381 W09434198YJ
#L N390381 W09434198YJ
#L N390379 W09434188YJ


Это полные пары долготы и широты с точностью до четвёртого знака (39,0386° N, 94,3420° W).

оригинал: http://habrahabr.ru/post/211128/