exponenta event banner

Цифровой приемник WWV - синхронизация и обнаружение

В этом примере показана реализация цифрового приемника, который синхронизируется с информацией временного кода, передаваемой радиостанцией WWV, и декодирует ее для отображения временной информации. В примере используются продукты Simulink ®, DSP System Toolbox™ и Stateflow ® с функциональным блоком MATLAB ® для создания простого некогерентного цифрового приемника.

Что такое WWV?

WWV - позывной правительственной радиостанции США, управляемой Национальным институтом стандартов и технологий в Форт-Коллинзе, штат Колорадо. WWV передает эталонные стандарты частоты и информацию временного кода. Передаваемый временной код ссылается на цезиевые часы с точностью синхронизации 10 микросекунд и точностью частоты 1 части в 100 миллиардов. Временной код передается с использованием 100-Hz звукового сигнала с широтно-импульсной модуляцией с использованием формата временного кода IRIG-B.

Дополнительную информацию о WWV можно найти на радиостанции WWV.

Введение в синхронизацию

Синхронизация является распространенной проблемой в приложениях Communications. В этом примере показан один из способов реализации решения этой проблемы в Simulink. Рассмотрим следующую простую модель:

Блок буферных выборок поддерживает внутренний кольцевой буфер для эффективной буферизации входных выборок. Он использует режим, в котором допустимый выходной кадр вычисляется только тогда, когда он получает логическое значение true в En_Out входном порту. Подсистема логики синхронизации кадров выдает логическое значение «true», когда соответствующий кадр, как ожидается приемником, буферизирован. Тот же логический сигнал также действует как триггер для подсистемы приемника, которая обрабатывает допустимый кадр. Благодаря такой компоновке выходные секции блока буферных выборок и подсистемы приемника работают только при необходимости. Эта компоновка используется в двух местах в этом примере, один раз для синхронизации и демодуляции символов, а затем снова для синхронизации и декодирования кадров.

Изучение примера

Пример модели состоит из следующих частей, которые описаны в следующих разделах:

  • Передатчик - генерирует и передает код времени BCD

  • Случайная задержка канала - добавляет случайную задержку к передаваемому сигналу

  • Модель (Model) - ссылается dspwwv_receiver модель через блок привязки модели. Эта модель состоит из:

  1. Приемник - демодулирует принятый временной код, синхронизирует и блокирует принятый сигнал и обнаруживает символы BCD

  2. Декодер - декодирует символы BCD

  • Просмотр - отображение соответствующей информации о времени и дате

Обратите внимание, что dspwwv не поддерживает генерацию кода, но dspwwv_receiver делает.

Передатчик

Эта подсистема генерирует двоично-десятичный (BCD) код времени для тонального сигнала 100-Hz. Частота дискретизации (Ts), используемая моделью Simulink, составляет 8000 выборок/сек. Временной код, транслируемый WWV, предоставляет информацию UTC (Coordinated Universal Time) последовательно со скоростью 1 бит в секунду. Для отправки всего временного кода требуется 60 бит или одна минута. Различные биты в каждом временном коде передают следующую информацию:

  • 24 часовое время (UTC)

  • UT1 коррекция времени

  • Год

  • День года

  • Показатели перехода на летнее и зимнее время

  • Коррекция високосных секунд

Дополнительные сведения о временном коде см. в разделах «Биты временного кода WWV» и «Формат временного кода WWV» на веб-сайте NIST. В зависимости от того, выбрано ли значение «Current» или «User-specified» для параметра Display time на маске подсистемы передатчика, подсистема генерирует соответствующие 60 символов временного кода BCD. Каждый символ представлен с использованием широтно-импульсной модуляции (PWM) тонального сигнала 100-Hz и выводится из подсистемы передатчика. Один из следующих возможных символов передается каждую секунду:

  1. MISS - в начале каждого кадра не посылается импульс, указывающий на начало нового кадра.

  2. ZERO - импульс 170 мс указывает на 0 бит

  3. ONE - импульс 470 мс указывает на 1 бит

  4. MARKER - Импульс длиной 770 мс посылается каждые 10 секунд для синхронизации

Переданные символы сопоставляются следующим целочисленным значениям в модели Simulink:

  • 0 - MISS

  • 1 - НОЛЬ

  • 2 - ОДИН

  • 3 - МАРКЕР

