В этом примере показано, как реализовать цифровое предыскажение (DPD) с основанной на наименьшее количество средних квадратичных (LMS) содействующей оценкой, которая оптимизирована для генерации HDL-кода и аппаратной реализации. Этим примером является расширение Реализации HDL Цифрового примера Предыскажения для вычисления коэффициентов DPD на FPGA, а не на процессоре. Этот пример заменяет код C/C++ generatable RPEM Coeff Estimation
подсистема Реализации HDL Цифрового примера Предыскажения с совместимым с HDL LMS Coefficient Estimator
подсистема. Этот пример поддерживает благоприятный для оборудования интерфейс для оценочной платы Xilinx® Zynq® UltraScale™ RFSoC ZCU111, которая использует преобразователь данных RF. Эта модель в качестве примера поддерживает Normal
и Accelerator
режимы симуляции. Для получения дополнительной информации о DPD, см. Адаптивный Проект DPD.
Откройте высокоуровневую архитектуру HDL DPD с содействующей оценкой LMS.
modelname = 'HDLDPDwithLMSCoeffExample';
open_system(modelname);
Baseband OFDM Transmitter
подсистема генерирует комплексный основополосный сигнал ортогонального деления частоты мультиплексируется (OFDM) на 16 битов на уровне частоты дискретизации 15,36 МГц. Устройству системы на чипе радиочастоты (RFSoC) соединили преобразователь данных RF с программируемой логикой. Преобразователь данных RF поддерживает 128 битов, синфазных слово квадратурной фазы (Q) и (I). Чтобы сгенерировать 128 битов I и слово Q, комплексный основополосный сигнал OFDM на 16 битов сгруппирован в 8 выборок и преобразован в 128 битов I и слово Q. Deserializer1D, Комплекс к Действительному-Imag, и блоки Bit Concat Simulink® выполняют эту операцию. Частота дискретизации выходных данных Битных блоков Concat составляет 1,92 МГц (15.36/8 МГц).
DPD_LMS
подсистема HDL DPD with LMS
подсистема принимает 128 битов I и слово Q, которое сгенерировано от Baseband OFDM Transmitter
подсистема и 128 битов I и слово Q, которое сгенерировано от RF Subsystem
подсистема. HDL DPD with LMS
подсистема выполняет DPD использование основанной на LMS содействующей оценки и возвращается, 128 битов предварительно исказили меня и слово Q. Блок Upsample и 128 to 16 bit converter
MATLAB® функциональное преобразование, 128 битов предварительно исказили меня и слово Q к комплексу на 16 битов, предварительно исказил данные. Частота дискретизации выходных данных 128 to 16 Bit Converter
функция составляет 15,36 МГц (1.92 x 8 МГц).
Когда вы включаете DPDSwitch в модели, RF Subsystem
подсистема принимает комплексные предварительно искаженные данные на 16 битов из 128 to 16 Bit Converter
функция. В противном случае подсистема принимает данные из Baseband OFDM Transmitter
подсистема, как введено I и выборки Q. Усилитель мощности (PA) принимает эти выборки I/Q, которые сверхдискретизированы к 2,4 ГГц. Усилитель мощности (УМ) предварительно загружен с матрицей коэффициентов на основе стандартно-совместимого сигнала LTE с частотой дискретизации 15,36 МГц. Эти коэффициенты усилителя мощности (УМ) хранятся в MAT-файле, и эти значения загружаются при инициализации примера.
В другом пути данные передаются через низкий шумовой усилитель (LNA) и вниз преобразованы прежде, чем обеспечить к DPD_LMS
подсистема в HDL DPD with LMS
подсистема. Baseband OFDM Receiver
подсистема собирает вниз преобразованные данные и обеспечивает их как вход к OFDMRx
функция.
В этом примере отключен readyForInput выходной порт. Можно использовать этот порт если предыдущая подсистема, управляющая HDL DPD with LMS
подсистема имеет readyForOutput как сигнал элемента управления вводом. Кроме того, readyForOutput входным портом является true
потому что последующий RF Subsystem
подсистема принимает входные данные на каждом временном шаге. Можно использовать этот порт если последующая подсистема после HDL DPD with LMS
подсистема имеет readyForInput как сигнал элемента управления выводом. validOut HDL DPD with LMS
высок (1) когда readyForOutput и validOut DPD_LMS
подсистема высока (1).
Для получения дополнительной информации о Baseband OFDM Transmitter
, RF Subsystem
, и Baseband OFDM Receiver
подсистемы, смотрите Реализацию HDL Цифрового примера Предыскажения.
Откройте HDL DPD with LMS
подсистема.
load_system(modelname);
open_system([modelname '/HDL DPD with LMS']);
HDL DPD with LMS
подсистема выполняет цифровое предварительное искажение на этих этапах.
1. Преобразуйте 128 битов I и вход Q Word к комплексным данным на 16 битов
HDL DPD with LMS
подсистема принимает 128 битов I и слова входа Q, которые сгенерированы от Baseband OFDM Transmitter
и RF Subsystem
подсистемы. Поскольку Digital Predistorter
и LMS Coefficient Estimator
подсистемы работают с комплексными входными параметрами на 16 битов, 128 битов I и данные о слове входа Q повторно преобразован в комплексные данные на 16 битов с помощью блока Repeat и 128 to 16 Bit Converter
Функция MATLAB. Частота дискретизации выходных данных 128 to 16 Bit Converter
функция составляет 15,36 МГц (1.92 x 8 МГц).
2. Выполните цифровое предварительное искажение с содействующей оценкой LMS на комплексных данных на 16 битов
Чтобы выполнить цифровое предварительное искажение с коэффициентами LMS, используйте Цифровое Предыскажение и Наименьшее количество Среднеквадратических Содействующих подсистем Средства оценки. Следующие несколько разделов дают подробное объяснение об этих подсистемах.
3. Преобразуйте комплексные данные на 16 битов в 128 битов I и Q Выход Word
Чтобы сгенерировать 128 битов I и Q слово выхода, комплексные 16 битов, предварительно искаженный сигнал сгруппирован в 8 выборок и преобразован в 128 битов I и Q слово выхода. Эта операция выполняется с помощью Deserializer1D, Комплекса к Действительным-Imag, и Битным блокам Simulink Concat. Выходная частота дискретизации данных после использования Битных блоков Concat составляет 1,92 МГц (15.36/8 МГц).
Digital Predistorter
подсистема искажает комплексные входные данные на 16 битов с помощью коэффициентов, которые оцениваются LMS Coefficient Estimator
подсистема. Проект DPD в этом примере похож на Реализацию HDL Цифрового примера Предыскажения, который оптимизирован для глубины памяти 3 и полиномиальная степень 3. Входные данные помещаются в сдвиговый регистр и мультиплексируются, чтобы сформировать вектор на основе глубины памяти. Затем вектор конкатенирован с нелинейными продуктами данных в зависимости от полиномиальной степени. Эта конкатенация формирует вектор из 9 элементов, который равняется временам глубины памяти степень. Скалярное произведение полученного вектора и оцененных коэффициентов обеспечивает предварительно искаженный вход, который питается, как введено RF Subsystem
подсистема, когда вы включаете DPDSwitch. Откройте Digital Predistorter
подсистема.
load_system(modelname);
open_system([modelname '/HDL DPD with LMS/DPD_LMS/Digital Predistorter']);
Когда характеристики усилителя мощности (УМ) варьируются в зависимости от времени и различные условия работы, с помощью адаптивного алгоритма оценки, который работает на FPGA, чтобы оценить, что инверсия усилителя мощности (УМ) необходима. В этом примере благоприятный для оборудования алгоритм оценки на основе метода LMS рассматривается из-за его простой архитектуры и упрощенного внедрения на оборудовании с меньшим количеством ресурсов по сравнению с другими алгоритмами оценки, такими как рекурсивные наименьшие квадраты (RLS) и рекурсивный ошибочный метод предсказания (RPEM). LMS Coefficient Estimator
подсистема оценивает коэффициенты DPD от выходных параметров Digital Predistorter
подсистема (вход PA) и PA выход RF Subsystem
подсистема. Подобно Digital Predistorter
подсистема, LMS Coefficient Estimator
подсистема также действует на уровне 15,36 МГц. Для глубины памяти 3 и полиномиальная степень 3, LMS Coefficient Estimator
подсистема оценивает в общей сложности 9 коэффициентов. Откройте LMS Coefficient Estimator
подсистема.
load_system(modelname);
open_system([modelname '/HDL DPD with LMS/DPD_LMS/LMS Coefficient Estimator']);
Выходные данные усилителя мощности (УМ) от RF Subsystem
подсистема помещается в сдвиговый регистр на основе глубины памяти, которая равняется 3. Затем этот вектор конкатенирован с нелинейными продуктами выходных данных усилителя мощности (УМ) в зависимости от полиномиальной степени, которая равняется 3. Эта конкатенация формирует вектор из 9 элементов, который равняется временам глубины памяти степень. LMS
подсистема оценивает коэффициенты, таким образом, что ошибка минимальна между входными данными усилителя мощности (УМ) и выходными данными усилителя мощности (УМ). Dot product
подсистема выполняет скалярное произведение сопряженных из предполагаемых коэффициентов и конкатенированных выходных данных усилителя мощности (УМ). Чтобы отослать предполагаемые коэффициенты на основе усилителя мощности (УМ) В Допустимом, пример использует переключатель. Когда усилитель мощности (УМ) В Допустимом высок (1), эта подсистема отправляет текущие предполагаемые коэффициенты. В противном случае подсистема отправляет ранее предполагаемые коэффициенты.
Запустите HDLDPDwithLMSCoeffExample
модель. По умолчанию DPDSwitch включен. Если вы отключаете его, величина вектора ошибок (EVM) и спектральный перерост в смежном увеличении каналов. Созвездие и спектр схемы анализатора показывают результаты выполнения HDLDPDwithLMSCoeffExample
модель с включенным DPD.
sim(modelname);
Estimating carrier frequency offset ... First four frames are used for carrier frequency offset estimation. Estimated carrier frequency offset is 1.273773e+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 Coder™. Сгенерировать HDL-код и испытательный стенд для HDL DPD with LMS
подсистема, используйте makehdl
и makehdltb
команды.
HDL DPD with LMS
подсистема синтезируется на оценочной плате Xilinx® Zynq® Ultrascale RFSoC ZCU111. Частота, полученная после места и маршрута, составляет приблизительно 420 МГц. Составьте таблицу, которая отображает место сообщения и результаты использования ресурса маршрута для комплексного входа на 128 битов.
F = table(... categorical({'Slice LUT'; 'Slice Registers';'DSP'}), ... categorical({'3517'; '6583'; '90'}), ... categorical({'425280'; '850560'; '4272'}), ... categorical({'0.81'; '0.76'; '2.11'}), ... 'VariableNames', ... {'Resources','Utilized','Available','Utilization (%)'}); disp(F);
Resources Utilized Available Utilization (%) _______________ ________ _________ _______________ Slice LUT 3517 425280 0.81 Slice Registers 6583 850560 0.76 DSP 90 4272 2.11