Radio data system что это
RDS: что это в автомобильной магнитоле
Наверное, многие встречали аббревиатуру RDS в своих автомагнитолах, некоторые даже немного знакомы с принципом ее работы. Несмотря на довольно низкую популярность данной системы на постсоветском пространстве, многие автовладельцы уже успели по достоинству оценить ее преимущества. Для остальных же мы подробно расскажем, что это такое и для чего она нужна.
Что такое RDS
RDS, расшифровывается как Radio Data System, это система обмена информационными сообщениями на УКВ–частотах. RDS в вашей автомагнитоле отображает текстовую информацию, чаще всего это названии текущей радиостанции и время. В силу технических ограничений стандарт позволяет передавать только буквы латинского алфавита, русский язык не поддерживается.
Сегодня RDS используют все FM-радиостанции, транслирующаи свои программы в эфир. Стандарт RDS принят Европейской ассоциацией радиовещателей и применяется на территории большинства членов Евросоюза. В нашей стране система передачи данных посредством использования УКВ-диапазона также действует, но используется с достаточно урезанным функционалом.
RDS была создана для обеспечения безопасности водителя за рулем автомобиля, так как значительный процент аварий происходит из-за того, что человек отвлекся от дороги, в том числе для настройки радиостанции. Новая система предложила ряд удобных функций, благодаря которым автовладелец может заранее задать параметры информации, которую он желает получать, как например, сводка о дорожных событиях или музыкальные выступления определенного жанра.
Конечно, в современном мире с почти повсеместным распространением интернета актуальность RDS существенно снизилась, по сравнению с 90-ми годами прошлого века. Это обусловлено наличием у водителей смартфонов, планшетов, навигаторов и другой техники, которая по сути заменила часть функций RDS. Впрочем, если Вы по-прежнему любите ездить в машине, слушая свою любимую радиостанцию или с недоверием относитесь к новомодным гаджетам, то система RDS наверняка окажется Вам полезна.
Функции RDS радио
Большинство наших соотечественников привыкло к тому, что RDS передает только ограниченный перечень информации, касаемо прослушиваемой передачи. Но на самом деле это не так, функций у этой системы предостаточно, вот лишь некоторые из них:
Как включить и отключить RDS
Как правило, для включения RDS не нужно предпринимать никаких дополнительных действий. После того как Вы настроили приемник на нужную частоту, информация, передаваемая с использованием системы, сама начнет отображаться на экране автомагнитолы. Если этого не произошло необходимо перейти в режим настройки для активации данной функции. В случае же, если и после этих манипуляций Ваш приемник не начал отображать никакой текстовой информации, то возможно, что на данной частоте не транслируется никаких сообщений, попробуйте просто сменить станцию.
Отключение RDS также может быть предусмотрено производителями аудиоустройства через панель настроек, либо же посредством нажатия одноименной кнопки на корпусе устройства. Для включения дополнительных функций, например AF или TP могут быть также предусмотрены отдельные вкладки в меню настройки.
Читайте также: Что такое каршеринг и как он работает.
Функция RDS в магнитоле что это такое и как ее включить
Головное акустическое оборудование в автомобилях используется не только для воспроизведения музыкальных композиций. Разработчики предусматривают дополнительные функции, позволяющие вести телефонный разговор без поднятия трубки или коммутировать камеры кругового или заднего обзора. Еще одной служебной функцией является RDS, но что это в магнитоле и как параметр помогает водителю ориентироваться в дорожной ситуации? Ответы на эти вопросы автовладелец найдет ниже.
Что это такое
При покупке или ознакомлении с техническим описанием или инструкцией по эксплуатации, прилагаемым к головным аудиоустройствам, владельцы задают вопрос: что такое RDS в магнитоле и как управлять этой функцией? Система RDS передает сообщение о дорожной ситуации параллельно с трансляцией радиопередач в диапазоне ультракоротких волн. При отправке информации используется специальный цифровой код, который расшифровывается встроенным в головное устройство процессором со специализированным программным обеспечением.
Услуга появилась в конце 70-х годов в Европе, а с 90-х система присутствует и в России.
Передача сигнала осуществляется отдельной поднесущей частотой. Для получения информации магнитолой требуется активный режим стерео, при слабом сигнале наблюдается пропадание сигнала или снижение периодичности обновления.
Функции RDS
Применение функции приема коротких радиосообщений через автомагнитолу позволяет получать информацию о названии транслируемой передачи или о заторах. Трансляция производится в автоматическом режиме, не отвлекая водителя от управления автомобилем. Для приема информационных сообщений требуется активировать режим RDS на магнитоле. Все функции системы разделены на общие (или базовые) и вспомогательные (список услуг зависит от страны, на территории которой расположена радиостанция).
Базовые
Стандартные функции, поддерживаемые RDS:
Дополнительные
Как включить RDS на магнитоле
Для активации функции RDS в головном устройстве используется отдельная кнопка, расположенная на фронтальной панели. Также возможно управление режимом через меню настройки, информация об особенностях активации имеется в инструкции по настройке. При активации функции следует учитывать, что на территории России задействованы не все каналы передачи информации, радиостанции также не транслируют информацию в эфир.
Минусы RDS
Если пользователь решил включить RDS на магнитоле, то есть риск появления проблемы, связанной с автоматическим сканированием частотного эфира. При этом трансляция выбранной станции прекращается. Причиной является ошибка в алгоритме функционирования, головное устройство воспринимает принимаемую радиостанцию как идентичный сигнал, транслируемый на различных частотах. Из-за этого активируется режим поиска частоты с наиболее мощным и устойчивым сигналом. Для прерывания поиска требуется нажать отдельную кнопку или выключить режим RDS.
Штатные головные устройства автомобилей, предназначенных для европейского рынка, плохо принимают сигнал радиостанций в России. Причиной является активация встроенного усилителя сигналов, который пытается распознать информацию RDS. При этом автоматически усиливаются и помехи, которые заглушают радиосигнал. Рекомендуется отключение службы дорожной информации или корректировка региона приема, которая осуществляется через меню.
RDS. Radio Data System. Подробности.
Версия 2.0 от 27.12.2020
RDS (Radio Data System) — это стандарт, предназначенный для передачи информационных сообщений в FM-диапазоне. Разговоры о необходимости создания такой системы появились в конце 1970-х годов в Германии. Передача сообщений о дорожной обстановке и идентификация радиостанции — основные идеи, которые закладывалась разработчиками. Ведь тогда радио в машине слушали почти все. Причём, чтобы переключение на дорожную обстановку было даже тогда, когда пользователь слушает аудиокассету или CD-диск.
Первая похожая система появилась в начале 1980 года, а с 1986 года в странах Западной Европы уже началась экспериментальная эксплуатация новой системы. В 1990-м году был опубликован стандарт EN 50067. Дважды он пересматривался. В 1999 году стандарт RDS IEC 62106 был принят членами Европейского радиовещательного союза (EBU) (куда входит и Республика Беларусь) в качестве единого многоцелевого стандарта. Последние изменения были зафиксированы в 2018 году. А национальный стандарт был разработан и внедрён с 01.06.2020 года. Стандарт опубликован под номером СТБ 2569-2020 и носит название «Системы телетекст, телегид, субтитрирования, передачи данных радиовещательных станций диапазона очень высоких частот. Основные параметры. Методы измерений». Стандарт можно приобрести онлайн и цена на конец декабря 2020 года составляет 20,04 BYN.
За основу был взят стандарт, принятый членами Европейского Вещательного Союза ещё в 1999 году в версии 2015 года: IEC 62106:2015 «Specification of the radio data system (RDS) for VHF/FM sound broadcasting in the frequency range from 87,5 MHz to 108,0 MHz». Последний и актуальный стандарт с правками и дополнениями был опубликован под номером IEC 62106:2018 — « Radio data system (RDS) — VHF/FM sound broadcasting in the frequency range from 64,0 MHz to 108,0 MHz» и состоит из 6 частей. В открытом доступе актуальный стандарт не представлен. Можно его приобрести. Цена имеется для каждого тома и начинается от 40 CHF до 280 CHF (в белорусских рублях это от 114 BYN до 800 BYN на конец декабря 2020 года).
Цены конечно кусачие, но для более детального изучения основ можно воспользоваться спецификацией EN 50067 «Specification of the radio data system (RDS) for VHF/FM sound broadcasting in the frequency range from 87,5 to 108,0 MHz».
Для передачи информации используется поднесущая в 57 кГц (±6 Гц). В случае стереофонического вещания, частота поднесущей должна быть синхронизирована по фазе или со сдвигом по фазе на 90° относительно третьей гармоники пилот-тона. Уровень поднесущей должен соответствовать девиации от ±1 до ±7,5 кГц.
Рекомендуемая номинальная девиация ±2 кГц. (Из европейского стандарта: The deviation range of the FM carrier due to the unmodulated subcarrier is from ±1.0 kHz to ±7.5 kHz. The recommended best compromise is ±2.0 kHz.)
Стоит отметить, что при фактическом уровне девиации выше 3 кГц на некоторых экземплярах приёмных устройств наблюдается аудиальный свист, поэтому стоит быть очень аккуратным в настройке этого параметра. Также стоит добавить, что повышение уровня поднесущей RDS в сигнале никак не влияет на разборчивость приёмником и не увеличивает «зону покрытия» RDS-сигналом. Всё потому, что приёмник прекрасно детектирует поднесущую в любом случае. Принятие приёмником решения «отображать принятые данные, или нет» – опирается исключительно на совокупность «оценок» всего вещаемого сигнала.
Поднесущая RDS
Чтобы начать использовать RDS, для начала расскажу о том, каким способом можно начать транслировать информацию. Для передачи RDS можно использовать:
Встроенные RDS кодеры имеют только базовый и необходимый набор функций. Но даже они могут быть использованы для начального использования системы RDS.
Функции RDS
Пройдёмся по самым известным функциям, дадим ещё раз им описание. Рассматривать некоторые функции мы будем с пометками, которые имеются в национальном стандарте. Итак — начнём:
PI (Programme Identification) — это уникальный код радиостанции, состоящий из четырёх символов в 16-ричной системе. (Используются цифры от 0 до 9, и буквы от A до F). За нашей страной, первым символом, согласно стандарту RDS закреплена буква F.
Это значит что любой PI-код радиостанции в нашей стране, должен быть следующего вида: F***. И никак иначе. Стоит отметить, что в Беларуси практически все и начинают писать с буквы F, что уже хорошо.
Второй символ говорит о типе покрытия сигналом (либо это локальная станция, использующая только один передатчик, либо региональная, либо национальная (присутствующая во всех областях страны).
Значение второго символа кода PI.
Третий и четвертый символы несут информацию о номере радиопрограммы (позывного). В случае с Беларусью, почти каждая радиостанция ведёт вещание с объектов РУП «БРТПЦ» «Белтелеком» и имеет порядковый уникальный номер радиопрограммы. Который правда не всегда корректно перенесён техслужбами в RDS.
Номер программы — это последняя группа цифр позывного. Свой позывной можно посмотреть в разрешительных документах или непосредственно на передающем оборудовании на передающем центре. Номер программы необходимо перевести из десятичной системы в шестнадцатеричную (из DEC в HEX). Для примера: Легенды FM имеют позывной, РЕ-1-0-30. 30 это и есть номер программы. Переводим 30 из DEC в HEX и получаем 1E — это и будут 3 и 4 символы кода PI. Если при переводе их DEC в HEX мы получили 1 символ (к примеру 12 перевели и получили С), то полученный символ будет четвёртым в коде PI, а третьим будет 0.
На сегодняшний день 2-3 столичные радиостанции, из 19 использующих RDS, имеют некорректный код PI. Есть, кстати, одно примечание, которое встречалось в литературе: нельзя начинать PI-код с цифры 0. Некоторые модели приёмников не смогут получать информацию, т.к. сталкиваются с нулём. А ноль — он и в Африке ноль.
PS (Programme Service name) — эта строчка предназначена СТРОГО для написания сокращённого названия радиостанции и ничего более. Национальным (и европейским) стандартом описано, что функция PS должна быть статическая и не использоваться для передачи текста! Рассчитана эта строчка только на 8 символов. Но, увы, весомое количество наших радиостанций идут на нарушение этого принципа и «пихают» в эту строку всё, что душе угодно: название песни, слоган, полное название, если оно длиннее 8 символов и пр. Причина такого поведения – морально устаревший принцип выдачи этих данных. Когда-то приёмников, поддерживающих и другое текстовое поле — RT (о котором чуть ниже) просто не существовало, хотя в стандарте эта строчка была изначально. В целом, в былое время это можно было понять: есть приёмное оборудование, которое способно отображать только PS, и вот для таких «бюджетных» пользователей и сделали «поблажку». Но время идёт. В 2020 году солидное количество аппаратов (в том числе огромный парк смартфонов с FM-радио и головных устройств для авто) – поддерживает RT, и способно предоставить более удобный парсинг данных, отличных от 8-символьного названия станции. Поэтому вновь хочется подчеркнуть — СЕЙЧАС ТАКОГО БЫТЬ ПРОСТО НЕ ДОЛЖНО. Строчка PS всегда должна быть статичной и не меняться. Это как табличка на кабинете или вывеска над магазином. Водитель при движении не должен отвлекаться на то, чтобы смотреть эту «карусель из сообщений» и пытаться «собрать пазл из восьмисимвольных кирпичей», разбирая, что за песня играет и как она называется. В некоторых странах даже предусмотрен строжайший запрет на передачу динамической информации в PS. Имеется такая рекомендация и в стандарте Беларуси.
В конце концов, пора прийти к простому принципу – есть часть приёмников вообще без RDS, есть – только с PS, есть – с полным функционалом. В случае между первым и вторым пунктом – мы же не переживаем за слушателя, что он не видит текущую песню или наши слоганы, если у него нет RDS вовсе. Вот и в случае спора между вторым и третьим пунктом – не должно быть склонения в сторону «поблажек». Иными словами, хочешь видеть текущий тег песни и другую расширенную информацию (в поле RT) – приобрети аппарат, который это поддерживает. Иначе будет видно только PS (название радиостанции). Именно такой вариант корректен и должен быть использован.
Когда слушатель сохраняет полюбившуюся станцию в пресет, название будет таким, каким была информация в строке PS в момент сохранения. Т.е. вместо нормального названия станции может сохраниться часть текста названия композиции, к примеру, «Spice_Gi», если в этот момент там транслировался тег песни. Это, согласитесь, не эстетично и неудобно. Сиди-гадай потом, что это за станция. Поэтому — уважаемые коллеги, просьба пересмотреть своё отношение к динамической информации в строке PS. Вот очень хорошая презентация на эту тему.
Когда читал поле PS, чтобы узнать что играло.
Спустя 2,5 года после написания первой статьи про систему RDS в Беларуси, есть положительная динамика со стороны радиостанций — многие от динамического PS перешли к статическому. Если весной 2018 года только 4 радиостанции в Минске статично передавали PS (Unistar, Авторадио, Radio Relax и Юмор FM), то сейчас 15 из 19 столичных радиостанций с RDS используют статичный PS. Спасибо вещателям за то, что прислушались к рекомендациям! Вся необходимая информация должна выводиться в следующей функции RDS, под названием…
RT (RadioText) — вот именно в это поле нужно передавать всё то, что вы хотите донести до слушателя: название песни, адрес сайта, слоган, всё, что вашей душе угодно, и что уместится в 64 символа.
RT может передаваться в одной и групп: 2А или 2В. Отличие в том, что в группе 2А мы можем использовать до 64 символов, в 2В — только 32. Не рекомендуется так же перед именем композиции писать название радиостанции или «V efire:». Длинное сообщение RT не сможет влезть целиком, если есть лишний балласт вначале.
TP/TA (Traffic Programme identification/Traffic Announcement identification) — эти два тега созданы для комфортной «работы» слушателя с дорожной информацией за рулём автомобиля. При активации данных режимов, происходит переключение с кассет, CD-дисков на станцию передающую дорожную обстановку. После прекращения передачи дорожной сводки происходит возврат к ранее прослушиваемой кассете или CD-диску. Стоит отметить что в машинах имеется ручная регулировка громкости при передачи дорожной информации.
Если радиокомпания имеет несколько радиостанций, то она может иметь возможность переключать слушателя с одной радиостанции на другую, где в текущее время передаётся дорожная информация. По окончанию — возвращать слушателя обратно на прослушиваемую волну. За это отвечает флаг TA EON (про EON чуть позже).
Значение флагов TP/TA
Функция весьма полезна. На территории РБ почти не представлена. Одна радиокомпания использует передачу флагов ТР/ТА, но на данный момент без переключения между радиостанциями холдинга. Многие ошибочно думают, что это «уводит» слушателя, и не рискуют пользоваться, хотя при должной «RDS-культуре», сделало бы очень хорошую услугу тем, кто за рулём ездит в час-пик по Минску (сейчас эти слушатели «вручную» ищут выпуски о дорожной обстановке в эфире, либо получают эту информацию другим способом, отличным от радиоэфира).
CT (Clock Time and date) — передача информации о дате и точном времени. Служит для отображения на дисплее приёмника, а так же для синхронизации ваших автомобильных часов (если это предусмотрено). Передавать в эфир мы должны всемирное координированное время UTC, и отдельно выставлять часовой пояс со смещением UTC+3. До недавнего времени в Минске были несколько радиостанций, которые передавали ложное время. Разница достигала от 5 минут до 2 часов. Согласитесь, это «медвежья» услуга в таком виде. Поэтому время должно быть точным и желательно иметь регулярную возможность синхронизироваться в кодере через тайм-сервер в вашей сети или в интернете.
AF (Alternative Frequencies list) — список альтернативных частот. Это очень хорошо применимо во время поездок за пределы одного города. Когда вы покидаете зону слабого сигнала от вышки «А» и находитесь под «сильным» влиянием вышки «Б», то приёмник просто автоматически переключится на сильнейший сигнал, обнаруживаемый благодаря этой функции. Должны соблюдаться определённые условия: PI-коды совпадают, в самом RDS-кодере прописаны те самые альтернативные частоты (от 87.6 МГц до 107.9 МГц), и сигнал хоть одной из них должен стать сильнее, чем текущая частота. Список должен содержать те частоты, на которых подаётся сигнал RDS от кодера, и которые имеют достаточное пересечение по покрытию.
Прописываются AF одним из двух методов: A или B. Метод А основан на том, что если вы просто ретранслируете сигнал в других городах, и можете прописать до 25 частот. Этот метод больше всех рекомендован.
Метод В — сложнее. Он нужен для того, чтобы делать переключение между региональными передатчиками — у которых имеется основной сигнал, но в тоже время в разных городах по-своему сформированы программы и музыкальные композиции.
Информация для работников: не стоит прописывать AF, если круги ваших сигналов не пересекаются друг с другом! Прописывайте только то что ближе, и где кружочки друг-друга пересекаются, либо находятся на небольшом расстоянии друг от друга. Так же есть рекомендация помимо соседних частот прописать и ту, на которой непосредственно ведётся вещание.
Вот вам демонстрация переключения магнитолы, настроенной на «BBC Newcastle».
Обратите внимание, что все круги пересекаются между собой. А значит использование функции AF вполне логично.
RDS, как это работает? Опускаемся на самый нижний уровень модели OSI
С системой RDS (Radio Data System) сталкивался хоть раз каждый, кто видел в автомагнитоле название станции вроде «Дорожное радио». Помимо названия, могут отображаться дополнительные данные — название воспроизводимой песни, температура, частота вещания и т.д.
Но как это работает? Т.к. моим хобби является радио и цифровая обработка сигналов, разобраться было интересно. Как оказалось, полной информации о RDS в рунете практически нет (да и в англоязычном тоже негусто), надеюсь, эта публикация восполнит этот пробел.
Продолжение под катом (осторожно много картинок).
Введение
Радиостанции FM-диапазона существуют и пользуются популярностью довольно-таки давно. Но со временем стало ясно, что помимо звука, не хватает текстовой информации — названия станции, трека, исполнителя песни. Добавить такую возможность можно было только одним способом — помимо звука передавать дополнительный цифровой канал. Причем передавать так, чтобы с одной стороны, данные было несложно декодировать (вычислительные возможности микросхемы в радиоприемнике довольно ограничены), с другой стороны, чтобы не нарушить совместимости с уже имеющимися в продаже приемниками. Задача была решена, так появился стандарт RDS, принятый в 1990м году.
Спектр современной FM-станции выглядит так:
На картинке можно видеть (слева-направо) 4 основных компонента.
— Звук в формате «моно» (L+R). Вероятно был оставлен для совместимости со старыми приемниками (интересно наблюдать как в подобных стандартах разные технологии «накладываются» друг на друга для обеспечения обратной совместимости).
— Пилот-тон 19КГц. Используется для декодирования стерео-сигнала, для чего частота пилот-тона умножается на 2, и относительно полученной частоты 38КГц разделяются стерео-каналы.
— Стерео звук, второй канал (L-R), находящийся на картинке симметрично относительно 38КГц.
— Канал RDS, который передается на 3й гармонике пилот-тона, его частота составляет соответственно 19*3 = 57КГц. Им-то мы и займемся.
Модуляция RDS
Для того, чтобы декодировать сигнал, сначала надо понять как он формируется, и здесь довольно-таки много «подводных камней». Основным документом, описывающим RDS, является «EUROPEAN STANDARD EN 50067», eго-то мы и будем изучать.
RDS-кодер, согласно стандарту, выглядит так:
«
Как можно видеть, сигнал в кодере проходит 5 стадий:
1) Исходный битовый поток. Для его получения RDS-сообщения сначала кодируются в 16-битные пакеты, потом к ним дописывается 10-битный блок контрольной суммы с коррекцией ошибок, в итоге получаются 26-битные блоки, которые и посылаются в кодер. Казалось бы, берем и посылаем? Все сложнее.
2) Битовый поток преобразуется с помощью дифференциального кодирования по следующей таблице:
Единицей кодируется изменение бита, отсутствие изменения кодируется нулем. Это нужно для простой цели — полученный код является независимым к инверсии. Мы можем не знать, что считать «0», а что считать «1», данное кодирование устраняет этот пробел.
Рассмотрим простой пример, пусть передаваемое сообщение — 0010100. Кодируем его по данной таблице, получаем 0011000.
Для декодирования используется другая таблица:
Воспользовавшись ей, получаем исходное сообщение 010100. Смысл действия в том, что если исходное сообщение инвертировано (т.е. 1100111), то декодируя его, все равно получаем тот же результат.
Теперь берем сигнал и посылаем? Еще нет, все сложнее.
Сигнал, показанный под номером «5» на схеме кодера — это фактически и есть наши биты после манчестерского кодирования, только кодер в стандарте рассматривался аппаратный. Он работает следующим образом:
— Битовый поток превращается в последовательность коротких импульсов (цифра «3» на картинке)
— Манчестерское кодирование выполняется с помощью задержки сигнала на пол периода и сложения его с противоположным знаком (цифра «4»).
— Полученный сигнал в виде «всплесков» положительных и отрицательных импульсов, подается на ФНЧ (фильтр низких частот), который выделяет огибающую, показанную под цифрой «5».
Вот теперь-то сигнал можно передавать? Да можно. Но не сразу. Исходная частота цифрового сигнала RDS составляет 1187.5Гц, что слишком мало. Полученный сигнал умножается на другой сигнал с частотой 57КГц, что переносит его на заданную частоту, вспоминаем школьную формулу умножения косинусов:
Полученный сигнал имеет как раз необходимую нам частоту 57КГц, он суммируется с «основным» (звуковым) сигналом, который и транслируется в эфир. Как можно видеть из верхней картинки, добавление частоты 57КГц не затрагивает каналов звука, соответственно не добавляет никаких искажений даже в не имеющие поддержки RDS-приемники.
Демодуляция
Теперь, поняв как получается сигнал, мы можем приступить к демодуляции сигнала с реальной FM-станции. Для этого нужен SDR-приемник, я использовал HackRF, но подойдет и гораздо более дешевый RTL-SDR, купить который можно за 10$ с бесплатной доставкой на eBay.
Шаг 1. WFM-декодер
Т.к. исходный сигнал частотно-модулирован, сначала мы должны получить его в демодулированном виде. Чтобы не писать еще и ЧМ-декодер, воспользуемся пакетом GNU Radio. Запустим GNU Radio Companion и соберем схему, как показано на рисунке.
Мы собираемся принимать FM-станцию на частоте 100.4МГц, для этого мы настраиваем приемник на частоту 99МГц, и программно «сдвигаем» сигнал вверх по частоте на 1.4МГц, домножая его на сигнал с такой частотой. Это сделано потому, что SDR-приемник имеет пик на нулевой частоте относительно центра, и настроиться сразу на станцию мы не можем.
Запускаем «схему», и видим картинку как в учебнике в начале статьи.
Хорошо видны пилот-тон на 19КГц, стерео-сигнал на 38КГц и 2 пика RDS-сигнала вокруг 57КГц.
Шаг 2. Выделение пилот-тона и RDS-сигнала.
Следующим шагом является выделение пилот-тона и сигнала RDS. Для этого используем полосовой фильтр на соответствующие частоты.
Запускаем полученную схему, и видим результат, как в любом «учебнике» по описанию RDS.
Хорошо видны пилот-тон с частотой 19КГц, и 57КГц-сигнал, модулирующий более низкочастотный сигнал с частотой 1187.5Гц.
Шаг 3. Выделение низкочастотного сигнала.
Для получения НЧ-сигнала необходимы 2 шага:
3.1) Получение сигнала 57КГц (3й гармоники пилот-тона).
Мы имеем выделенный фильтром сигнал 19КГц, а как получить из него 57КГц? Для этого вспоминаем школьную математику, формулу куба синуса:
Как нетрудно видеть, куб синуса содержит 2 компоненты: sin(a) и sin(3*a). Т.к. мы работаем с «аналоговыми» блоками, берем в GNU Radio 2 блока — умножитель, и фильтр высоких частот. Убрав sin(a) фильтром на 38КГц, получаем искомые 57КГц.
Готовый результат можно видеть на осцилограмме:
3.2) Обратный перенос частоты
При кодировании сигнал переносился с частоты 1187.5Гц вверх, умножением на 57КГц. Теперь выполняем обратную операцию, переносим сигнал «вниз». Для этого еще раз умножаем его на 57КГц-сигнал. По формуле произведения синусов (школьная программа вещь полезная) получаем 2 компоненты — суммы и разности частоты. Нам нужна именно разность, сумму мы отбрасываем с помощью фильтра низких частот.
Все это делается добавлением блоков в GNU Radio, готовый результат показан на картинке:
Зеленым цветом показан «образцовый» сигнал с частотой 1187.5Гц, чтобы видеть что преобразование выполнено правильно.
Шаг 4. Демодуляция низкочастотного сигнала
Принцип этой части проще всего проиллюстрировать картинкой из стандарта (блок «biphase symbol decoder»).
Демодуляция бифазного сигнала состоит из 2х частей.
— «Переворачивание» сигнала инвертором. Это нужно для возврата от бифазного кодирования, которое рассматривалось выше, к исходному сигналу. Фактически нужно «перевернуть» каждый второй бит, поэтому процесс синхронизирован с тактовым сигналом.
— Суммирование сигналов за период. Положительная сумма соответствует биту «1», отрицательная «0».
Кстати, период 1187.5Гц тоже выбран не случайно — это частота пилот-тона 19КГц, деленная на 16. Все сделано для того, чтобы аппаратная реализация декодера в приемнике была как можно проще и соответственно, дешевле.
После демодуляции сигнал поступает на дифференциальный декодер, который рассматривался выше. Дальше сигнал поступает на модуль коррекции ошибок, но это уже как говорится, другая история, соответствующая второму уровню модели OSI.
Если кому интересно, теоретическую часть можно будет продолжить, и рассмотреть формирование пакетов. Если же кто захочет поэкспериментировать самостоятельно, один из вариантов работающего декодера для RTL-SDR можно найти на github. При желании использовать аппаратный тюнер в своих проектах, можно купить на eBay плату Si4703 FM RDS Tuner, ее цена около 6$.