В этом примере показано, как реализовать приемник рации с использованием Simulink ® и Communications Toolbox™. Конкретным стандартом радиосвязи, который приведен в данном примере, является FRS/GMRS (Семейная радиосервис/Общая мобильная радиосервис) с CTCSS (Непрерывная система Скворчения с кодированием тональных сигналов). Можно использовать имитированные сигналы, записанные сигналы или принятые сигналы от коммерческой рации с помощью пакета поддержки Communications Toolbox для Радио RTL-SDR.
Этот пример предназначен для работы со стандартами США для операции FRS/GMRS. Технические спецификации для этих стандартов см. в ссылку списке ниже. Операция в других странах может работать или не работать.
Чтобы запустить этот пример с помощью записанных сигналов, вам нужно следующее программное обеспечение:
Чтобы принимать сигналы в режиме реального времени, вам также нужно следующее оборудование:
Радио RTL-SDR
Рация
и следующее программное обеспечение
Полный список поддерживаемых Communications Toolbox платформ SDR см. в разделах «Аппаратная поддержка MATLAB и Simulink для SDR» Программно определяемого радио (SDR).
Для получения информации о технологии FRS/GMRS и демодуляции этих сигналов см. пример Приемник.
Чтобы запустить пример с помощью моделируемых сигналов, выберите FRS/GMRS Signal Generator
блокируйте как источник используя Signal Source Selector
блок. Дважды кликните FRS/GMRS Signal Generator
блок для выбора CTCSS code
и исходный тип как один из 'Single tone', 'Chirp' или 'Audio'. Затем нажмите кнопку 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. В меню модели выберите симуляция- > Accelerator, затем нажмите кнопку run. Если вы все еще испытываете отсева или задержку в режиме Accelerator, попробуйте запустить модель в режиме Rapid Accelerator.
«Signal Spectrum» показывает спектр принимаемого сигнала на входе Channel Selector
блок. Можно наблюдать, как изменяется спектр, когда вы говорите в рацию.
Следующий блок суммирует структуру приемника. Обработка состоит из четырех основных частей: Signal Source, Channel Selector, FM Demodulator и CTCSS.
Источник сигнала
Этот пример может использовать три источника сигналов:
«Моделируемый Сигнал»: Моделируемые FRS/GMRS сигнализируют в 240e3 выборки/секунда
«Записанный сигнал»: Беспроводные сигналы записаны в файл и получены с помощью блока чтения файлов основной полосы частот с частотой 240e3 выборок/сек
«Радио RTL-SDR»: радио RTL-SDR на 240e3 отсчетах/сек. Используйте рацию в качестве передатчика. Установите номер канала на номер канала рации.
Селектор канала
Приемник удаляет компонент постоянного тока и применяет переменный коэффициент усиления к принимаемому сигналу для получения приблизительно известного сигнала амплитуды с уменьшенной помехой. Приемник затем применяет фильтр разделения каналов нижних частот, чтобы уменьшить сигналы от соседних каналов. Зазор между смежными каналами составляет 25 кГц, что означает, что пропускная способность полосы базовых частот составляет самое большее 12,5 кГц. Таким образом, мы выбираем частоту отключения 10 кГц.
Затем селектор канала вычисляет среднюю степень фильтрованного сигнала. Если он больше порога (устанавливается по умолчанию на 10%), селектор канала определяет, что принятый сигнал из правильного канала, и позволяет сигналу пройти. В случае внеполосного сигнала, хотя фильтр разделения каналов уменьшает свою величину, он все еще модулируется FM, и модулирующий сигнал будет присутствовать после FM демодуляции. Чтобы полностью отклонить такой сигнал, селектор канала выводит все нули.
FM-демодулятор
Этот пример использует FM Demodulator Baseband
блок, частота дискретизации и максимальное отклонение частоты которого установлены на 240 кГц и 2,5 кГц соответственно.
CTCSS
Во-первых, децимирующий фильтр преобразует частоту дискретизации с 240 кГц в 8 кГц. Эта скорость является одной из собственных частот дискретизации вашего хоста-компьютера выхода аудио устройства. Затем декодер CTCSS вычисляет степень на каждой тональной частоте CTCSS с помощью алгоритма Гертцеля и выводит код с наибольшей степенью. Алгоритм Гертцеля предоставляет эффективный способ вычисления частотных составляющих на заранее определенных частотах, то есть частотах тонального кода, используемых FRS/GMRS.
Модель сравнивает оцененный полученный код с предварительно выбранным кодом и затем отправляет сигнал в аудио устройство, если эти два кода совпадают. Когда предварительно выбранный код равен нулю, это указывает, что система squelch не используется, и блок принятия решения передает сигнал в канале в аудио устройство независимо от того, какой код используется.
Наконец, фильтр высоких частот с частотой отключения 260 Гц отфильтровывает тональные сигналы CTCSS, которые имеют максимальную частоту 250 Гц. Использование Audio Device Writer
блокируйте воспроизведение полученных сигналов через динамики вашего компьютера. Если вы не слышите звука, выберите другое устройство с помощью параметра DeviceName Audio Device Writer
блок.
Перед аудио устройством для фильтрации тонов CTCSS (которые имеют максимальную частоту 250 Гц) используется фильтр высоких частот с частотой отключения 260 Гц, так что они не слышны.
The Audio Device Writer
по умолчанию блок настраивается на вывод в текущее аудио устройство в настройках системы.
Декодирование CTCSS вычисляет DTFT (Преобразование Фурье в дискретном времени) входного сигнала с помощью алгоритма Гертцеля и вычисляет степень на тоновых частотах. Поскольку частоты тонов очень близки друг к другу (только 3-4 Гц с интервалом), длина блока DTFT должна быть достаточно большой, чтобы обеспечить достаточное разрешение для частотного анализа. Однако длинные блоки вызывают задержку декодирования. Для примера длина блока 16384 вызовет 2 секунды задержки, поскольку декодер CTCSS работает на частоте дискретизации 8 кГц. Это создает компромисс между эффективностью обнаружения и задержкой обработки. Оптимальная длина блока может зависеть от качества передатчика и приемника, расстояния между передатчиком и приемником и других факторов. Рекомендуется изменить длину блока в функции инициализации путем перехода к функции helperFRSReceiverConfig и изменения значения поля CTCSSDecodeBlockLength. Это позволит вам наблюдать компромисс и найти оптимальное значение для пары передатчик/получатель.
Когда FRS/GMRS Signal Generator
выбран в качестве источника, можно изменить CTCSS tone amplitude
параметр этого блока и наблюдают, как это влияет на спектр сигнала.
В этом примере используется следующий скрипт: