В этом примере показано, как оптимизировать получатель QPSK, смоделированный в примере Передатчика и Получателя QPSK для генерации HDL-кода и аппаратной реализации. Оптимизированная HDL модель показывает получатель QPSK, который решает реальные коммуникационные проблемы как восстановление восстановления и синхронизации поставщика услуг благоприятным для оборудования способом.
Оптимизированный Получатель QPSK HDL с Полученным примером Данных предоставляет благоприятное для оборудования решение, которое выполняет основополосную обработку, чтобы обработать изменяющееся во времени смещение частоты и изменяющуюся во времени задержку символа. А именно, этот пример обеспечивает оптимизированный HDL исходный проект практического цифрового получателя, чтобы смягчить вышеупомянутые нарушения и включает крупную компенсацию частоты, основанную на PLL прекрасную компенсацию частоты, синхронизируя восстановление с передискретизацией с фиксированной процентной ставкой, заполнением битами / пропуск, синхронизация системы координат и разрешение неоднозначности фазы.
По сравнению с реализацией получателя в примере Передатчика и Получателя QPSK три основных модификации были сделаны для эффективной генерации HDL-кода:
Потоковая передача Ввода и вывода: оптимизированный получатель QPSK HDL обрабатывает данные одна выборка за один раз. Полученный реальный сигнал передается потоком во фронтенд получателя. Потоковая передача выход HDL оптимизировал получатель, буферизуется и передается декодеру текстового сообщения.
Фиксированная точка: логика получателя QPSK работает с данными фиксированной точки.
Оптимизированная архитектура HDL: Несколько блоков были перепроектированы, чтобы использовать оборудование эффективные алгоритмы и архитектура.
Структуру верхнего уровня модели получателя QPSK показывают в следующем рисунке. Подсистема HDLRx была оптимизирована для генерации HDL-кода.
Входные данные получены с помощью двух устройств USRP® и Пакета Поддержки Communications Toolbox для Радио USRP®, запускающего модель передатчика и модель получателя соответственно. Собранные данные представляют основную полосу полученный сигнал с уровнем выборки 200 кГц. Данные основаны на выборке и имеют длину 200 001, который соответствует периоду 1 с.
Следующая схема показывает подробную структуру подсистемы HDLRx.
Подсистемы в далее описаны в следующих разделах.
1. Автоматическое управление усилением (AGC) - Настраивает полученную амплитуду сигнала к желаемому уровню
2. Корневой Повышенный Косинус Получает Фильтр - Использование фактор спада 0,5, и десятикратно уменьшает входной сигнал два
3. Крупная компенсация частоты (CFC) - Оценки аппроксимированное смещение частоты полученного сигнала и корректируют его
4. Прекрасная компенсация частоты (FFC) - Компенсирует остаточную частоту и смещение фазы
5. Синхронизация Восстановления - Передискретизирует входной сигнал согласно восстановленному стробу синхронизации так, чтобы решения символа были приняты в оптимальные моменты выборки
6. Декодирование данных - Выравнивает контуры системы координат, разрешает неоднозначность фазы поставщика услуг, вызванную Прекрасной подсистемой Компенсации Частоты, и демодулирует сигнал
Структуру Текстового сообщения, Декодирующего подсистему, показывают ниже.
Эта подсистема, как ожидают, будет запущена в программном обеспечении, поэтому, это обрабатывает основанные на системе координат сигналы ускорить расчет. Подсистема HDLRx выходные параметры три основанных на выборке булевых сигнала: bit1, bit2, и dValid. Учитывая, что нисходящая обработка требует сигнала системы координат, задача преобразования основанных на выборке сигналов к основанным на системе координат дубликатам выполняется блоком dataframer. Демодулируемая битная пара, bit1 и bit2, допустима только, когда dValid установлен высоко. Блок dataframer использует сигнал dValid правильно заполнить линию задержки bit1 и bit2. Подсистема Дескремблирования и Печати обрабатывает полученные данные только, когда разрешать сигнал идет высоко. Это происходит, когда и линия задержки накапливается точно, 200 допустимых демодулируемых битов и сигнал RxGo установлен высоко. Во время симуляции подсистема Дескремблирования и Печати выводит строку "Hello World ###" к командному окну MATLAB®, где '###' является повторяющейся последовательностью '000', '001, '002'..., '099'.
Ссылочная подсистема Оценки Смещения Частоты обеспечивает точную оценку смещения частоты в диагностических целях.
1. AGC
AGC гарантирует устойчивый вход частоте и подсистемам восстановления синхронизации. Это устанавливает амплитуду Крупного входа подсистемы Компенсации Частоты как 1/сверхдискретизировавший Фактор, так, чтобы эквивалентные усиления фазы и детекторов ошибок синхронизации оставались постоянными в зависимости от времени. AGC помещается перед Корневым Повышенным Косинусом Получают Фильтр так, чтобы амплитуда сигнала могла быть измерена с фактором сверхдискретизации четыре, таким образом улучшив точность оценки.
Структуру AGC показывают в следующей схеме, и конвейерные регистры отображают зеленым в модели.
2. Корневой повышенный косинус получает фильтр
Корневой Повышенный Косинус Получает Фильтр, десятикратно уменьшает входной сигнал фактором два, с фактором спада 0,5. Это обеспечивает согласованную фильтрацию для переданной формы волны, чтобы повысить сигнал к шумовому отношению и упростить нисходящую обработку сигналов.
Корневой Повышенный Косинус Получает Фильтр, реализован с помощью полностью параллельной архитектуры.
3. Крупная компенсация частоты
Крупная подсистема Компенсации Частоты корректирует входной сигнал грубой оценкой смещения частоты. Следующая схема показывает Крупную подсистему Компенсации Частоты.
Эта подсистема оценивает частоту и смещения фазы основополосного сигнала QPSK. Во-первых, подсистема возводит входной сигнал в степень четыре. Это реализовано путем расположения каскадом двух блоков продукта. Затем от независимого от модуляции сигнала это оценивает тон при четыре раза смещении частоты. После деления оценки четыре, так - полученное смещение частоты корректируется в исходном сигнале. Обычно существует остаточное смещение частоты даже после CFC, который вызвал бы медленное вращение созвездия. Прекрасная подсистема Компенсации Частоты компенсирует эту остаточную частоту.
При сравнении реализации Крупной подсистемы Компенсации Частоты здесь с теми в Передатчике QPSK и Получателе и Получателе QPSK с Оборудованием USRP®, мы видим несколько модификаций:
Модель реализует основанный на корреляции алгоритм, также известный как алгоритм Луизы [1], для оценки частоты. Этот алгоритм сохраняет аппаратные ресурсы по сравнению с Алгоритмом бпф. Конвейерные регистры используются в информационном канале алгоритма Луизы, чтобы гарантировать скорость схемы. Чтобы узнать больше об алгоритме CFC, обратитесь к документации Communications Toolbox.
Функция, которая составляет ключевой компонент в алгоритме Луизы, вычисляется с помощью блока Complex to Magnitude-Angle HDL Optimized. Этот блок вычисляет фазу с помощью оборудования дружественный алгоритм CORDIC. Чтобы узнать больше о блоке Complex to Magnitude-Angle HDL Optimized, обратитесь к документации DSP System Toolbox™.
Обнаруженное смещение фазы отправляется в NCO, чтобы сгенерировать сигнал комплексной экпоненты, который используется, чтобы откорректировать смещение фазы в исходном сигнале. HDL NCO Оптимизированные блок-диаграммы интерполяционная таблица в ROM, и предоставляет возможность сжатия интерполяционной таблицы значительно уменьшать размер интерполяционной таблицы. Чтобы узнать больше о блоке NCO HDL Optimized, обратитесь к документации DSP System Toolbox.
4. Прекрасная компенсация частоты
Прекрасная подсистема Компенсации Частоты, показанная в следующем рисунке, реализует замкнутый цикл фазы (PLL), описанный в Главе 7 [2], чтобы отследить остаточное смещение частоты и смещение фазы во входном сигнале.
Детектор ошибок фазы (PED) наибольшего правдоподобия, описанный в Главе 7.2.2 [2], генерирует ошибку фазы. Настраиваемый пропорциональный плюс интеграл Контурный фильтр, описанный в Приложении C.2 [2], фильтрует сигнал ошибки и затем подает его в блок Phase Calculation. Блок Phase Calculation генерирует сигнал комплексной экпоненты, который используется, чтобы откорректировать остаточную частоту и смещения фазы в выходе CFC. Контурный фильтр позволяет настраиваться Пропускной способности Цикла (нормированный частотой дискретизации) и Фактор Затухания Цикла. Нормированная пропускная способность цикла значения по умолчанию установлена в 0,13, и коэффициент затухания значения по умолчанию установлен на 2,5 (по затуханию), так, чтобы PLL быстро заблокировал к намеченной фазе при представлении небольшого шума фазы. Чтобы узнать больше об алгоритме FFC, обратитесь к документации Communications Toolbox.
5. Синхронизация восстановления
Подсистему Восстановления Синхронизации показывают в следующей схеме.
Подсистема Восстановления Синхронизации реализует PLL, описанный в Главе 8 [2], чтобы откорректировать ошибку синхронизации в полученном сигнале. В среднем подсистема Восстановления Синхронизации генерирует тот выходная выборка для каждых двух входных выборок.
Подсистема Управления Интерполяцией реализует постепенное уменьшение по модулю 1 счетчик, описанный в Главе 8.4.3 [2], чтобы сгенерировать управляющий сигнал упростить подсистему Декодирования Данных, чтобы правильно выбрать interpolants Фильтра Интерполяции. Этот управляющий сигнал также включает Синхронизацию детектора ошибок (TED), так, чтобы это вычислило ошибки синхронизации в правильные моменты синхронизации. Подсистема Управления Интерполяцией обновляет различие в синхронизации для Фильтра Интерполяции, генерируя interpolants в оптимальные моменты выборки.
Фильтром Интерполяции является Фэрроу параболический фильтр с как описано в Главе 8.4.2 [2]. Фильтр использует 0,5 так, чтобы все коэффициенты фильтра стали 1,-1/2 и 3/2, который значительно упрощает структуру интерполятора.
На основе interpolants синхронизирующие ошибки сгенерированы Детектором ошибок Синхронизации пересечения нулем как описано в Главе 8.4.1 [2], отфильтрованы настраиваемым пропорциональным плюс интеграл Контурным фильтром как описано в Приложении C.2 [2] и поданы в Управление Интерполяцией для обновления различия в синхронизации. Контурный фильтр позволяет настраиваться Пропускной способности Цикла (нормированный частотой дискретизации) и Фактор Затухания Цикла. Нормированная пропускная способность цикла значения по умолчанию установлена в 0,01, и коэффициент затухания значения по умолчанию установлен на единицу так, чтобы PLL быстро заблокировал к правильной синхронизации при представлении небольшого шума фазы.
Когда ошибка синхронизации (задержка) достигает контуров символа, в выходе существует один дополнительный или недостающий interpolant. TED реализует заполнение битами или пропускающий, чтобы обработать дополнительное или отсутствующий interpolants. Можно обратиться к Главе 8.4.4 [2] для деталей заполнения битами / пропуск.
Цикл восстановления синхронизации обычно генерирует тот выходной символ для каждых двух входных выборок. Это также выводит строб синхронизации (dValid сигнал), который запускается на уровне входной частоты дискретизации. При нормальных обстоятельствах значение строба является просто последовательностью чередования единиц и нулей. Однако это происходит только, когда относительная задержка между передатчиком и получателем содержит некоторую дробную часть одного периода символа, и целая часть задержки (в символах) остается постоянной. Если целая часть относительных изменений задержки, значение строба может иметь два последовательных нуля или два последовательных единиц.
6. Декодирование данных
Подсистема Декодирования Данных выполняет синхронизацию системы координат, разрешение неоднозначности фазы поставщика услуг и демодуляцию QPSK. Его структуру показывают в схеме ниже:
Синхронизация системы координат: подсистема Согласованного фильтра использует модулируемый QPSK код Кусачек для снятия оболочки в качестве ссылки, чтобы коррелировать против полученных символов. Модуль согласованного фильтра выход вычисляется в подсистеме Модуля и затем по сравнению с порогом. Структурируйте синхронизацию, объявляется, если модуль выход превышает порог. Порог для синхронизации системы координат является настраиваемым: большие повышения стоимости вероятность мисс, тогда как маленькие повышения стоимости вероятность ложного предупреждения. В этом примере пороговое значение установлено в 16.
Разрешение неоднозначности фазы: фаза PLL поставщика услуг Прекрасной подсистемы Компенсации Частоты может заблокировать немодулируемому поставщику услуг со сдвигом фазы 0, 90, 180, или 270 градусов, которые могут вызвать неоднозначность фазы. Для получения дополнительной информации неоднозначности фазы и ее разрешения, обратитесь к Главе 7.2.2 и 7.7 в [2]. Угол согласованного фильтра выход определяет дополнительный сдвиг фазы. Matched Filter выход подан в сопряженный блок, чтобы инвертировать дополнительный сдвиг фазы. Если синхронизация системы координат достигается, спрягаемая версия согласованного фильтра, выход замораживается и умножается со всеми символами в системе координат, чтобы эффективно решить вопрос неоднозначности фазы.
Демодуляция QPSK: Каждый откорректированный символ демодулируется и сопоставляется с парой битов на основе отображения символа созвездия QPSK.
Следующий рисунок показывает Частоту ошибок по битам (BER) для этого примера. Собранным данным в этом примере возмещали маленькую частоту в пределах от-120 к-90Hz. Дополнительное смещение добавляется с помощью блока Frequency Offset в модели.
График BER показывает, что использование CFC, сопровождаемого FFC, гарантирует низкий BER для широкой области значений смещения частоты, в то время как использование FFC (без CFC) может только откорректировать маленькие смещения (меньший, чем 1200 Гц с установками параметров в этом примере). И Используя CFC и Используя FFC рекомендуется, особенно чтобы избежать плохой производительности BER, когда дрейфы смещения частоты из области значений FFC могут отследить.
CFC может ввести маленькое смещение в системе, которая могла привести к небольшому ухудшению производительности, когда фактическое смещение близко к 0. В этом случае использование только FFC может быть лучшим выбором. Ссылочная подсистема Оценки Смещения Частоты использует основанный на БПФ блок Coarse Frequency Compensation из Communications Toolbox, чтобы обеспечить точную оценку смещения частоты. Эта информация может использоваться, чтобы помочь пользователю, делающему проектные решения.
Когда подсистемы компенсации частоты не могут оценить и откорректировать частоту и смещение фазы, она затрудняет для Восстановления Синхронизации, чтобы откорректировать ошибки синхронизации. BER, равный 1 среднему значению, разрешать сигнал подсистемы Декодирования Данных является всегда низким и, нет никаких декодируемых данных.
При выполнении симуляции модель отображает два графика рассеивания, чтобы показать созвездие FFC выход и Timing Recovery выход соответственно.
Следующая схема показывает график созвездия FFC выход. Кластер рассеивается вокруг, в основном из-за двух причин:
Ошибка синхронизации между часами в передатчике и получателе
Сигналы сверхдискретизированы фактором два. Поэтому половина символов находится в переходном состоянии между символами QPSK.
Следующая схема показывает созвездие Timing Recovery выход. Каждый наблюдает четыре сконцентрированных кластера вокруг истинного созвездия с 4 точками для модуляции QPSK. Это проверяет эффективность подсистемы Восстановления Синхронизации. Однако, как упомянуто прежде, Прекрасная подсистема Компенсации Частоты может заблокировать сигнал со сдвигом фазы 0, 90, 180, или 270 степеней. Проблема неоднозначности фазы устраняется в подсистеме Декодирования Данных.
Конвейерно обработайте регистры (отображенный зеленым), были добавлены в модели, чтобы убедиться, что подсистема HDLRx не имеет долгого критического пути. HDL-код, сгенерированный от подсистемы HDLRx, синтезировался с помощью Xilinx® ISE на Virtex6 (XC6VLX240T-1FFG1156) FPGA, и схема запустилась на уровне приблизительно 97 МГц.
Проверять и сгенерировать HDL-код сослались в этом примере, у вас должна быть лицензия HDL Coder™.
Можно использовать команды makehdl и makehdltb, чтобы сгенерировать HDL-код и испытательный стенд для подсистем в HDLRx. Чтобы сгенерировать HDL-код, используйте следующую команду:
makehdl('commqpskrxhdl/HDLRx')
Чтобы сгенерировать испытательный стенд, используйте следующую команду:
makehdltb('commqpskrxhdl/HDLRx')
1. М. Луиза и Р. Регджаннини, "Восстановление несущей частоты в полностью цифровых модемах для передач пакетного режима", Сделка IEEE. Коммуникации, стр 1169-1178, 1995.
2. Майкл Райс, "цифровая связь - подход дискретного времени", Prentice Hall, апрель 2008.
USRP® является товарным знаком Корпорации National Instruments®.