exponenta event banner

Передатчик и приемник HDL QAM

В этом примере показано, как реализовать передатчик и приемник 64-QAM для генерации кода HDL и реализации аппаратных средств.

Обзор

Пример передатчика и приемника QAM HDL показывает, как использовать блоки Simulink ®, которые поддерживают генерацию кода HDL, для реализации обработки основной полосы частот цифрового передатчика и приемника связи.

Подсистема HDL QAM Tx производит комплекс оцененное, 64-QAM смодулированное созвездие. Модель канала с плавающей запятой, Channel, используется для добавления ослабления, шума канала, смещения несущей частоты и дробной задержки, чтобы продемонстрировать работу подсистемы приемника. Подсистема QAM Rx HDL реализует практический цифровой приемник для уменьшения нарушений канала, используя восстановление грубой частоты, восстановление синхронизации, синхронизацию кадров и восстановление амплитуды и фазы. Принятые пакеты данных затем декодируются и печатаются в окне команд MATLAB ® подсистемой декодирования текстовых сообщений.

Структура примера

Структура верхнего уровня модели приемника КАМ показана на следующем рисунке. Подсистемы QAM Tx HDL и QAM Rx HDL оптимизированы для генерации кода HDL.

Подробная структура подсистемы QAM Tx HDL показана на рисунке ниже.

Подсистема QAM Tx HDL содержит следующие компоненты, которые более подробно описаны в разделе Передатчик QAM HDL.

  • Генерация и пакетирование данных - генерирует передаваемые пакеты, группируя биты для отображения в символы

  • Отображение символов - отображение битов, выводимых подсистемой генерации и пакетирования данных, в символы QAM

  • Формирование импульсов - выполняет формирование импульсов и повышающую дискретизацию символов с использованием интерполяционного фильтра RRC (Root Raised Cosine) перед передачей

Структура Канала показана ниже. Поскольку канальная подсистема предназначена для грубой аппроксимации канала AWGN с затуханием и сдвигом частоты, она предназначена для работы в программном обеспечении. В результате здесь могут использоваться блоки, которые не поддерживаются для генерации кода ЛПВП, такие как блок фазового/частотного смещения. Блок фазового/частотного смещения не поддерживает фиксированные типы данных, следовательно, преобразование в двойное на входе подсистемы канала. Сигнал преобразуется обратно в фиксированную точку перед выводом из подсистемы канала. Дробная задержка и AWGN применяются к переданному сигналу, и блок усиления ослабляет сигнал.

Подробная структура подсистемы QAM Rx HDL показана на рисунке ниже.

Подсистема QAM Rx HDL содержит следующие компоненты, которые более подробно описаны в разделе Приемник QAM HDL.

  • Автоматическая регулировка усиления (AGC) - нормализация мощности принимаемого сигнала

  • Коррекция грубого смещения частоты - оценивает приблизительное смещение частоты и корректирует. Подсистема также содержит фильтр RRC приема, который понижает выборку на 2

  • Восстановление синхронизации - производит повторную выборку входного сигнала в соответствии с восстановленным стробом синхронизации так, чтобы решения по символам принимались в оптимальные моменты выборки

  • Восстановление амплитуды и фазы - выполнение обнаружения пакетов, точной коррекции фазы и амплитуды

  • Демодуляция - демодулирует сигнал, отменяя отображение символов на биты

Ниже показана структура подсистемы декодирования текстовых сообщений.

Предполагается, что эта подсистема будет работать в программном обеспечении, поэтому для ускорения вычислений предпочтительно использовать сигналы, основанные на кадрах. Подсистема декодирования текстовых сообщений имеет восемь основанных на выборках логических входных сигналов: dValid, packetStart и сигналы bit1-bit6. Преобразование из сигналов, основанных на выборке, в аналоги, основанные на кадрах, осуществляется функциональным блоком MATLAB. Демодулированные биты действительны только тогда, когда dValid установлен высоким. Блок кадров данных использует сигнал dValid для заполнения линии задержки принятыми битами и сигнал newPacket для передачи данных, сохраненных в линии задержки, на выход и сброса линии задержки. Подсистема дескремблирования и печати обрабатывает принятые данные только в том случае, если сигнал разрешения становится высоким. Это происходит, когда либо линия задержки накапливает 336 действительных демодулированных битов, либо сигнал newPacket является высоким. Это приведет к тому, что устройство передачи данных установит высокий уровень сигнала RxGo. Во время выполнения моделирования подсистема дескремблирования и печати выводит строку «Hello world! ~ 64QAM test string ~ # # #» в окно команд MATLAB, где '# # #' является повторяющейся последовательностью '000', '001', '002',..., '099'. Каждые 50 пакетов частота битовых ошибок данных в последних 50 успешно принятых пакетах также отображается в окне команд MATLAB.

