Реализация HDL цифрового предыскажения

Этот пример показывает реализацию цифровой модели (DPD) предыскажения, которая оптимизирована для генерации HDL-кода и аппаратной реализации. Механизм перед искажением выполняется на двух этапах. В первой стадии набор коэффициентов DPD оценивается на основе входных и выходных данных усилителя мощности (PA). На втором этапе входные данные усилителя мощности (УМ) предварительно искажены на основе предполагаемых коэффициентов DPD и предоставлены как новый вход усилителю мощности (УМ). Этот пример демонстрирует симуляцию уровня системы, в которой Цифровая подсистема Предыскажения генерирует HDL-код, в то время как содействующая оценка DPD генерирует код C/C++. Эта модель в качестве примера поддерживает только Нормальный и режимы симуляции Акселератора.

Цифровое предварительное искажение

Цифровое предварительное искажение является методом обработки сгенерированного модулированного сигнала, который используется для исправления ухудшений в усилителях мощности радиочастоты (RF). Эти ухудшения вызывают внеполосную эмиссию или спектральный перерост и внутриполосное искажение, которое приводит к увеличенной частоте ошибок по битам (BER) и уменьшенной пропускной способности системы. Усилители мощности вызывают нежелательные эффекты в системе из-за их нелинейного поведения. Системы связи с помощью ортогонального мультиплексирования деления частоты (OFDM), такие как беспроводная локальная сеть (WLAN), глобальная функциональная совместимость для микроволнового доступа (WiMax), долгосрочной эволюции (LTE), и нового радио (NR) 5G, уязвимы для этих нежелательных эффектов. Предварительная коррекция применяется на сигнал так, чтобы каскад DPD и усилителя мощности (УМ) был близко к идеальной, линейной, и системе без памяти. Эта линеаризация может повысить эффективность степени усилителя мощности (УМ) и может быть большим количеством эффективного спектра. Этот рисунок показывает структуру верхнего уровня примера.

Запустите эту команду, чтобы открыть пример.

modelname = 'DPDHDLExample';
open_system(modelname);

Основополосный передатчик OFDM

Основополосная подсистема Передатчика OFDM генерирует сгенерированный модулированный сигнал и обеспечивает тот сигнал как входные данные к Цифровой подсистеме Предыскажения. OFDMTx функция в этой подсистеме генерирует форму волны передатчика OFDM с синхронизацией, ссылкой, заголовком, пилотами, и данные сигнализируют и возвращают txWaveform, txGrid, и diagnostics использование набора параметров передатчика txParam. Для получения дополнительной информации о OFDMTx функционируйте, смотрите HDL OFDM пример Ссылок MATLAB. Можно также заменить Основополосную подсистему Передатчика OFDM на любой пользовательский передатчик, чтобы предоставить данные Цифровой подсистеме Предыскажения. Этот рисунок показывает генерацию входного сигнала основной полосы для этого примера. Запустите эту команду, чтобы открыть Основополосную подсистему Передатчика OFDM.

load_system(modelname);
open_system([modelname '/Baseband OFDM Transmitter']);

Содействующая оценка

Подсистема Оценки Коэффициента RPEM оценивает набор коэффициентов путем сбора данных от ввода и вывода усилителя мощности (УМ). Эти коэффициенты используются, чтобы исказить сигнал перед усилителем мощности. Характеристики усилителя мощности (УМ) варьируются в зависимости от времени и условия работы, таким образом, адаптивный алгоритм рекурсивного ошибочного метода предсказания (RPEM) используется, чтобы оценить коэффициенты DPD. Количество коэффициентов, которые будут оценены, зависит от глубины памяти и полиномиальной степени усилителя мощности (УМ). В этом примере, потому что общее количество коэффициентов, которые должны быть оценены, равняется 25, глубина памяти и полиномиальная степень усилителя мощности (УМ) установлены в 5. Для получения дополнительной информации о RPEM, см. [1]. Чтобы сгенерировать код C/C++ для подсистемы Оценки Коэффициента RPEM, используйте slbuild команда. Запустите эту команду, чтобы открыть подсистему Оценки Коэффициента RPEM.

load_system(modelname);
open_system([modelname '/RPEM Coeff Estimation']);

Цифровое предыскажение

Цифровая подсистема Предыскажения искажает входные данные с помощью коэффициентов, оцененных подсистемой Оценки Коэффициента RPEM. Проект DPD в этом примере основан на полиноме памяти, который корректирует нелинейность и эффекты памяти в усилителе мощности (УМ). Предполагаемые коэффициенты и сгенерированные входные данные предоставляются, как введено DPD для применения предварительного искажения. Входные данные являются занявшими первое место в сдвиговом регистре на основе глубины памяти. Во-вторых, этот вектор конкатенирован с нелинейными продуктами данных в зависимости от полиномиальной степени. Эта конкатенация формирует вектор из 25, который означает элементы степени времен глубины памяти. Скалярное произведение полученного вектора и оцененных коэффициентов обеспечивает предварительно искаженный вход, который питается, как введено усилителя мощности (УМ) после повышающей дискретизации. Запустите эту команду, чтобы открыть Цифровую подсистему Предыскажения.

