В этом примере показано, как реализовать 64-QAM передатчик и приемник для генерации HDL-кода и аппаратной реализации.
Передатчик QAM HDL и пример Приемника показывают, как использовать блоки Simulink®, которые поддерживают генерацию HDL-кода, чтобы реализовать основополосную обработку передатчика цифровой связи и приемника.
HDL QAM Tx подсистема генерирует комплекс оцененное, 64-QAM модулируемое созвездие. Модель канала с плавающей точкой, Канал, используется, чтобы добавить затухание, шум канала, смещение несущей частоты и дробную задержку для того, чтобы продемонстрировать операцию подсистемы приемника. HDL QAM Rx подсистема реализует практический цифровой приемник, чтобы смягчить ухудшения канала с помощью крупного восстановления частоты, синхронизируя восстановление, кадровую синхронизацию и восстановление фазы и величину. Пакеты принятых данных затем декодируются и распечатываются к Командному окну MATLAB® Текстовым сообщением, Декодирующим подсистему.
Структуру верхнего уровня модели приемника QAM показывают в следующем рисунке. HDL QAM Tx и подсистемы HDL QAM Rx оптимизированы для генерации HDL-кода.
Подробная структура подсистемы HDL QAM Tx видна в рисунке ниже.
Подсистема HDL QAM Tx содержит следующие компоненты, которые описаны более подробно в разделе HDL QAM Transmitter.
Данные Generation & Packetization - Генерируют пакеты, которые будут переданы, группируя биты для отображения с символами
Отображение символа - Карты биты выход от подсистемы Data Generation & Packetization до символов QAM
Формирование импульса - Выполняет импульсное формирование и повышающую дискретизацию символов с помощью интерполяции RRC (Корневой Повышенный Косинус) фильтр до передачи
Структура Канала видна ниже. Когда подсистема Канала предназначается, чтобы быть грубым приближением канала AWGN с затуханием, и частота возместила его, предназначается, чтобы быть запущенным в программном обеспечении. В результате блоки, которые не поддерживаются для генерации HDL-кода, могут использоваться здесь, такие как блок Phase/Frequency Offset. Блок Phase/Frequency Offset не поддерживает типы данных фиксированной точки, следовательно преобразование, чтобы удвоиться во входе подсистемы Канала. Сигнал преобразован назад в фиксированную точку прежде чем быть выведенным от подсистемы Канала. Дробная задержка и AWGN применяются к переданному сигналу, и блок Gain ослабляет сигнал.
Подробная структура подсистемы HDL QAM Rx видна в рисунке ниже.
Подсистема HDL QAM Rx содержит следующие компоненты, которые описаны более подробно в разделе HDL QAM Receiver.
Автоматическое управление усилением (AGC) - Нормирует принимаемую мощность сигнала
Крупная Коррекция Смещения Частоты - Оценки аппроксимированное смещение частоты и корректируют. Подсистема также содержит получение фильтра RRC, который прореживает 2
Синхронизация Восстановления - Передискретизирует входной сигнал согласно восстановленному стробу синхронизации так, чтобы решения символа были приняты в оптимальные моменты выборки
Magnitude & Phase Recovery - Выполняет пакетное обнаружение, мелкомодульную фазу и амплитудную коррекцию
Демодулируйте - Демодулирует сигнал, символы de-отображения вдребезги
Структуру Текстового сообщения, Декодирующего подсистему, показывают ниже.
Эта подсистема, как ожидают, будет запущена в программном обеспечении, поэтому, желательно использовать основанные на системе координат сигналы ускорить расчет. Текстовое сообщение, Декодирующее подсистему, имеет восемь основанных на выборке булевых входных сигналов: dValid, packetStart и сигналы bit1 к bit6. Преобразование от основанных на выборке сигналов до основанных на системе координат дубликатов реализовано dataframer блоком MATLAB function. Демодулируемые биты допустимы только, когда dValid установлен высоко. Блок dataframer использует сигнал dValid заполнить линию задержки полученными битами и сигналом newPacket передать данные, хранимые в линии задержки к выходу и сбросить линию задержки. Подсистема Дескремблирования и Печати обрабатывает принятые данные только, когда разрешать сигнал идет высоко. Это происходит, когда или линия задержки накапливается, 336 допустимых демодулируемых битов или сигнал newPacket высоко. Это заставит dataframer устанавливать сигнал RxGo высоко. Во время симуляции подсистема Дескремблирования и Печати выводит строку "Hello World! Тест ~64QAM представляет ~ в виде строки ###" к окну команды MATLAB, где '###' является повторяющейся последовательностью '000', '001, '002'..., '099'. Каждые 50 пакетов, частота ошибок по битам данных в последних 50 успешно полученных пакетах также отображена в командном окне MATLAB.
Передатчик HDL содержит Data Generation & Packetization, Отображение Символа и блоки Формирования Импульса, которые описаны подробно в следующих разделах.
1 - Data Generation & Packetization
Контроллер FSM (Конечный автомат) и Источник данных генерирует биты преамбулы и биты данных, выполняет скремблирование и создает пакеты. Каждый пакет состоит из 84-битной преамбулы Баркера кода и 252 бита скремблированных данных. Блок Group Bits преобразует поток битов входных данных в целое число на шесть битов на 1/6-й из входной частоты дискретизации, как требуется картопостроителем символа.
Подсистема Источника данных имеет задержку трубопровода 2 выборок. Кроме того, существует задержка трубопровода между источником данных и подсистемой бита-парного соединения. Допустимый сигнал поэтому задержан, чтобы совпадать с задержкой трубопровода информационного канала. Подсистема Битов Группы уменьшает частоту дискретизации на коэффициент 6. Размещение прореживания 6 в допустимом пути к управлению гарантирует что соответствия частоты дискретизации тот из пути прохождения сигнала.
Контроллер FSM - Контроллер FSM реализует конечный автомат управления с помощью функционального блока MATLAB™. FSM имеет два состояния - Pack_Preamble и Append_Data. Состояние Pack_Preamble утверждает сигнал load_preamble и de-asserts reset_preamble и сигналы load_data. FSM останется в этом состоянии для 84 тактов. После этого FSM перемещается в состояние Append_Data, утверждая сигнал load_data и сигнал reset_preamble при выпуске сигнала load_preamble. FSM останется в этом состоянии для 252 тактов. load_preamble и reset_preamble являются boolean и используются, чтобы управлять Счетчиком Адреса Преамбулы, который справляется с загрузкой преамбулы в начале каждого пакета. Сигнал load_data является boolean и используется, чтобы включить Счетчик Адреса данных, который управляет загрузкой данных в пакет.
Источник данных - Подсистема Источника данных содержит два LUTs, храня преамбулу и биты данных. LUT поиска преамбулы обращен Счетчиком Адреса Преамбулы, которым управляют преамбула сброса и сигналы преамбулы загрузки, сгенерированные Контроллером FSM. LUT поиска данных обращен по условию Счетчик Адреса, который включен сигналом load_data, сгенерированным Контроллером FSM. Счетчик Адреса Преамбулы имеет сигнал сброса, сгенерированный Контроллером FSM, когда та же преамбула вставляется в начале каждого пакета. Счетчик Адреса данных не имеет сигнала сброса, когда последовательность адреса данных намного более длинна и будет варьироваться для каждого пакета, когда различные биты данных помещаются в каждом пакете. В дополнение к включению счетчика для LUT данных ввод данных загрузки используется, чтобы управлять, когда компонент Скремблера Данных о HDL должен быть включен, и управлять выбором преамбулы или битов данных через Мультиплексор Данных о Преамбуле.
Скремблер Данных о HDL - Скремблер Данных о HDL показывают в следующем рисунке. Это создается из первых принципов с помощью логических элементов XOR (для 2 сложений по модулю) и регистры. Активированная подсистема используется здесь к обеспеченному, который только включен скремблер, когда существуют новые входные данные, которые будут обработаны.
Биты группы - цель подсистемы Битов Группы состоит в том, чтобы сгруппировать шесть отдельных битов в шестибитное беззнаковое целое выход - формат, ожидаемый компонентом отображения символа. Много задержек используются, чтобы выровнять 6 битов во входе блока Bit Concat, который конкатенирует в шестибитный выход без знака. Этот выход затем прорежен, чтобы выбрать правильную группировку битов.
2 - Отображение символа
Символ, Сопоставляющий подсистему, использует блок Rectangular QAM Modulator Baseband, чтобы сопоставить целочисленное входное значение на оцененный символ соответствующего 64-QAM комплекса. Блок использует схему Gray Mapping.
3 - Импульсное формирование
Импульс, Формирующий подсистему, использует блок RRC Interpolation Filter с фактором повышающей дискретизации 4. Согласованный фильтр реализован в приемнике. Фильтр является конвейерным (см. HDL Block Properties).
Приемник HDL содержит AGC, Coarse Frequency Offset Correction, Timing Recovery, Magnitude & Phase Recovery, и Демодулируйте блоки, которые описаны подробно в следующих разделах.
1 - AGC
AGC гарантирует, что амплитуда входа Крупной Компенсации Частоты нормирована к области значений 1 к-1.
Структуру AGC показывают в следующей схеме с регистрами трубопровода, отображенными зеленым в модели.
2 - Крупная коррекция смещения частоты
Крупная подсистема Коррекции Смещения Частоты оценивает и корректирует для смещения частоты с помощью алгоритма Луизы-Реггиэннини [1]. Подсистема Оценки Смещения Частоты заставляет оценку на основе выхода Корневого Повышенного Косинуса Получить Фильтр, затем коррекция смещения частоты на основе этой оценки применяется во входе к Корневому Повышенному Косинусу, Получают Фильтр. Это гарантирует, что желаемый фрагмент полученной полосы пропускания сигнала лучше выравнивается с частотной характеристикой фильтра приемника, улучшение ОСШ по сравнению с исправлением при выходе Корневого Повышенного Косинуса Получает Фильтр.
Когда алгоритм оценки и коррекции действует в замкнутом цикле, делая итеративные обновления предыдущих оценок смещения частоты, система будет постепенно сходиться к результату. Усиление Цикла включено, чтобы реализовать усреднение оценок. Эта архитектура описана в [1]. Корневой Повышенный Косинус Получает реализации Фильтра операция субдискретизации, таким образом, необходимо сверхдискретизировать сигнал обратной связи, с помощью повторного блока, совпадать с уровнем во входе к фильтру.
Обратите внимание на то, что существует остаточное смещение частоты при выходе Крупной подсистемы Коррекции Смещения Частоты, которая варьируется в зависимости от времени, даже если смещение частоты во входе к подсистеме остается то же самое, когда новые оценки смещения сделаны. Мелкомодульная коррекция остаточного смещения выполняется позже в приемнике подсистемой Восстановления Величины и Фазы.
Оценка Смещения частоты: подсистема Оценки Смещения Частоты реализует алгоритм Луизы-Реджиэннини, описанный в [1]. Сигнал сначала повышен до степени четыре, чтобы реализовать 4-е средство оценки фазы степени как описано в [2]. Это реализовано 2 каскадными блоками продукта с конвейеризацией добавленного, чтобы улучшать аппаратную производительность. Дискретный КИХ-Фильтр реализует фильтр с прямоугольными весами, составленными из всех единиц, описанных в [1]. КИХ-Шкала масштабирует FIR выход с учетом усиления фильтра. Блок Complex To Magnitude-Angle HDL Optimized используется, чтобы реализовать функцию, как требуется алгоритмом Луизы-Реггиэннини. Этот блок вычисляет фазу с помощью оборудования дружественный алгоритм CORDIC. Для получения дополнительной информации смотрите блок Complex to Magnitude-Angle HDL Optimized в DSP System Toolbox™. Перед подсистемой Оценки Смещения Частоты выход сигнал масштабируется как требуется алгоритмом Луизы-Реджиэннини и, кроме того, масштабируется, чтобы совпадать с размером слова NCO.
3 - Синхронизация восстановления
Подсистему Восстановления Синхронизации показывают в следующей схеме.
Подсистема Восстановления Синхронизации реализует PLL, описанный в Главе 8 [3], чтобы откорректировать ошибку синхронизации в полученном сигнале. В среднем подсистема Восстановления Синхронизации генерирует тот выходная выборка для каждых двух входных выборок.
Блок Функции управления Интерполяции реализует постепенное уменьшение по модулю 1 счетчик, описанный в Главе 8.4.3 [3], чтобы сгенерировать управляющий сигнал упростить выбор interpolants Фильтра Интерполяции. Этот управляющий сигнал также включает Синхронизацию детектора ошибок (TED), так, чтобы это вычислило ошибки синхронизации в правильные моменты синхронизации. Подсистема Управления Интерполяцией обновляет различие в синхронизации, mu, для Фильтра Интерполяции, генерируя interpolants в оптимальные моменты выборки.
Фильтром Интерполяции является Фэрроу параболический фильтр с как описано в Главе 8.4.2 [3]. Фильтр использует 0,5 так, чтобы все коэффициенты фильтра стали 1,-1/2 и 3/2, который значительно упрощает структуру интерполятора. На основе interpolants синхронизирующие ошибки сгенерированы Детектором ошибок Синхронизации пересечения нулем как описано в Главе 8.4.1 [3].
Фильтр Интерполяции вводит дробную задержку с сигналом для того, чтобы компенсировать ошибку синхронизации. Дробной задержкой управляет mu входной сигнал. Когда ошибка синхронизации (задержка) достигает контуров символа, в выходе существует один дополнительный или недостающий interpolant. Детектор ошибок Синхронизации реализует заполнение битами или пропуск, чтобы обработать дополнительное или пропавших без вести interpolants.
Обратитесь к Главе 8.4.4 [3] для деталей заполнения битами и пропуска. Цикл восстановления синхронизации обычно генерирует тот выходной символ для каждых двух входных выборок. Это также выводит строб синхронизации (validOut сигнал), который запускается на уровне входной частоты дискретизации. При нормальных обстоятельствах значение строба является просто последовательностью чередования единиц и нулей. Однако это происходит только, когда относительная задержка между передатчиком и приемником содержит некоторую дробную часть одного символьного периода, и целая часть задержки (в символах) остается постоянной. Если целая часть относительных изменений задержки, значение строба может иметь два последовательных нуля или два последовательных единиц.
4 - Magnitude & Phase Recovery
Подсистема Magnitude & Phase Recovery выполняет пакетную синхронизацию, мелкомодульное восстановление частоты и мелкомодульное амплитудное восстановление.
Пакетная Синхронизация: подсистема Согласованного фильтра Преамбулы использует инвертированное временем сопряженное комплексное число преамбулы как веса фильтра. Модуль выхода подсистемы Согласованного фильтра Преамбулы вычисляется с помощью подсистемы Модуля. Выход подсистемы Модуля затем по сравнению с порогом, чтобы обнаружить преамбулу в начале пакета. Блок MATLAB function генерирует сигнал, isPreamble, который сохранен высоко на время преамбулы каждого пакета. Блок MATLAB function также генерирует сигнал dvalid, который установлен высоко на время пакета, когда преамбула была обнаружена.
Мелкомодульное Восстановление Величины и Фазы: DLMS С 1 касанием (Задержанный Наименьшее количество Средних квадратичных) подсистема фильтра, адаптирующаяся по преамбуле и использующая опорный сигнал, сгенерированный Желаемым Источником Сигнала, корректирует и для фазы и для ошибок величины. Сигнал isPreamble, сгенерированный блоком MATLAB function и набором высоко для 14 символов преамбулы однажды пакет, был обнаружен, используется, чтобы включить желаемый источник сигнала и включить вход Adapt DLMS С 1 касанием. Когда сигнал isPreamble является низким, вес в DLMS С 1 касанием сохранен, и Желаемый Источник Сигнала сбрасывается. Задержанный LMS (DLMS) [4] алгоритм используется здесь, чтобы позволить, чтобы больше конвейеризации было введено и, поэтому, уменьшало критический путь в фильтре и увеличило максимальную тактовую частоту, достижимую, будучи реализованным в оборудовании.
Внутреннюю структуру Желаемой Исходной подсистемы Сигнала показывают ниже. LUT поиска данных содержит символы преамбулы.
Внутреннюю структуру подсистемы DLMS С 1 касанием показывают ниже.
5 - Демодулировать
Демодулировать подсистема сопоставляет каждый 64-QAM вводимый символ вдребезги, выводя 6 битов для каждого вводимого символа. Чтобы сгенерировать HDL для блока Rectangular QAM Demodulator Baseband, минимальное расстояние между символами должно быть установлено в 2. Это в 8 раз больше, чем расстояние между символами, сгенерированными в передатчике. В результате вход символов к Демодулировать подсистеме должен быть увеличен соответственно. Это сделано с помощью блока Shift Arithmetic, который переключает двоичную точку, оставленную на 3 бита достигнуть необходимого умножения 8.
Во время симуляции модель отображает успешно полученные пакеты в командном окне MATLAB. В каждых 50 пакетах частота ошибок по битам данных в последних 50 успешно полученных пакетах также отображена в командном окне MATLAB.
После выполнения симуляции модель отображает шесть различных фигур, иллюстрирующих различные аспекты эффективности приемника. Их показывают ниже, наряду с объяснением каждого графика. Первые пять графиков показывают адаптацию, по длительности симуляции, Автоматического Управления Усилением, Оценки Смещения Частоты, оценки положения Восстановления Синхронизации, действительной части созвездия при выходе подсистемы Восстановления Синхронизации, и при выходе подсистемы Magnitude & Phase Recover. Последний график показывает схему созвездия при выходе подсистемы Magnitude & Phase Recovery после того, как любая адаптация произошла.
График усиления AGC
Следующий график иллюстрирует Автоматическую подсистему Управления Усилением, адаптирующуюся в зависимости от времени, чтобы нормировать выход. Равновесие должно быть установлено между тем, как быстро AGC адаптируется и сколько пульсации, там после того, как усиление достигло относительно постоянного уровня. Используя больший AGC усиление цикла адаптируется быстрее, но амплитуда после адаптации варьируется больше. Используя меньший цикл усиление замедляет адаптацию AGC, сглаживая уровень после адаптации, но занимая больше времени, чтобы адаптироваться.
Оценочный график смещения частоты
Следующий график иллюстрирует, как крупное смещение частоты постепенно адаптируется к смещению частоты, введенному системой (синяя горизонтальная линия). Это показывает, что, в то время как оценка близко подходит к фактическому смещению частоты, существует все еще остаточная ошибка, которая должна быть исправлена позже в системе.
Синхронизация графика положения восстановления
Следующий график показывает вход mu Фильтру Интерполяции. Обратите внимание на то, что mu сходится к устойчивому состоянию (с некоторой пульсацией) в зависимости от времени, когда задержка канала не варьируется во время симуляции.
Действительная часть синхронизации восстановления Выходной график
Следующий график иллюстрирует, как действительная часть подсистемы Восстановления Синхронизации выход начинает сходиться к восьми отличным амплитудным уровням, ожидаемым для 64QAM. Однако как остаточное смещение частоты, остающееся после того, как, крупное восстановление частоты еще не было откорректировано в этой точке в приемнике, качество сигнала меняется в зависимости от отличных амплитудных уровней, более явно видимых в некоторых точках, чем в других. Созвездие все еще имеет некоторое вращение в этой точке в приемнике.
Действительная часть оценочного графика символа
Следующий график показывает, как действительная часть выхода подсистемы Magnitude & Phase Recovery адаптируется в зависимости от времени. В отличие от предыдущего графика, сгенерирована эта схема после прекрасного восстановления частоты поэтому не должно вращаться созвездие. Нет никаких выборок первоначально, когда выход от блока не допустим, и затем восемь ясных амплитудных уровней должны быть замечены - представление восьми действительных амплитудных уровней 64-QAM созвездия.
Восстановленный график созвездия
Следующий график показывает созвездие при выходе подсистемы Magnitude & Phase Recovery после того, как система имела время, чтобы адаптироваться к каналу. Сокращение шума канала должно уменьшать размер каждой из точек созвездия; увеличение шума канала начинает объединять отличные точки созвездия вместе. Если система успешно не откорректировала для смещения частоты, то вращение созвездия отображается здесь.
1. М. Луиза и Р. Регджаннини, "Восстановление несущей частоты в полностью цифровых модемах для передач пакетного режима", Сделка IEEE. Коммуникации, стр 1169-1178, 1995.
2. Moeneclaey, M. и Де Жонгх, G. "Ориентированный на ML на синхронизацию несущей NDA для общих вращательно симметричных сигнальных созвездий", Сделка IEEE. Коммуникации, pp.2531-2533, 1994.
3. Майкл Райс, "цифровая связь - подход дискретного времени", Prentice Hall, апрель 2008.
4. Г. Лонг, Ф. Линг и Дж. Г. Проукис "LMS-алгоритм с задержанной содействующей адаптацией", Сделка IEEE на Акустике, Речи и Обработке сигналов, pp.1397-1405, 1989.