Этот пример показывает, как реализовать получатель портативной радиостанции с помощью Simulink® и Communications Toolbox™. Определенный радио-стандарт, за которым следует этот пример, является FRS/GMRS (Сервис Радио Семейства / Общий Сервис Рации) с CTCSS (Непрерывная Закодированная Тоном Бесшумная Система). Можно использовать моделируемые сигналы, полученные сигналы или полученные сигналы от коммерческой портативной радиостанции с помощью Пакета Поддержки Communications Toolbox для Радио RTL-SDR.
Этот пример разработан, чтобы работать со стандартами США для операции FRS/GMRS. Технические характеристики для этих стандартов могут быть найдены в списке ссылок ниже. Операция в других странах может или не может работать.
Чтобы запустить этот пример с помощью полученных сигналов, вам нужно следующее программное обеспечение:
Чтобы получить сигналы в режиме реального времени, вам также нужно следующее оборудование:
Радио RTL-SDR
Портативная радиостанция
и следующее программное обеспечение
Для полного списка Communications Toolbox поддерживаемые платформы SDR обратитесь к разделу Supported Hardware страницы открытия Программно определяемого радио (SDR).
Для введения на технологии FRS/GMRS и демодуляции этих сигналов, обратитесь к Получателю Портативной радиостанции FRS/GMRS Используя пример MATLAB.
Чтобы запустить пример с помощью моделируемых сигналов, выберите блок FRS/GMRS Signal Generator
как источник с помощью блока Signal Source Selector
. Дважды щелкните по блоку FRS/GMRS Signal Generator
, чтобы выбрать CTCSS code
и исходный тип как один из 'Одного тона', 'Щебета' или 'Аудио'. Затем щелкните по кнопке Run.
Чтобы запустить пример с помощью полученных сигналов, выберите блок FRS/GMRS Captured Signal
как источник с помощью блока Signal Source Selector
. Затем щелкните по кнопке Run.
Чтобы запустить пример с помощью радио RTL-SDR в качестве источника, выберите блок RTL-SDR Receiver
как источник с помощью блока Signal Source Selector
. Затем щелкните по кнопке Run. Включите свою портативную радиостанцию, установите канал быть одним из 14 каналов (пронумеровал 1 - 14), и частный код, чтобы быть любой одним из 38 частных кодов (пронумеровал 1 - 38), или 0, в этом случае никакая бесшумная система не используется, и приняты все полученные сообщения. Обратите внимание на то, что частные коды выше 38 являются цифровыми кодами и не реализованы в этом примере.
Дважды кликните блок Channel Number
и выберите тот же номер канала как портативная радиостанция. Дважды кликните блок CTCSS Code
и установите Код CTCSS на частный код, который вы устанавливаете в портативной радиостанции. Запустите модель и смотрите, можно ли услышать, что речь выходит из компьютерных динамиков. В противном случае попытайтесь настроить значение блока Detection Threshold
вниз немного. Можно переключить канал и частный код, не останавливаясь и перезапуская модель.
Если вы слышите некоторых уволенных или задержку звука, запускаете модель в Режиме Accelerator. Из образцового меню выберите Simulation-> Accelerator, затем щелкните по кнопке Run. Если вы все еще испытываете уволенных или задержку Режима Accelerator, попытайтесь запустить модель в Быстром Режиме Accelerator.
"Спектр Сигнала" показывает спектр полученного сигнала во входе блока Channel Selector
. Можно наблюдать, как спектр изменяется, когда вы говорите в свою портативную радиостанцию.
Следующая блок-схема обобщает структуру получателя. Обработка имеет четыре основных части: Источник Сигнала, Селектор Канала, Демодулятор FM и обработка CTCSS.
Источник сигнала
Этот пример может использовать три источника сигнала:
''Моделируемый Сигнал'': Моделируемые FRS/GMRS сигнализируют в 240e3 выборки/секунда
''Полученный Сигнал'': Беспроводные сигналы, записанные в файл и полученное использование основополосного средства чтения файлов, блокируются в 240e3 выборки/секунда
''Радио RTL-SDR'': радио RTL-SDR в 240e3 выборки/секунда. Используйте портативную радиостанцию в качестве передатчика. Установите номер канала на номер канала вашей портативной радиостанции.
Селектор канала
Получатель удаляет компонент DC и применяет переменное усиление к полученному сигналу получить приблизительно известный амплитудный сигнал с уменьшаемой интерференцией. Получатель затем применяет низкий фильтр разделения каналов передачи, чтобы уменьшать сигналы от смежных каналов. Разрыв между смежными каналами составляет 25 кГц, что означает, что основополосная пропускная способность - самое большее, 12,5 кГц. Таким образом мы выбираем частоту среза, чтобы быть 10 кГц.
Затем, селектор канала вычисляет среднюю степень отфильтрованного сигнала. Если это больше, чем порог (набор к значению по умолчанию 10%), селектор канала решает, что полученный сигнал от правильного канала и позволяет сигналу пройти. В случае внеполосного сигнала, несмотря на то, что фильтр разделения каналов уменьшает свое значение, это - все еще модулируемый FM, и сигнал модуляции будет присутствовать после демодуляции FM. Полностью отклонить такой сигнал, селектор канала выходные параметры все нули.
Демодулятор FM
Этот пример использует блок FM Demodulator Baseband
, частота дискретизации которого и максимальное отклонение частоты установлены в 240 кГц и 2,5 кГц, соответственно.
CTCSS
Во-первых, децимирующий фильтр преобразовывает уровень выборки от 240 кГц до 8 кГц. Этот уровень является одним из нативных уровней выборки выходного аудио устройства вашего хоста - компьютера. Затем декодер CTCSS вычисляет степень на каждой тональной частоте CTCSS с помощью алгоритма Goertzel и выводит код с самой большой степенью. Алгоритм Goertzel обеспечивает эффективный метод вычислить частотные составляющие на предопределенных частотах, то есть, тональные частоты кода, используемые FRS/GMRS.
Модель сравнивает предполагаемый полученный код с предварительно выобранным кодом и затем отправляет сигнал в аудио устройство, если эти два кода соответствуют. Когда предварительно выобранный код является нулем, он указывает, что никакая бесшумная система не используется, и блок решения передает сигнал в канале к аудио устройству, неважно, какой код используется.
Наконец, фильтр высоких частот с частотой среза 260 Гц отфильтровывает тоны CTCSS, которые имеют максимальную частоту 250 Гц. Используйте блок Audio Device Writer
, чтобы проигрывать полученные сигналы через динамики вашего компьютера. Если вы не слышите звука, выберите другое устройство с помощью параметра DeviceName блока Audio Device Writer
.
Перед аудио устройством фильтр высоких частот с частотой среза 260 Гц используется, чтобы отфильтровать тоны CTCSS (которые имеют максимальную частоту 250 Гц) так, чтобы их не слышали.
Блок Audio Device Writer
настраивается по умолчанию, чтобы вывести к текущему аудио устройству в ваших установках системы.
Декодирование CTCSS вычисляет DTFT (преобразование Фурье Дискретного времени) входящего сигнала с помощью алгоритма Goertzel и вычисляет степень на тональных частотах. Поскольку тональные частоты очень друг близко к другу (на расстоянии только в 3-4 Гц), длина блока DTFT должна быть достаточно большой, чтобы обеспечить достаточно разрешения для анализа частоты. Однако задержка декодирования причины длин длинного блока. Например, длина блока 16 384 вызовет 2 секунды задержки, поскольку декодер CTCSS действует на уровне 8 кГц, выбирающих уровень. Это создает компромисс между производительностью обнаружения и задержкой обработки. Оптимальная длина блока может зависеть от качества передатчика и получателя, расстояния между передатчиком и получателем и другими факторами. Вы поощряетесь изменить длину блока в функции инициализации путем навигации к функции helperFRSReceiverConfig и изменения значения поля CTCSSDecodeBlockLength. Это позволит вам наблюдать компромисс и найти оптимальное значение для вашей пары передатчика/получателя.
Когда FRS/GMRS Signal Generator
выбран как источник, можно изменить параметр CTCSS tone amplitude
этого блока и наблюдать, как это влияет на спектр сигнала.
Следующий скрипт используется в этом примере: