exponenta event banner

Оптимизированная ЛПВП каналообразователя

Набор многофазных фильтров и быстрое преобразование Фурье - оптимизировано для генерации кода HDL

  • Библиотека:
  • Системная панель инструментов DSP Поддержка HDL/Фильтрация

  • Channelizer HDL Optimized block

Описание

Блок оптимизации HDL каннелизатора разделяет широкополосный входной сигнал на множество узкополосных выходных сигналов. Она обеспечивает аппаратную скорость и оптимизацию области для приложений потоковой передачи данных. Блок принимает скалярный или векторный ввод вещественных или комплексных данных, обеспечивает аппаратные управляющие сигналы и имеет необязательные выходные сигналы управления кадром. С помощью векторного ввода можно достичь пропускной способности giga-sample-per-second (GSPS). Блок реализует многофазный фильтр с одним субфильтром на элемент входного вектора. Аппаратная реализация перемежает субфильтры, что приводит к совместному использованию каждого умножителя фильтра (FFT Length/Input Size) раз. Реализация FFT использует тот же конвейерный алгоритм Radix 2 ^ 2 FFT, что и блок FFT HDL Optimized.

Порты

Вход

развернуть все

Размер вектора должен быть степенью 2, которая составляет от 1 до 64 и не превышает число каналов (длина БПФ).

double и single типы данных поддерживаются для моделирования, но не для генерации кода HDL.

Блок не принимает uint64 данные.

Типы данных: fixed point | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | single | double
Поддержка комплексного номера: Да

Когда validIn имеет значение true, блок захватывает значение в dataIn.

Типы данных: Boolean

При сбросе trueблок останавливает текущий расчет и очищает внутреннее состояние.

Зависимости

Чтобы включить этот порт, выберите Enable reset input port.

Типы данных: Boolean

Продукция

развернуть все

  • Если для параметра «Размер выходного вектора» задано значение Same as number of frequency bands (по умолчанию) выходные данные являются вектором 1-by-M, где M - длина БПФ.

  • Если для параметра «Размер выходного вектора» задано значение Same as input sizeвыходные данные являются вектором M-by-1, где М - размер входного вектора.

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

Блок устанавливает значение validOut для true с каждым допустимым образцом в dataOut.

Типы данных: Boolean

Блок устанавливает startOut в значение true во время первого действительного образца на dataOut.

Зависимости

Чтобы включить этот порт, выберите Enable start output port.

Типы данных: Boolean

Блок устанавливает значение endOut равным true во время последней допустимой пробы на dataOut.

Зависимости

Чтобы включить этот порт, выберите Enable end output port.

Типы данных: Boolean

Параметры

развернуть все

Главный

Для генерации кода HDL длина БПФ должна быть мощностью 2 от 23 до 216.

Если число коэффициентов не кратно числу полос частот (длина БПФ), блок заполняет этот вектор нулями. Спецификация фильтра по умолчанию - фильтр FIR с увеличенным косинусом, rcosdesign(0.25,2,4,'sqrt'). Можно задать вектор коэффициентов или вызвать функцию конструкции фильтра, которая возвращает значения коэффициентов. Комплексные коэффициенты не поддерживаются. По умолчанию блок переводит коэффициенты в тот же тип данных, что и входные.

Внедрение ЛПВП комплексных множителей, указанных как 'Use 4 multipliers and 2 adders' или 'Use 3 multipliers and 5 adders'. В зависимости от вашего инструмента синтеза и целевого устройства, один вариант может быть быстрее или меньше.

Зависимости

Этот параметр применяется только при использовании архитектуры Radix 2 ^ 2.

Выходные данные представляют собой вектор строк M-by-1 каналов. Порядок вывода является естественным для любого размера вывода.

  • Same as number of frequency bands - Выходные данные являются вектором 1-by-M, где M - длина БПФ.

  • Same as input size - Выходные данные являются вектором M-by-1, где M - размер входного вектора.

При выборе этого параметра в БПФ реализуется общий масштабный коэффициент 1/N путем масштабирования результата каждой ступени трубопровода на 2. Эта регулировка поддерживает выход БПФ в том же диапазоне амплитуд, что и его вход. Если масштабирование отключено, БПФ предотвращает переполнение, увеличивая длину слова на 1 бит на каждом этапе.

Типы данных

См. Режимы округления. Блок использует арифметику с фиксированной точкой для внутренних вычислений, если входные данные являются целыми или фиксированными. Этот параметр не применяется при вводе single или double. Каждый этап БПФ округляется после умножения твиддового коэффициента, но перед бабочками. Округление также может происходить при приведении коэффициентов и выходных данных многофазного фильтра к указанным типам данных.

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

Алгоритм БПФ позволяет избежать переполнения, либо масштабируя выходной сигнал каждого каскада (Normalize включено) или путем увеличения длины слова на 1 бит на каждом этапе (Normalize отключено).

Блок преобразует коэффициенты многофазного фильтра в этот тип данных, используя заданные параметры округления и переполнения. При выборе Inherit: Same word length as input (по умолчанию) блок выбирает двоичную точку с помощью fi() правила наилучшей точности.

Блок переводит выходные данные многофазного фильтра (входные данные в БПФ) в этот тип данных, используя заданные параметры округления и переполнения. При выборе Inherit: Same word length as input (по умолчанию) блок выбирает двоичную точку с наилучшей точностью, учитывая значения коэффициентов фильтра и диапазон входного типа данных.

По умолчанию логика БПФ не изменяет тип данных. При отключении выходов Divide butterfly на два FFT увеличивает длину слова на 1 бит на каждом этапе, чтобы избежать переполнения.

Порты управления

При выборе этого параметра на значке блока отображается порт сброса. Когда вход сброса trueблок останавливает расчет и очищает все внутренние состояния.

При выборе этого параметра на значке блока отображается порт startOut. Сигнал startOut является истинным для первого цикла выходных данных в кадре.

При выборе этого параметра на значке блока отображается порт endOut. Сигнал EndOut является истинным для последнего цикла выходных данных в кадре.

Алгоритмы

развернуть все

Алгоритм многофазного фильтра требует субфильтра для каждого канала БПФ. Дополнительные сведения об архитектуре многофазного фильтра см. в разделе [1], а также на справочной странице блока Channel elizer.

Примечание

Выходной сигнал оптимизированного блока HDL каннелизатора не соответствует выходному сигналу выборки блока каннелизатора. Это несоответствие связано с тем, что блоки применяют входные выборки к субфильтрам в разных порядках. Блок оптимизации HDL каннелизатора применяет входной сигнал X (0) к субфильтру EM-1 (z), X (1) к субфильтру EM-2 (z),..., X (M-1) к субфильтру E0 (z). Каналы, обнаруженные обоими блоками, совпадают при анализе в нескольких кадрах.

Если размер входного вектора, M, равен длине БПФ, N, то блок реализует N субфильтров в аппаратном обеспечении. Каждый субфильтр представляет собой транспонированный КИХ-фильтр прямой формы с отводами NumCoeffs/N.

Если размер вектора меньше N, блок реализует один субфильтр для каждого элемента входного вектора. Умножители субфильтра совместно используются при необходимости для реализации N канальных фильтров. Совместно используемые отводы множителя имеют таблицу поиска N/M коэффициентов фильтра. За каждым отводом следует линия задержки из N/M-1 циклов.

Выходные данные субфильтров приводятся к указанному типу выходных данных Фильтр (Filter) с использованием выбранных параметров округления и переполнения. Каждый отвод фильтра в субфильтре конвейерно направлен на секции DSP FPGA.

Например, для длины БПФ 8 и размера входного вектора 4 блок реализует четыре фильтра. Каждый множитель используется совместно N/M раз или дважды. Каждый отвод применяет два коэффициента, и линия задержки составляет N/M-1 циклов.

Для скалярного ввода блок реализует один фильтр. Каждый множитель совместно используется N раз. Каждый отвод применяет N коэффициентов, и линия задержки составляет N-1 циклов.

Ссылки

[1] Харрис, F. J., К. Дик и М. Райс. «Цифровые приемники и передатчики, использующие банки многофазных фильтров для беспроводной связи». Транзакции IEEE по теории и методам микроволн. Том 51, № 4, апрель 2003 года.

Расширенные возможности

.
Представлен в R2017a