Датчик QAM HDL (HDL QAM Tx)

Преобразователь HDL содержит блоки генерации и пакетирования данных, отображения символов и формирования импульсов, которые подробно описаны в следующих разделах.

1 - Формирование и пакетирование данных

Контроллер FSM (конечный автомат) и источник данных генерирует биты преамбулы и биты данных, выполняет скремблирование и компонует пакеты. Каждый пакет состоит из 84-битной преамбулы кода Баркера и 252 битов скремблированных данных. Блок групповых битов преобразует входной битовый поток данных в шестибитовое целое число на уровне 1/6 входной частоты дискретизации, как требуется преобразователем символов.

Подсистема источника данных имеет задержку трубопровода 2 выборки. Кроме того, существует задержка конвейера между источником данных и подсистемой спаривания битов. Поэтому достоверный сигнал задерживается, чтобы соответствовать задержке конвейера тракта данных. Подсистема групповых битов уменьшает частоту дискретизации в 6 раз. Размещение понижающей выборки на 6 в действительном управляющем тракте гарантирует, что частота дискретизации совпадает с частотой дискретизации сигнального тракта.

  • Контроллер FSM - Контроллер FSM реализует конечный автомат управления, используя функциональный блок MATLAB™. ФШМ имеет два состояния - Pack_Preamble и Append_Data. Состояние Pack_Preamble устанавливает сигнал load_preamble и отменяет сигнал reset_preamble и сигнал load_data. FSM останется в этом состоянии в течение 84 тактовых циклов. После этого FSM переходит в состояние Append_Data, утверждая сигнал load_data и сигнал reset_preamble, одновременно освобождая сигнал load_preamble. FSM останется в этом состоянии в течение 252 тактовых циклов. load_preamble и reset_preamble являются логическими и используются для управления счетчиком адресов преамбулы, который управляет загрузкой преамбулы в начале каждого пакета. Сигнал load_data является логическим и используется для включения счетчика адресов данных, который управляет загрузкой данных в пакет.

  • Источник данных - подсистема источника данных содержит два LUT, хранящих преамбулу и биты данных. LUT поиска преамбулы обращается к счетчику адресов преамбулы, который управляется преамбулой сброса и сигналами преамбулы загрузки, генерируемыми контроллером FSM. LUT поиска данных адресуется счетчиком адресов данных, который активируется сигналом load_data, генерируемым контроллером FSM. Счетчик адресов преамбулы имеет сигнал сброса, генерируемый контроллером FSM, когда та же преамбула вставляется в начале каждого пакета. Счетчик адресов данных не имеет сигнала сброса, поскольку последовательность адресов данных значительно длиннее и будет изменяться для каждого пакета, поскольку в каждый пакет помещаются различные биты данных. В дополнение к включению счетчика для LUT данных, вход данных нагрузки используется для управления, когда компонент скремблера данных HDL должен быть включен, и для управления выбором преамбулы или битов данных через мультиплексор данных преамбулы.

  • Скремблер данных HDL - Скремблер данных HDL показан на следующем рисунке. Он построен из первых принципов с использованием вентилей XOR (для сложения по модулю 2) и регистров. Подсистема с включенной функцией используется для обеспечения того, что скремблер включается только при наличии новых входных данных, подлежащих обработке.

  • Групповые биты - подсистема групповых битов предназначена для группирования шести отдельных битов в шестибитный беззнаковый целочисленный выходной сигнал - формат, ожидаемый компонентом отображения символов. Ряд задержек используется для выравнивания 6 битов на входе блока Bit Concat, который объединяется в шестибитный неподписанный выход. Этот выходной сигнал затем понижается для выбора правильной группировки битов.

