Приемник FRS/GMRS в Simulink

В этом примере показано, как реализовать приемник портативной радиостанции с помощью Simulink® и Communications Toolbox™. Определенный радио-стандарт, за которым следует этот пример, является FRS/GMRS (Сервис Радио Семейства / Общий Сервис Рации) с CTCSS (Непрерывная Закодированная Тоном Бесшумная Система). Можно использовать симулированные сигналы, записанные сигналы или полученные сигналы от коммерческой портативной радиостанции с помощью Пакета поддержки Communications Toolbox для Радио RTL-SDR.

Этот пример спроектирован, чтобы работать со стандартами США для операции FRS/GMRS. Технические характеристики для этих стандартов могут быть найдены в списке ссылок ниже. Операция в других странах может или не может работать.

Необходимое аппаратное и программное обеспечение

Чтобы запустить этот пример с помощью записанных сигналов, вам нужно следующее программное обеспечение:

Чтобы получить сигналы в режиме реального времени, вам также нужно следующее оборудование:

  • Радио RTL-SDR

  • Портативная радиостанция

и следующее программное обеспечение

Для полного списка Communications Toolbox поддерживаемые платформы SDR обратитесь к разделу "MATLAB and Simulink Hardware Support for SDR" Программно определяемого радио (SDR).

Введение

Для введения на технологии FRS/GMRS и демодуляции этих сигналов, обратитесь к примеру Приемника Портативной радиостанции FRS/GMRS.

Выполнение примера

Чтобы запустить пример с помощью симулированных сигналов, выберите 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.

Источник сигнала

Этот пример может использовать три источника сигнала:

  1. ''Симулированный Сигнал'': Симулированные FRS/GMRS сигнализируют в 240e3 выборки/секунда

  2. ''Записанный сигнал'': Беспроводные сигналы, записанные в файл и полученное использование основополосного средства чтения файлов, блокируются в 240e3 выборки/секунда

  3. ''Радио 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 параметр этого блока и наблюдает, как это влияет на спектр сигнала.

Приложение

Следующий скрипт используется в этом примере:

Ссылки