Этот передаваемый тональный сигнал идентичен тональному сигналу, передаваемому на поднесущей WWV.

Случайная задержка канала

Эта подсистема добавляет случайную задержку к передаваемому сигналу. Секция приемника синхронизируется с переданными символами и декодирует соответствующий временной код даже при наличии неизвестной задержки.

Модель - dspwwv_receiver Ссылочная модель

Дважды щелкните блок «Модель», чтобы открыть dspwwv_receiver модель. Эта модель имеет все компоненты для соответствующей демодуляции, синхронизации и обнаружения передаваемого сигнала. Он состоит из следующих трех подсистем:

R1 - Получатель

Дважды щелкните подсистему приемника для просмотра ее компонентных подсистем:

1) Downvert и Downsample принимает в качестве входного сигнала широтно-импульсный модулированный сигнал. Подсистема демодулирует принятый сигнал, выполняя обнаружение огибающей, затем выполняет фильтрацию нижних частот и понижающие выборки на 80. Поэтому для каждого переданного символа в демодулированном сигнале имеется 100 выборок (dm). Выходной сигнал этой подсистемы представляет собой последовательность квадратных импульсов переменной длины.

2) АРУ (автоматическая регулировка усиления) оценивает амплитуду dm сигнал, который впоследствии используется при пороговой обработке dm сигнал.

3) Восстановление синхронизации символов и буфер для демодуляции используются для достижения синхронизации символов и буферизации символов для демодуляции. Он содержит следующие подсистемы:

3.1) Детектор переднего фронта принимает демодулированный сигнал dm и квантует его в логический сигнал. Detect выходной сигнал имеет значение true, если значение dm сигнал больше значения AGC, в противном случае - «false». Подсистема также выдает логический сигналEdge , который содержит поднимающиеся края dm сигнал.

3.2) Symbol Sync обеспечивает синхронизацию символов и создает тактовый сигнал, синхронизированный с сигналом WWV. Обратите внимание, что синхронизация кадров выполняется позже в разделе Декодер. Синхронизация использует функцию временной логики Stateflow. Эта диаграмма Stateflow состоит из трех частей:

  1. SymbolSync - эта диаграмма далее разделена на диаграммы состояния синхронизации и состояния блокировки

  2. Синхронизация часов

  3. Интеграция

Ниже показаны подсистема восстановления синхронизации символов и буфер для демодуляции и диаграмма состояния синхронизации символов.

3.2.1) SymbolSync выполняет синхронизацию символов. Диаграмма принимает за вход растущие края (Edge) dm сигнал, который находится на расстоянии приблизительно 100 выборок.

Внутренние параметры этой диаграммы:

  • N1 - Фактическое количество выборок между двумя краями

  • N1est - Оценка количества выборок между двумя краями (начальное значение 100)

  • Nwin - окно, в котором можно найти другую границу после N1est выборок (значение по умолчанию 11 выборок)

  • Nhalfwin - половина длины окна (значение по умолчанию 6)

Состояние синхронизации (Sync State) - чтобы начать синхронизацию, эта диаграмма ищет передний край, за которым следует период молчания (без краев) приблизительно для 100 выборок, а затем ищет другой передний край в окне, центрированном в этой точке. Если диаграмма успешно выполняет это, система утверждает, что она синхронизирована, и предполагает, что остальные символы являются допустимыми символами. В противном случае диаграмма ожидает повторения такого шаблона и продолжает ждать, пока он не завершится успешно:

  1. Диаграмма состояния «Sync» ожидает края и затем ищет молчание (никакого другого края) по крайней мере для образцов dly = 'N1est - Nhalfwin + 1'.

  2. Если эта диаграмма не видит молчание в течение этой длительности (выборки dly) и находит другое ребро, она рассматривает новое ребро как опорное ребро и снова ищет молчание.

  3. Эта диаграмма повторяет шаги 1 и 2 до тех пор, пока ей не удастся найти молчание для следующих dly выборок после опорного края.

  4. После обнаружения тишины для образцов dly эта диаграмма вычисляет, сколько образцов (cnt) после образцов dly она нашла другое ребро. Если следующий край находится в окне Nwin, он переходит в состояние «Lock», чтобы начать прием последующих символов. Если следующая кромка не найдена в выборках окна Nwin, она отбрасывает опорную кромку и снова начинает поиск опорной кромки, как описано в шагах 1-3.