2 - Отображение символов

Подсистема отображения символов использует блок базовой полосы модулятора прямоугольного QAM для отображения целого входного значения на соответствующий символ 64-QAM комплексного значения. Блок использует схему отображения серого.

3 - Формирование импульсов

Подсистема формирования импульсов использует блок интерполяционного фильтра RRC с коэффициентом повышения дискретизации 4. В приемнике реализован согласованный фильтр. Фильтр является конвейерным (см. Свойства блока HDL).

Приемник QAM HDL (HDL QAM Rx)

Приемник ЛПВП содержит блоки АРУ, грубой коррекции смещения частоты, восстановления синхронизации, величины и восстановления фазы и демодуляции, которые подробно описаны в следующих разделах.

1 - АРУ

АРУ обеспечивает нормализацию амплитуды входного сигнала грубой компенсации частоты в диапазоне от 1 до -1.

Структура АРУ показана на следующей диаграмме, а регистры трубопроводов показаны зеленым цветом по всей модели.

2 - Коррекция смещения грубой частоты

Подсистема грубой коррекции смещения частоты оценивает и корректирует смещение частоты с помощью алгоритма Луизе-Реджаннини [1]. Подсистема оценки смещения частоты производит оценку на основе выходного сигнала корневого фильтра приема с увеличенным косинусом, затем коррекция смещения частоты на основе этой оценки применяется на входе корневого фильтра приема с увеличенным косинусом. Это гарантирует, что требуемая часть полосы пропускания принятого сигнала лучше выравнивается с частотной характеристикой фильтра приемника, улучшая SNR по сравнению с коррекцией на выходе корневого фильтра приема с увеличенным косинусом.

Поскольку алгоритм оценки и коррекции работает в замкнутом цикле, делая итеративные обновления предыдущих оценок сдвига частоты, система будет постепенно сходиться к результату. Для реализации усреднения оценок включается коэффициент усиления цикла. Эта архитектура описана в [1]. Корневой приподнятый фильтр приема косинусов реализует операцию понижающей дискретизации, так что необходимо увеличить выборку сигнала обратной связи, используя блок повтора, чтобы согласовать скорость на входе в фильтр.

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

  • Оценка смещения частоты: подсистема оценки смещения частоты реализует алгоритм Луизе-Регианнини, описанный в [1]. Сигнал сначала подается на мощность 4 для реализации 4-го блока оценки фазы мощности, как описано в [2]. Это реализуется посредством 2 каскадных блоков продуктов с добавлением конвейеров для повышения производительности оборудования. Дискретный фильтр FIR реализует фильтр с прямоугольными весами, составленными из всех, описанных в [1]. Шкала КИХ масштабирует выходной сигнал КИХ для учета коэффициента усиления фильтра. Для реализации$angle$ функции, как требуется алгоритмом Луизе-Реджаннини, используется блок оптимизации HDL с комплексным до величины углом. Этот блок вычисляет фазу, используя аппаратно понятный алгоритм CORDIC. Дополнительные сведения см. в разделе Оптимизированный блок HDL от комплекса до величины в системной Toolbox™ DSP. Перед выходом подсистемы оценки смещения частоты сигнал масштабируется, как требуется алгоритмом Луизе-Регианнини, и, кроме того, масштабируется, чтобы соответствовать длине слова NCO.

3 - Восстановление синхронизации

Подсистема восстановления синхронизации показана на следующей схеме.

Подсистема восстановления синхронизации реализует PLL, описанную в главе 8 [3], для исправления ошибки синхронизации в принятом сигнале. В среднем подсистема восстановления синхронизации генерирует одну выходную выборку для каждых двух входных выборок.

Функциональный блок управления интерполяцией реализует счетчик уменьшения по модулю 1, описанный в главе 8.4.3 из [3], для генерации управляющего сигнала для облегчения выбора интерполяторов интерполяционного фильтра. Этот управляющий сигнал также включает детектор ошибок синхронизации (TED), так что он вычисляет ошибки синхронизации в правильные моменты синхронизации. Подсистема управления интерполяцией обновляет разность синхронизации mu для фильтра интерполяции, генерируя интерполяции в оптимальные моменты дискретизации.