load_system(modelname);
open_system([modelname '/Digital Predistorter']);

RF блокирует настройку

Этот пример имеет переключатель управления, чтобы включить или отключить содействующая оценка и предварительное искажение. Если вы включаете переключатель, пример обеспечивает выходные данные от Цифровой подсистемы Предыскажения, как введено с блоками RF. В противном случае пример обеспечивает выходные данные от Основополосной подсистемы Передатчика OFDM, как введено с блоками RF как синфазные (I), выборки квадратурной фазы (Q). Эти выборки I/Q сверхдискретизированы к 2,4 ГГц и предоставлены, как введено усилителю мощности (УМ). Матрица коэффициентов, требуемая усилителем мощности (УМ), предварительно загружена на основе стандартно-совместимого сигнала LTE с частотой дискретизации 15,36 МГц. Эти коэффициенты хранятся в файле MAT, и значения загружаются при инициализации примера. В другом пути данные передаются через низкий шумовой усилитель (LNA) и вниз преобразованы прежде если он к подсистеме Оценки Коэффициента RPEM.

Основополосный приемник OFDM

Основополосная подсистема Приемника OFDM собирает вниз преобразованные данные и обеспечивает их как вход к OFDMRx функция. Эта функция выполняет оценку смещения несущей частоты и коррекцию, кадровую синхронизацию, демодуляцию OFDM, оценку канала, эквализацию канала, коррекцию смещения фазы, и декодирует переданные биты. Для получения дополнительной информации о OFDMRx функционируйте, смотрите HDL OFDM пример Ссылок MATLAB.

Верификация и результаты

Запустите модель. По умолчанию Цифровое Предыскажение и Оценка Коэффициента RPEM включены. Если вы отключаете DPD, увеличения величины вектора ошибок (EVM) и спектральный перерост в смежных увеличениях каналов. Созвездие и спектр схемы анализатора показывают результаты выполнения модели с включенным DPD.

sim(modelname);
 Estimating carrier frequency offset ... 

 First four frames are used for carrier frequency offset estimation. 

 Estimated carrier frequency offset is 3.252304e+00 Hz.

 Detected and processing frame 5
------------------------------------------

 Header CRC passed

 Modulation: 16QAM, codeRate=1/2 and FFT Length=128

 Data CRC passed

 Data decoding completed
------------------------------------------

 Detected and processing frame 6
------------------------------------------

 Header CRC passed

 Modulation: 16QAM, codeRate=1/2 and FFT Length=128

 Data CRC passed

 Data decoding completed
------------------------------------------

Генерация HDL-кода и результаты реализации

Чтобы проверять и сгенерировать HDL для этого примера, у вас должен быть HDL Coder™. Используйте makehdl и makehdltb команды, чтобы сгенерировать HDL-код и испытательный стенд для Цифровой подсистемы Предыскажения.

Цифровая подсистема Предыскажения синтезируется на оценочной плате Xilinx® Zynq®-7000 ZC706. Частота, полученная после места и маршрута, составляет приблизительно 220 МГц. Составьте таблицу, которая отображает место сообщения и результаты использования ресурса маршрута для 16-битного комплексного входа.

F = table(...
    categorical({'Slice LUT'; 'Slice Registers';'DSP'}), ...
    categorical({'6028'; '8115'; '160'}), ...
    categorical({'218600'; '437200'; '900'}), ...
    categorical({'2.75'; '1.85'; '17.78'}), ...
    'VariableNames', ...
    {'Resources','Utilized','Available','Utilization (%)'});
disp(F);
       Resources       Utilized    Available    Utilization (%)
    _______________    ________    _________    _______________

    Slice LUT            6028       218600           2.75      
    Slice Registers      8115       437200           1.85      
    DSP                  160        900              17.78     

Ссылки

1. Гань, Литий и Эмэд Абд-Элрэди. ''Цифровое Предварительное искажение Систем Полинома Памяти Используя Прямое и Косвенное Изучение Архитектур''. В Продолжениях Одиннадцатой Международной конференции IASTED по вопросам Обработки сигналов и Обработки изображений (SIP) (F. Cruz-Рольдан и Н. Б. Смит, редакторы), № 654-802. Калгари, AB: Нажатие ACTA, 2009.

Похожие темы