
Настройте свою рацию на 148.500 МГц, выберите режим FM, USB или CW и установите шумоподавитель на 0 или 1. Затем вытяните антенну рации в сторону HDMI-порта монитора — и поздравляем, теперь вы можете передавать азбуку Морзе прямо с вашего монитора!
Автор: TA1EEI (Efe Işık)
Версия: 1.2
Лицензия: MIT (Открытый исходный код / Образовательный и экспериментальный)
VHF Monitor RF Transmitter — это экспериментальный инструмент на базе браузера, который превращает обычный компьютерный монитор в короткодистанционный VHF-передатчик азбуки Морзе.
Примечательно, что этот проект работает без какого-либо радиооборудования, RF-передатчиков, SDR или внешних модемов. Управляя точным выводом пикселей на экран с помощью оптимизированного движка рендеринга HTML5 Canvas, он манипулирует внутренним блоком обработки видео (GPU/скалер) и интерфейсами передачи (HDMI/DisplayPort), излучая модулированные электромагнитные сигналы напрямую через побочные излучения (TEMPEST).
Современные видеотракты — это не чисто оптические системы; это высокоскоростная цифровая электроника, работающая на высоких частотах. Этот проект использует непреднамеренное электромагнитное излучение (ЭМИ) для передачи читаемых RF-сигналов.
Для отображения стабильного изображения видеокарта непрерывно передает видеоданные на монитор кадр за кадром, строка за строкой. Базовая тактовая частота, управляющая этим потоком пикселей, известна как частота пиксельного тактового генератора ($f_{\text{pixel}}$).
Пиксельный тактовый генератор рассчитывается на основе общих размеров кадра (включая активную область отображения плюс горизонтальные и вертикальные интервалы гашения), умноженных на частоту обновления экрана:
$$f_{\text{pixel}} = H_{\text{total}} \times V_{\text{total}} \times f_{\text{refresh}}$$
Где:
Пример расчета (стандартный 1080p @ 60 Гц):
Когда экран отображает однородный черный или статичный фон, ток сигнала через видеокабель остается относительно равномерным.
Однако когда приложение отображает чередующийся паттерн $1 \times 1$ пиксель (чередующиеся черные #000000 и белые #FFFFFF пиксели рядом), каждый соседний тактовый цикл заставляет сериализатор интерфейса дисплея (TMDS или FRL в HDMI; Main Link Lanes в DisplayPort) быстро переключать свое состояние напряжения.
Это максимальное переключение состояний индуцирует сильное электромагнитное поле на точной частоте пиксельного тактового генератора (148.500 МГц), излучая RF-несущую волну в пространство.
Для кодирования читаемых данных в это электромагнитное излучение:
#000000). Переходы тактового генератора падают до минимального фонового шума, обрушивая излучаемый RF-выход.Синхронизируя переключения этих паттернов со стандартными длительностями элементов азбуки Морзе (Точки = 1 единица, Тире = 3 единицы), близлежащий радиоприемник улавливает слышимый CW/AM-тон.
Различные разрешения монитора и частоты обновления создают различные основные частоты. Ниже приведены рассчитанные целевые частоты, обычно генерируемые таймингами дисплея:
Примечание о гармониках: Помимо основной частоты пиксельного тактового генератора, сильные вторичные и третичные гармоники также могут быть обнаружены на более высоких диапазонах ($2 \times f_{\text{pixel}}$, $3 \times f_{\text{pixel}}$).
navigator.language при запуске и автоматически локализует интерфейс на английский, турецкий, французский, немецкий, испанский или китайский.performance.now()) для динамического прогнозирования активной частоты передачи.Для прослушивания передач с помощью портативной радиостанции (например, Quansheng, Baofeng, Yaesu, Icom) или SDR (RTL-SDR, HackRF, Airspy):
148.500 МГц).Если вы используете этот проект в своих исследованиях, академических работах или технических экспериментах, пожалуйста, цитируйте его следующим образом:
@software{isik2026vhf,
author = {Isik, Efe},
title = {VHF Monitor RF Transmitter: Browser-Based TEMPEST / EMI Side-Channel Morse Generator},
year = {2026},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{[https://github.com/TA1EEI/vhf-morse-transmitter-monitor](https://github.com/TA1EEI/vhf-morse-transmitter-monitor)}},
license = {MIT}
}
| Разрешение | Частота обновления (Гц) | Общие тайминги ($H_{\text{total}} \times V_{\text{total}}$) | Основная целевая частота |
|---|
| 1920 x 1080 | 60 Гц | $2200 \times 1125$ | 148.500 МГц (VHF любительский диапазон 2 м) |
| 1920 x 1080 | 144 Гц | $2200 \times 1125$ | 356.400 МГц (UHF военный / авиационный) |
| 2560 x 1440 | 60 Гц | $2720 \times 1481$ | 241.500 МГц (VHF высокий) |
| 1280 x 720 | 60 Гц | $1650 \times 750$ | 74.250 МГц (VHF низкий / диапазон 4 м) |