Интерполяционный фильтр является параболическим фильтром Фэрроу$\alpha=0.5$, как описано в главе 8.4.2 из [3]. Фильтр использует значение$\alpha$ 0.5, так что все коэффициенты фильтра становятся 1, -1/2 и 3/2, что значительно упрощает структуру интерполятора. На основе интерполяторов ошибки синхронизации генерируются детектором ошибок синхронизации с пересечением нуля, как описано в главе 8.4.1 из [3].

Фильтр интерполяции вводит в сигнал дробную задержку для компенсации ошибки синхронизации. Дробная задержка управляется входным сигналом mu. Когда ошибка синхронизации (задержка) достигает границ символа, на выходе имеется один дополнительный или отсутствующий интерполятор. Детектор ошибок синхронизации реализует ввод или пропуск битов для обработки дополнительных или отсутствующих интерполяторов.

Подробные сведения о набивке и пропуске битов приведены в главе 8.4.4 [3]. Контур восстановления синхронизации обычно генерирует один выходной символ для каждых двух входных выборок. Он также выводит строб синхронизации (сигнал validationOut), который работает с частотой входных выборок. При обычных обстоятельствах значение строба является просто последовательностью чередующихся единиц и нулей. Однако это происходит только тогда, когда относительная задержка между передатчиком и приемником содержит некоторую дробную часть одного периода символа, и целая часть задержки (в символах) остается постоянной. Если целая часть относительной задержки изменяется, значение строба может иметь два последовательных нуля или два последовательных нуля.

4 - Восстановление величины и фазы

Подсистема восстановления амплитуды и фазы выполняет синхронизацию пакетов, восстановление частоты с высокой степенью детализации и восстановление амплитуды с высокой степенью детализации.

  • Синхронизация пакетов: Подсистема согласованного фильтра преамбулы использует в качестве весов фильтра комплексное сопряжение преамбулы с обращенным во времени. Модуль выходного сигнала подсистемы согласованного фильтра преамбулы вычисляется с использованием подсистемы модуля. Затем выходной сигнал подсистемы модуля сравнивается с пороговым значением для обнаружения преамбулы в начале пакета. Функциональный блок MATLAB генерирует сигнал isPreformble, который сохраняется высоким в течение длительности преамбулы каждого пакета. Функциональный блок MATLAB также генерирует сигнал dvalid, который устанавливается высоким для длительности пакета, когда обнаружена преамбула.

  • Мелкозернистая амплитуда и восстановление фазы: подсистема фильтра 1-Tap DLMS (задержанные наименьшие средние квадраты), адаптируясь по преамбуле и используя опорный сигнал, генерируемый требуемым источником сигнала, корректирует ошибки как фазы, так и величины. Сигнал isPreformble, генерируемый функциональным блоком MATLAB и устанавливаемый высоким для 14 символов преамбулы после обнаружения пакета, используется для того, чтобы разрешить требуемый источник сигнала и разрешить вход Adapt 1-Tap DLMS. Когда сигнал isPreformble низкий, вес в 1-Tap DLMS удерживается и требуемый источник сигнала сбрасывается. Алгоритм отложенной LMS (DLMS) [4] используется здесь для обеспечения возможности введения большего количества конвейеров и, следовательно, уменьшения критического пути в фильтре и увеличения максимальной тактовой частоты, достижимой после реализации в аппаратных средствах.

Внутренняя структура подсистемы требуемого источника сигнала показана ниже. LUT поиска данных содержит символы преамбулы.

Внутренняя структура подсистемы 1-Tap DLMS показана ниже.

5 - Демодуляция

Подсистема демодуляции отображает каждый 64-QAM входной символ в биты, выводя 6 битов для каждого входного символа. Для формирования HDL для блока основной полосы частот демодулятора прямоугольного QAM минимальное расстояние между символами должно быть установлено равным 2. Это в 8 раз больше, чем расстояние между символами, генерируемыми в передатчике. В результате символы, вводимые в подсистему демодуляции, должны быть соответствующим образом масштабированы. Это делается с использованием арифметического блока сдвига, который сдвигает двоичную точку, оставшуюся на 3 бита, для достижения требуемого умножения на 8.

