В этом примере показано, как можно использовать Simulink ® и Communications Toolbox™ для извлечения информации о программе или песне от радиостанций FM с помощью стандарта RDS или RBDS и, опционально, стандарта RadioText Plus (RT +). Можно использовать записанные сигналы или принимать сигналы в режиме реального времени с помощью Радио RTL-SDR или Радио ADALM-PLUTO.
Чтобы запустить этот пример с помощью записанных сигналов, вам нужно следующее программное обеспечение:
Для приема сигналов в режиме реального времени также необходимо одно из следующего оборудования:
Радио RTL-SDR и соответствующий программный пакет поддержки Communications Toolbox для радио RTL-SDR
Радио ADALM-PLUTO и соответствующий программный пакет Поддержки Communications Toolbox для радио ADALM-PLUTO
Полный список поддерживаемых Communications Toolbox платформ SDR см. в разделе «Поддерживаемые аппаратные средства» Программно определяемого радио (SDR).
RBDS и RDS являются очень похожими стандартами, определяющими, как дополнить FM-радиосигналы дополнительной информацией. RBDS используется в Северной Америке, в то время как RDS первоначально использовался в Европе и развивался до международного стандарта. RBDS и RDS содержат 3 слоя:
Физический слой (слой 1)
Слой канала передачи данных (слой 2)
Слой сеансов и презентаций (уровень 3)
Подсистема физического слоя принимает записанный сигнал из файла или прямой сигнал от радио и выполняет следующие шаги:
FM-демодуляция: После демодуляции FM-сигнала сигнал RDS/RBDS находится в полосе 57 кГц +/- 2,4 кГц:
Следует иметь в виду, что сигнал RDS/RBDS передается с относительно низкими степенями, поэтому он не всегда видим в FM- спектра, как на приведенном выше рисунке.
FM-сигналы содержат пилот-сигнал с частотой 19 кГц, который может использоваться в качестве фазы и опорной частоты для когерентной демодуляции сигнала RDS/RBDS с частотой 57 кГц и стерео-аудио с частотой 38 кГц. Тональные сигналы управления частотой 38 кГц и 57 кГц могут быть сгенерированы путем удвоения и утроения частоты тонального сигнала управления частотой 19 кГц [2].
Этапы обработки для когерентной демодуляции сигнала RDS/RBDS:
Полосовая фильтрация: Приемник проводит полосовую фильтрацию на частотах 19 кГц и 57 кГц, чтобы изолировать тональный сигнал управления и сигнал RDS/RBDS, соответственно.
Тройное увеличение частоты: Увеличение комплексного представления пилот-тонального сигнала 19 кГц до 3-й степени, чтобы утроить его частоту и получить пилот-тональный сигнал 57 кГц.
AM Demodulation: символы RDS и RBDS генерируются со скоростью 1187,5 Гц и модулируются AM на несущей 57 кГц. Сигнал RDS/RBDS 57 кГц может быть когерентно демодулирован с несущей 57 кГц, которая заблокирована в частоте и фазе. Обычно частотно-утроенный пилот-тон 19 кГц достаточен для когерентной демодуляции. Следующие рисунки показывают пилот-тональные сигналы 19 кГц и 57 кГц, сигнал RDS/RBDS 57 кГц и AM-демодулированный сигнал RDS/RBDS основной полосы частот.
В то же время существует несколько FM станций, чей сигнал RDS/RBDS 57 кГц показывает изменяющееся во времени смещение фазы от пилот-тонального сигнала 19 кГц и его трехчастотной версии. Приемник PHY содержит схему Костаса, чтобы компенсировать такие изменяющиеся во времени смещения фазы.
Схема Костаса: Цикл Костаса выполняет 2 ортогональные AM демодуляции, одна демодуляция с синусом 57 кГц и другая с косинусом 57 кГц. Частота дискретизации принимаемого сигнала тщательно выбирается равной 228 кГц, что обеспечивает 4 выборки в цикле 57 кГц. Поэтому задержка на одну выборку пилот-тонального сигнала 57 кГц результатов к смещению фазы на одну четверть длины волны и позволяет нам генерировать косинусоидную волну из синусоиды. Синусоидальный демодулированный сигнал соответствует выходу когерентной демодуляции. Сигнал, демодулированный косинусом, используется для обнаружения фазы ошибки. Продукты сигнала RDS/RBDS 57 кГц с синусоидальными/косинусоидальными волнами фильтруют низкочастотным фильтром, указанным в разделе 1.7 [1]. Продукт из двух выходов фильтра является сигналом ошибки. Чем он больше, тем больше тон пилот-сигнала 19 кГц задерживается, чтобы вести себя больше, как демодулятор на основе косинуса.
Выделение синхроимпульса: Для выполнения декодирования бифазного символа из пилот-сигнала 19 кГц извлекается синхроимпульс, соответствующий скорости символа RDS/RBDS 1187,5 Гц. Обратите внимание, 1187,5 Гц x 16 = 19 кГц. Для расчета смещений частоты частотное деление используется для извлечения синхроимпульса из пилот-сигнала 19 кГц. Поскольку операция деления обеспечивает несколько правильных ответов, сигнал RDS/RBDS основной полосы частот служит обучающими данными, которые помогают в определении желаемого выхода.
Бифазный символьный декодер: RDS и RBDS используют бифазное (bi- -L) кодирование, которое обычно известно как Манчестер-кодирование. За каждый такт символ RDS/RBDS берет два противоположных амплитудных значения, или положительное, сопровождаемое отрицанием, или отрицание, сопровождаемое положительным. Декодер бифазного символа отменяет второй уровень амплитуды, так что каждый символ содержит один и тот же уровень амплитуды в течение всего такта. Новый уровень амплитуды всего синхроимпульса соответствует битовому представлению символа. Следующие два снимка экрана соответствуют формам сигналов # 1-6 на фигуре 2 [1].
Чтобы получить битовое значение каждого символа, форма волны интегрируется в каждом такте, и результат сравнивается с нулем (слайсер).
Дифференциальное декодирование: Наконец, биты дифференциально декодируются, чтобы вернуть дифференциальное кодирование в передатчике.
Слой 2 реализован с использованием системного блока RBDSDataLinkDecoder. Этот слой отвечает за синхронизацию и коррекцию ошибок.
Битовый выход слоя PHY логически организован в 104-битовых группах, содержащих четыре 26-битовых блока. Каждый блок содержит 16-битное информационное слово и 10 биты четности (см. фигуру 8 в [1]). Отдельное 10-битовое слово смещения добавлено по модулю-2 к битам четности каждого блока.
Синхронизация: Первоначально контуры блоков и групп ищутся исчерпывающе с помощью скользящего окна 104 бит. Для каждого 104-битового окна 4 слова смещения запрашиваются в последних 10 битах каждого 26-битового блока. Слово смещения идентифицируется, если в его блоке не обнаружено битовых ошибок. Когда слова смещения идентифицируются, достигается синхронизация на уровне группы, и исчерпывающая обработка окна скольжения останавливается. Впоследствии следующие 104 бита будут рассматриваться как следующая группа.
Если будущие группы содержат битовые ошибки, и слова смещения не могут быть идентифицированы в их ожидаемом положении, синхронизация может быть потеряна. В этом случае Слой 2 сначала исследует возможность 1-битных пробелов синхронизации, используя тот факт, что первое информационное слово (16 биты) всегда одно и то же для всех битовых групп. Если первое информационное слово найдено дислоцированным на 1 бит (либо влево, либо вправо), синхронизация сохраняется, и контуры группы корректируются соответственно. Если битовые ошибки сохраняются для 25 приемов группы и в то же время синхронизация не может быть восстановлена, используя такие левые/правые 1-битовые сдвиги, то синхронизация теряется, и слой 2 повторно входит в исчерпывающий, основанный на скользящем окне поиск синхронизации.
Коррекция ошибок: RDS и код коррекции ошибок RBDS являются (26, 16) циклическим кодом, укороченным от (341, 331). Реализация коррекции ошибок использует схему сдвигового регистра, описанную в Приложении B к [1].
Слой 2 удаляет биты четности/смещения, поэтому слой 3 принимает группы 64 битов, содержащие четыре 16-битовых блока. Существует до 32 различных типов групп, каждый из которых помечен числом от 0 до 15 и буквой 'A' или 'B', например, 0B, 2A, 3A. Формат каждой группы может быть фиксированным или абстрактным, если эта группа выделена для открытого приложения данных (ODA, см. список в [3]).
Слой 3 реализован с использованием системного блока RBDSSessionDecoder. Эта расшифровка поддержек блока 0A, 0B, 2 А, 2B, 3 А, 4 А, типов группы фиксированного формата на 10 А.
0A и 0B передают 8-символьную строку, которая обычно изменяется прокруткой текста.
2A и 2B передают более длинные 64 - или 32-символьные строки.
3A регистрирует ODA и задает их выделенный тип группы абстрактного формата.
4A передает системное время.
10A далее классифицирует тип программы (например, 'Football' для типа программы 'Sports').
Для ODA приемник RDS/RBDS поддерживает декодирование RadioText Plus (RT +) [4]. Эта ОПР может разбить длинную 32 или 64-символьную строку из типов групп 2A и 2B на два конкретных типа содержимого (для примера, исполнителя и песни).
Следующий снимок экрана иллюстрирует графическое отображение обработанных данных RDS/RBDS:
Базовая информация RDS/RBDS:
Первое поле соответствует типу программы, который передается вторым информационным словом всех типов группы. Если получены 10A типы групп, первое поле также обеспечивает дополнительную характеристику, например, Sports\Football.
Второе поле иллюстрирует 8-символьный текст, передаваемый 0A/0B группами.
Третье поле иллюстрирует более длинный 32/64-символьный текст, передаваемый типами 2A/2B групп.
RadioText Plus (RT +): Этот раздел используется, если какие-либо 3A группы указывают, что RadioText Plus (RT +) ODA [4] использует определенный тип группы абстрактного формата, например, 11A. Затем, после приема этого типа абстрактной группы, 32/64-символьный текст, переданный группами 2A/2B, будет разделен на две подстроки. Кроме того, эти две метки будут обновлены для характеристики подстрок (например, Artist и Song).
Приемы типа группы: Таблицы действуют как гистограмма, иллюстрирующая, какие типы групп были получены от станции и с какой частотой. В результате пользователи могут захотеть просмотреть записанные данные для получения дополнительной информации, которая не изображена в графическом средстве просмотра (например, системное время в 4A, альтернативные частоты в 0A и т.д.).
Откройте приложения данных (ODA): Если получены какие-либо 3A типы групп, то список встретившихся ODA обновляется с именем ODA и их выделенным типом группы.
Кроме того, можно включить флажок 'Журнала данных to файла' в порядок для регистрации дальнейших полей из всех типов групп.
Национальный комитет по радиосистемам, стандарт RBDS Соединенных Штатов, апрель 1998 года
Дер, Лоуренс. «Учебное руководство по частотной модуляции (FM)». Silicon Laboratories Inc.
Национальный комитет по радиосистемам, Список приложений ОПР в РДС
Спецификация RadioText Plus (RT +)
Джозеф П. Хоффбек, «Обучение коммуникационным системам с Simulink ® и USRP», Ежегодная конференция ASEE, Сан-Антонио, Техас, июнь 2012 года