В этом примере показано, как оптимизировать приемник QPSK, смоделированный в примере Передатчика и Приемника QPSK для генерации HDL-кода и аппаратной реализации. Оптимизированная HDL модель показывает приемник QPSK, который решает реальные коммуникационные проблемы как несущая частота, смещение фазы и восстановление синхронизации благоприятным для оборудования способом.
Оптимизированный Приемник QPSK HDL с Полученным примером Данных предоставляет благоприятное для оборудования решение, которое выполняет основополосную обработку, чтобы обработать изменяющееся во времени смещение частоты и изменяющуюся во времени задержку символа. А именно, этот пример обеспечивает оптимизированный HDL исходный проект практического цифрового приемника, чтобы смягчить вышеупомянутые нарушения и включает крупную компенсацию частоты, основанную на PLL прекрасную компенсацию частоты, синхронизируя восстановление с передискретизацией с фиксированной процентной ставкой, заполнением битами / пропуск, синхронизация системы координат и разрешение неоднозначности фазы.
По сравнению с реализацией приемника в примере Передатчика и Приемника QPSK три основных модификации были сделаны для эффективной генерации HDL-кода:
Потоковая передача Ввода и вывода: оптимизированный приемник QPSK HDL обрабатывает данные одна выборка за один раз. Полученный реальный сигнал передается потоком во фронтенд приемника. Потоковая передача выход HDL оптимизировал приемник, буферизуется и передается декодеру текстового сообщения.
Фиксированная точка: логика приемника QPSK действует в режиме фиксированной точки.
Оптимизированная архитектура HDL: Несколько блоков были перепроектированы, чтобы использовать оборудование эффективные алгоритмы и архитектуры.
Структуру верхнего уровня модели приемника QPSK показывают в следующем рисунке. Подсистема HDLRx была оптимизирована для генерации HDL-кода.
Входные данные получены с помощью двух устройств USRP® и Пакета Поддержки Communications Toolbox для Радио USRP®. А именно, одно устройство USRP® запускает Передатчик QPSK с Аппаратной моделью USRP® в качестве примера и действует как передатчик, в то время как другое устройство является приемником, запускающим сопутствующую модель QPSK Receiver с Аппаратным примером USRP®. Собранные данные представляют основную полосу полученный сигнал частотой дискретизации 200 кГц. Данные основаны на выборке и имеют длину 200 001, который соответствует периоду 1 с.
Следующая схема показывает подробную структуру подсистемы HDLRx.
Подсистемы в далее описаны в следующих разделах.
1. Автоматическое управление усилением (AGC) - Настраивает полученную амплитуду сигнала к желаемому уровню
2. Корневой Повышенный Косинус Получает Фильтр - Использование фактор спада 0,5, и прореживает входной сигнал два
3. Крупная Компенсация Частоты - Оценки аппроксимированное смещение частоты полученного сигнала и корректируют его
4. Прекрасная Компенсация Частоты - Компенсирует остаточное смещение частоты и смещение фазы
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 помещается перед Корневым Повышенным Косинусом Получают Фильтр так, чтобы амплитуда сигнала могла быть измерена с фактором сверхдискретизации четыре, таким образом улучшив точность оценки. Обратитесь к Главе 7.2.2 и Главе 8.4.1 [1] для получения дополнительной информации о том, как спроектировать усиление детектора фазы.
Структуру AGC показывают в следующей схеме, и конвейерные регистры отображают зеленым в модели.
2. Корневой повышенный косинус получает фильтр
Корневой Повышенный Косинус Получает Фильтр, прореживает входной сигнал на коэффициент два, с фактором спада 0,5. Это обеспечивает согласованную фильтрацию для переданной формы волны, чтобы повысить отношение сигнал-шум и упростить нисходящую обработку сигналов.
Корневой Повышенный Косинус Получает Фильтр, реализован с помощью полностью параллельной архитектуры.
3. Крупная компенсация частоты
Крупная подсистема Компенсации Частоты корректирует входной сигнал грубой оценкой смещения частоты. Следующая схема показывает Крупную подсистему Компенсации Частоты.
Эта подсистема использует основополосный сигнал QPSK с обозначенным индексом фазы, смещением частоты и смещением фазы, описанным как. Во-первых, подсистема возводит входной сигнал в степень четыре, чтобы получить, который не является функцией модуляции QPSK. Это реализовано путем расположения каскадом двух блоков продукта. Затем от независимого от модуляции сигнала это оценивает тон при четыре раза смещении частоты. После деления оценки четыре, так - полученное смещение частоты корректируется в исходном сигнале. Обычно существует остаточное смещение частоты даже после крупной компенсации частоты, которая вызвала бы медленное вращение созвездия. Прекрасная подсистема Компенсации Частоты компенсирует эту остаточную частоту.
При сравнении реализации Крупной подсистемы Компенсации Частоты здесь с теми в примерах Передатчика и Приемника QPSK и Приемнике QPSK с Аппаратным примером USRP®, мы видим несколько модификаций:
Чтобы сохранить ресурсы, Алгоритм бпф был заменен алгоритмом оценки частоты, предложенным в [2], который упоминается как алгоритм Луизы. Конвейерные регистры использовались в информационном канале алгоритма Луизы, чтобы повредить critial путь в проекте. См. схему ниже.
Функция, которая составляет ключевой компонент в алгоритме Луизы, вычисляется с помощью блока 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 [1], чтобы отследить остаточное смещение частоты и смещение фазы во входном сигнале.
Детектор ошибок фазы (PED) наибольшего правдоподобия, описанный в Главе 7.2.2 [1], генерирует ошибку фазы. Настраиваемый пропорциональный плюс интеграл Контурный фильтр, описанный в Приложении C.2 [1], фильтрует сигнал ошибки и затем подает его в блок NCO. Блок NCO генерирует сигнал комплексной экпоненты, который используется, чтобы откорректировать остаточную частоту и смещения фазы в выходе Крупной подсистемы Компенсации Частоты. Пропускная способность цикла (нормированный на частоту дискретизации) и Коэффициент затухания Цикла является настраиваемой для Контурного фильтра. Нормированная пропускная способность цикла значения по умолчанию установлена в 0,06, и коэффициент затухания по умолчанию установлен в 2,5 (по затуханию), так, чтобы PLL быстро заблокировал к намеченной фазе при представлении небольшого шума фазы.
5. Синхронизация восстановления
Подсистему Восстановления Синхронизации показывают в следующей схеме.
Подсистема Восстановления Синхронизации реализует PLL, описанный в Главе 8 [1], чтобы откорректировать ошибку синхронизации в полученном сигнале. В среднем подсистема Восстановления Синхронизации генерирует тот выходная выборка для каждых двух входных выборок.
Подсистема Управления Интерполяцией реализует постепенное уменьшение по модулю 1 счетчик, описанный в Главе 8.4.3 [1], чтобы сгенерировать управляющий сигнал упростить подсистему Декодирования Данных, чтобы правильно выбрать interpolants Фильтра Интерполяции. Этот управляющий сигнал также включает Синхронизацию детектора ошибок (TED), так, чтобы это вычислило ошибки синхронизации в правильные моменты синхронизации. Подсистема Управления Интерполяцией обновляет различие в синхронизации для Фильтра Интерполяции, генерируя interpolants в оптимальные моменты выборки.
Фильтром Интерполяции является Фэрроу параболический фильтр с как описано в Главе 8.4.2 [1]. Фильтр использует 0,5 так, чтобы все коэффициенты фильтра стали 1,-1/2 и 3/2, который значительно упрощает структуру интерполятора.
На основе interpolants синхронизирующие ошибки сгенерированы Детектором ошибок Синхронизации пересечения нулем как описано в Главе 8.4.1 [1], отфильтрованы настраиваемым пропорциональным плюс интеграл Контурным фильтром как описано в Приложении C.2 [1] и поданы в Управление Интерполяцией для обновления различия в синхронизации. Пропускная способность цикла (нормированный на частоту дискретизации) и Коэффициент затухания Цикла является настраиваемой для Контурного фильтра. Нормированная пропускная способность цикла значения по умолчанию установлена в 0,01, и коэффициент затухания по умолчанию установлен в единицу (критическое затухание) так, чтобы PLL быстро заблокировал к правильной синхронизации при представлении небольшого шума фазы.
Когда ошибка синхронизации (задержка) достигает контуров символа, в выходе существует один дополнительный или недостающий interpolant. TED реализует заполнение битами или пропускающий, чтобы обработать дополнительное или отсутствующий interpolants. Можно обратиться к Главе 8.4.4 [1] для деталей заполнения битами / пропуск.
Цикл восстановления синхронизации обычно генерирует тот выходной символ для каждых двух входных выборок. Это также выводит строб синхронизации (dValid сигнал), который запускается на уровне входной частоты дискретизации. При нормальных обстоятельствах значение строба является просто последовательностью чередования единиц и нулей. Однако это происходит только, когда относительная задержка между передатчиком и приемником содержит некоторую дробную часть одного периода символа, и целая часть задержки (в символах) остается постоянной. Если целая часть относительных изменений задержки, значение строба может иметь два последовательных нуля или два последовательных единиц.
6. Декодирование данных
Подсистема Декодирования Данных выполняет синхронизацию системы координат, разрешение неоднозначности фазы и демодуляцию QPSK. Его структуру показывают в схеме ниже:
Синхронизация системы координат: подсистема Согласованного фильтра использует модулируемый QPSK код Кусачек для снятия оболочки в качестве ссылки, чтобы коррелировать против полученных символов. Модуль согласованного фильтра выход вычисляется в подсистеме Модуля и затем по сравнению с порогом. Структурируйте синхронизацию, объявляется, если модуль выход превышает порог. Порог для синхронизации системы координат является настраиваемым: большие повышения стоимости вероятность мисс, тогда как маленькие повышения стоимости вероятность ложного предупреждения. В этом примере пороговое значение установлено в 16.
Разрешение неоднозначности фазы: фаза PLL поставщика услуг Прекрасной подсистемы Компенсации Частоты может заблокировать немодулируемому поставщику услуг со сдвигом фазы 0, 90, 180, или 270 градусов, которые могут вызвать неоднозначность фазы. Для получения дополнительной информации неоднозначности фазы и ее разрешения, обратитесь к Главе 7.2.2 и 7.7 в [1]. Угол согласованного фильтра выход определяет дополнительный сдвиг фазы. Matched Filter выход подан в сопряженный блок, чтобы инвертировать дополнительный сдвиг фазы. Если синхронизация системы координат достигается, спрягаемая версия согласованного фильтра, выход замораживается и умножается со всеми символами в системе координат, чтобы эффективно решить вопрос неоднозначности фазы.
Демодуляция QPSK: Каждый откорректированный символ демодулируется и сопоставляется с парой битов на основе отображения символа созвездия QPSK.
При выполнении симуляции модель отображает три графика рассеивания, чтобы показать созвездие Fine Frequency Compensation выход, Timing Recovery выход и замороженный спрягаемый согласованный фильтр выход, соответственно.
Следующая схема показывает график созвездия Fine Frequency Compensation выход. Кластер рассеивается вокруг, в основном из-за двух причин:
Ошибка синхронизации между часами в передатчике и приемнике
Сигналы сверхдискретизированы на коэффициент два. Поэтому половина символов находится в переходном состоянии между символами QPSK.
Следующая схема показывает созвездие Timing Recovery выход. Каждый наблюдает четыре сконцентрированных кластера вокруг истинного созвездия с 4 точками для модуляции QPSK. Это проверяет эффективность подсистемы Восстановления Синхронизации. Однако, как упомянуто прежде, Прекрасная подсистема Компенсации Частоты может заблокировать сигнал со сдвигом фазы 0, 90, 180, или 270 степеней. Поэтому мы должны решить проблему неоднозначности фазы прежде, чем демодулировать сигнал.
Следующий рисунок показывает график созвездия замороженного спрягаемого согласованного фильтра выход. Во время целого хода симуляции, группы сигналов на положительной стороне горизонтальной оси. Эта группировка указывает, что нет никаких проблем неоднозначности фазы в этом примере. Если бы компенсация требовалась для нежелательного сдвига фазы для того, чтобы решить вопрос неоднозначности фазы, графики созвездия после Синхронизации Восстановления вращались бы.
Конвейерно обработайте регистры (отображенный зеленым), были добавлены в модели, чтобы убедиться, что подсистема HDLRx не имеет долгого критического пути. HDL-код, сгенерированный от подсистемы HDLRx, синтезировался с помощью Xilinx® ISE на FPGA Virtex6 (xc6vlx75t), и схема запустилась на уровне приблизительно 145 МГц.
Можно использовать команды makehdl и makehdltb, чтобы сгенерировать HDL-код и испытательный стенд для подсистем в HDLRx. Чтобы сгенерировать HDL-код, используйте следующую команду:
makehdl(subsysname)
Чтобы сгенерировать испытательный стенд, используйте следующую команду:
makehdltb(subsysname)
1. Майкл Райс, "цифровая связь - подход дискретного времени", Prentice Hall, апрель 2008.
2. М. Луиза и Р. Регджаннини, "Восстановление несущей частоты в полностью цифровых модемах для передач пакетного режима", Сделка IEEE. Коммуникации, стр 1169-1178, 1995.
USRP® является товарным знаком National Instruments Corp.