Результаты и отображение

Во время моделирования модель отображает успешно принятые пакеты в окне команд MATLAB. При каждых 50 пакетах частота битовых ошибок данных в последних 50 успешно принятых пакетах также отображается в окне команд MATLAB.

После выполнения моделирования модель отображает шесть различных рисунков, иллюстрирующих различные аспекты производительности приемника. Они показаны ниже вместе с объяснением каждого сюжета. Первые пять графиков показывают адаптацию, в течение длительности моделирования, автоматического управления усилением, оценки смещения частоты, оценки положения восстановления синхронизации, реальной части совокупности на выходе подсистемы восстановления синхронизации и на выходе подсистемы восстановления амплитуды и фазы. На последнем графике показана диаграмма созвездия на выходе подсистемы восстановления амплитуды и фазы после какой-либо адаптации.

  • График усиления АРУ

На следующем графике показана подсистема автоматического управления усилением, адаптирующаяся с течением времени для нормализации выходного сигнала. Должен быть достигнут баланс между тем, как быстро АРУ адаптируется и сколько пульсации после того, как коэффициент усиления достигнет относительно постоянного уровня. Использование большего усиления контура АРУ адаптируется быстрее, но амплитуда после адаптации изменяется больше. Использование меньшего коэффициента усиления контура замедляет адаптацию АРУ, сглаживая уровень после адаптации, но требует больше времени для адаптации.

  • График оценки смещения частоты

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

  • График положения восстановления синхронизации

На следующем графике показан вход mu в фильтр интерполяции. Следует отметить, что mu сходится в установившееся состояние (с некоторой пульсацией) с течением времени, так как задержка канала не изменяется во время моделирования.

  • Реальная часть выходного графика восстановления синхронизации

Следующий график иллюстрирует, как реальная часть выходного сигнала подсистемы восстановления синхронизации начинает сходиться к восьми различным уровням амплитуды, ожидаемым для 64QAM. Однако, поскольку остаточный сдвиг частоты, остающийся после восстановления грубой частоты, еще не был скорректирован в этой точке приемника, качество сигнала изменяется с различными уровнями амплитуды, более четко видимыми в одних точках, чем в других. Созвездие все еще имеет некоторое вращение в этой точке приемника.

  • Реальная часть графика оценок символов

На следующем графике показано, как действительная часть выходных данных подсистемы восстановления амплитуды и фазы адаптируется во времени. В отличие от предыдущего графика, эта диаграмма генерируется после точного восстановления частоты, поэтому созвездие не должно вращаться. Отсчеты первоначально отсутствуют, так как выходной сигнал блока не является действительным, а затем следует увидеть восемь уровней ясной амплитуды, представляющих восемь реальных уровней амплитуды 64-QAM совокупности.

  • Восстановленный график созвездия

На следующем графике показано созвездие на выходе подсистемы восстановления амплитуды и фазы после того, как система успела адаптироваться к каналу. Уменьшение шума канала должно уменьшить размер каждой из точек созвездия; увеличение шума канала начинает объединять отдельные точки созвездия вместе. Если система не исправила сдвиг частоты, то здесь виден поворот созвездия.

Ссылки

1. М. Луизе и Р. Реджаннини, «Восстановление несущей частоты во всех цифровых модемах для передачи в пакетном режиме», IEEE Trans. Communications, pp. 1169-1178, 1995.

2. Моэнекли, М. и Де Джонхе, Г. «ML-ориентированная синхронизация несущей NDA для общих вращательно-симметричных созвездий сигналов», IEEE Trans. Communications, pp.2531-2533, 1994.

3. Майкл Райс, «Цифровые коммуникации - дискретный подход времени», Прентис Холл, апрель 2008 года.

4. Г. Лонг, Ф. Линг и Дж. Г. Проакис «Алгоритм LMS с адаптацией к замедленным коэффициентам», IEEE Trans. on Acoustics, Speech and Signal Processing, pp. 1397-1405, 1989.