Состояние блокировки (Lock State) - после синхронизации эта диаграмма ищет следующий символ в окне, центрированном приблизительно на каждые 100 выборок, и остается синхронизированным до тех пор, пока она находит символы. Если диаграмма не находит символов два раза подряд (приблизительно 200 выборок), то она больше не синхронизируется и пытается установить синхронизацию снова, как описано выше:

  1. После перехода в состояние «Lock» эта диаграмма предполагает, что края теперь должны входить периодически (приблизительно каждые N1est выборки).

  2. Диаграмма обновляет N1 на N1 + Nhalfwin-cnt и игнорирует следующие образцы dly = N1-Nhalfwin + 1, а затем ищет следующий край в окне образцов Nwin после этого.

  3. Он отслеживает количество образцов в окне (cnt), после чего находит следующий край. Если обнаружено ребро в окне, оно снова обновляет N1, как указано выше.

  4. На основе нового значения cnt он вычисляет новый dly и начинает искать новый край, как упоминалось выше.

  5. Диаграмма позволяет не находить край в окне Nwin один раз для учета символа MISS, но если это происходит два раза подряд, он выходит из состояния Lock и снова начинает синхронизацию символов, переходя в состояние Sync.

3.2.2) Тактовая синхронизация генерирует тактовый сигнал, когда новый передний фронт dm принимают сигнал. Таким образом, часы синхронизируются с появлением нового края, а не с часами Simulink, периодически работающими с фиксированной скоростью.

3.2.3) Интеграция генерирует пошаговую функцию шаблона с шириной 17 выборок для представления символа ZERO при обнаружении края, то есть всякий раз, когда генерируется тактовый сигнал. Этот сигнал используется подсистемой АРУ.

3.3) Буфер символов для Downstread Demod буферизирует выборки, соответствующие символу, когда он принимает тактовый сигнал (вычисленный выше в 3.2.2).

4) Демонстрация символов и буфер кадров запускаются каждый раз при получении ненулевого тактового сигнала. Он использует блок векторного квантования для выполнения демодуляции символов путем сравнения входного буфера символов с четырьмя возможными кандидатами символов (MISS, ZERO, ONE и MARKER). Он выводит символ с наилучшим совпадением. Блок линии задержки используется для буферизации 60 последовательных символов для создания буфера кадров WWV. Подсистема логики синхронизации кадров, предшествующая блоку линии задержки, ищет наличие последовательного символа MARKER и MISS, поскольку этот шаблон указывает начало нового кадра WWV. Блок «Линия задержки» выводит действительный буфер только при обнаружении этого шаблона. Последующий декодер IRIG-B также запускается в этот момент.

R2 - Декодер кадров IRIG-B

Подсистема, запускаемая декодером кадра IRIG-B, состоит из функционального блока MATLAB, который используется для декодирования кадров символов формата IRIG-B на отдельные элементы временного кода. Эта подсистема запускается только при получении действительного кадра WWV.

Показ

Переданные символы отображаются в области декодированных символов, а декодированная информация временного кода отображается в окне отображения временного кода и временного кода WWV. Поля в окне «Код времени WWV» представляют светодиоды, которые загораются, когда соответствующий сигнал является истинным. СИД, соответствующий переходу на летнее время, разделен на две части, где первой частью является «Индикатор 1 перехода на летнее время», а второй частью - «Индикатор 2 перехода на летнее время». График Clock Drift показывает количество выборок между растущими краями последовательных символов ( symbolClk ) по мере их получения. Этот график варьируется между 95 и 105 образцами.

Использование dspwwv Пример модели

Моделирование модели. Вы увидите дрейф часов, соответствующие символы кода времени BCD и отображаемое текущее время (показано ниже в этом порядке).

Если для параметра Display time установлено значение Current, модель продолжает отображать текущее время, которое обновляется один раз в минуту. Можно изменить параметр Display time (время отображения) переданной подсистемы на User-defined (определяемое пользователем) и указать любое время отображения.