Этот пример показывает, как можно использовать Simulink® и Communications Toolbox™, чтобы извлечь программу или информацию о песне от радиостанций FM с помощью RDS или стандарта RBDS и, опционально, RadioText Плюс (RT +) стандарт. Можно или использовать полученные сигналы или получить сигналы в режиме реального времени с помощью Радио RTL-SDR или Радио ADALM-PLUTO.
Чтобы запустить этот пример с помощью полученных сигналов, вам нужно следующее программное обеспечение:
Чтобы получить сигналы в режиме реального времени, вам также нужно одно из следующего оборудования:
Радио RTL-SDR и соответствующее программное обеспечение Communications Toolbox Support Package для Радио RTL-SDR
Радио ADALM-PLUTO и соответствующее программное обеспечение Communications Toolbox Support Package для Радио ADALM-PLUTO
Для полного списка Communications Toolbox поддерживаемые платформы SDR обратитесь к разделу Supported Hardware Программно определяемого радио (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:
Полосовая фильтрация: получатель PHY проводит фильтрацию полосы пропускания на уровне 19 кГц и 57 кГц, чтобы изолировать экспериментальный тон и сигнал RDS/RBDS, соответственно.
Утроение частоты: Повысьте комплексное представление экспериментального тона на 19 кГц к 3-й степени утроить ее частоту и получить экспериментальный тон на 57 кГц.
Демодуляция AM: RDS и символы RBDS сгенерированы на уровне на 1 187,5 Гц и являются AM - модулируемый поставщику услуг на 57 кГц. Сигнал RDS/RBDS на 57 кГц может когерентно демодулироваться с поставщиком услуг на 57 кГц, который заблокирован в частоте и фазе. Как правило, утроенный частотой экспериментальный тон на 19 кГц достаточен для когерентной демодуляции. Следующие данные показывают экспериментальные тоны на 57 кГц и на 19 кГц, сигнал 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 кГц задерживается, чтобы вести себя больше как основанный на косинусе демодулятор.
Извлечение тактового сигнала: Чтобы выполнить двухфазное декодирование символа, часы, совпадающие с уровнем символа RDS/RBDS 1 187,5 Гц, извлечены от экспериментального тона на 19 кГц. Примечание, 1 187,5 Гц x 16 = 19 кГц. Чтобы составлять смещения частоты, деление частоты используется, чтобы извлечь часы от экспериментального тона на 19 кГц. Поскольку операция деления частоты предоставляет несколько правильных ответов, основополосный сигнал RDS/RBDS служит данными тренировки, которые помогают в определении желаемого вывода.
Двухфазный декодер символа: RDS и RBDS используют bi-phase-level (bi-L) кодирование, которое обычно известно как Манчестерское кодирование. За каждый такт символ RDS/RBDS принимает два противоположных амплитудных значения, или положительное, сопровождаемое отрицанием, или отрицание, сопровождаемое положительным. Двухфазный декодер символа инвертирует второй амплитудный уровень, так, чтобы каждый символ содержал тот же амплитудный уровень в целом такте. Новый амплитудный уровень всех часов соответствует битному представлению символа. Следующие два снимка экрана соответствуют формам волны № 1-6 в рисунке 2 [1].
Чтобы получить битовое значение каждого символа, форма волны интегрирована по каждому такту, и результат сравнивается с нулем (нож).
Дифференциальное декодирование: Наконец, биты дифференцированно декодируются, чтобы вернуться кодирование дифференциала в передатчике.
Слой 2 реализован с помощью блока RBDSDataLinkDecoder System. Этот слой ответственен за синхронизацию и исправление ошибок.
Битный вывод слоя 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 и буква или 'B', например, 0B, 2 А, 3 А. Формат каждой группы может быть зафиксирован, или это может быть абстрактно, если эта группа выделяется для Открытого Применения данных (ODA, см. список в [3]).
Слой 3 реализован с помощью блока RBDSSessionDecoder System. Это декодирование поддержек блока 0A, 0B, 2 А, 2B, 3 А, 4 А, типов группы фиксированного формата 10A.
0A и 0B передают 8 символьных строк, которые обычно изменяются способом текста прокрутки.
2 А и 2B передают более длинные 64-или 32 символьных строки.
3 А указывают ODAs и задают их специализированный тип группы абстрактного формата.
4 А передают системное время.
На 10 А далее категоризирует тип программы (например, 'Футбол' для 'Спортивного' типа программы).
Для ODAs, декодирования поддержек получателя RDS/RBDS RadioText Плюс (RT +) [4]. Этот ODA может сломать длинные 32 или 64 символьных строки от типов 2A и 2B группы в два определенных типа контента (например, художник и песня).
Следующий снимок экрана иллюстрирует графический дисплей обработанных данных RDS/RBDS:
Основная информация RDS/RBDS:
Первое поле соответствует типу программы, который передается вторым информационным словом всех типов группы. Если типы группы на 10 А получены, первое поле также обеспечивает дальнейшую характеристику, например, Спорт \Футбол.
Второе поле иллюстрирует текст с 8 символами, переданный 0A/0B группами.
Третье поле иллюстрирует дольше 32/64-character текст, переданный 2A/2B типами группы.
RadioText Плюс (RT +): Этот раздел используется, если какие-либо группы на 3 А указывают, что RadioText Плюс (RT +) ODA [4] использует определенный тип группы абстрактного формата, например, 11 А. Затем на приемы этого абстрактного типа группы 32/64-character текст, переданный группами 2A/2B, будет разделен к двум подстрокам. Кроме того, две метки будут обновлены, чтобы охарактеризовать подстроки (например, Художник и Песня).
Приемы типа группы: таблицы действуют как гистограмма, иллюстрирующая, какие типы группы были получены от станции и с какой частота. В результате пользователи могут хотеть посмотреть на записанные данные для получения дополнительной информации, которая не изображена в графическом средстве просмотра (например, системное время в 4 А, альтернативные частоты в 0A и т.д.).
Открытые применения данных (ODA): Если какие-либо типы группы на 3 А получены, то список ODAs, с которым сталкиваются, обновляется с именем ODA и их специализированным типом группы.
Кроме того, можно включить флажок 'Log data to file' в порядке регистрировать дальнейшие поля от всех типов группы.
Национальный Комитет по Системам радиосвязи, стандарт RBDS Соединенных Штатов, апрель 1998
Der, Лоуренс. "Пример по Модуляции частоты (FM)". Silicon Laboratories Inc.
Национальный комитет по системам радиосвязи, список приложений ODA в RDS
RadioText плюс (RT +) спецификация
Джозеф П. Хоффбек, "Преподавая системы связи с Simulink® и USRP", ежегодная конференция ASEE, Сан-Антонио, TX, июнь 2012