Channelizer HDL Optimized

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

  • Библиотека:
  • Поддержка/фильтрация HDL-файлов DSP System Toolbox

  • Channelizer HDL Optimized block

Описание

Блок Channelizer HDL Optimized разделяет широкополосный входной сигнал на несколько узкополосных выходных сигналов. Он обеспечивает аппаратную скорость и оптимизацию площади для потоковых приложений данных. Блок принимает скаляр или векторный вход реальных или комплексных данных, обеспечивает аппаратно удобные сигналы управления и имеет опциональные выходные сигналы управления системой координат. Вы можете достичь пропускной способности выборка гига сэмплов в секунду (GSPS) с помощью векторного входа. Блок реализует полифазный фильтр с одним подфильтром на входной векторный элемент. Аппаратная реализация чередует подфильтры, что приводит к совместному использованию каждого множителя фильтра (FFT Length/ Input Size). В реализации БПФ используется тот же алгоритм Radix 2 ^ 2 БПФ, что и в блоке 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

Когда reset trueблок останавливает текущее вычисление и очищает внутреннее состояние.

Зависимости

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

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

Выход

расширить все

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

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

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

Блок устанавливает validOut на true с каждой действительной выборкой на dataOut.

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

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

Зависимости

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

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

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

Зависимости

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

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

Параметры

расширить все

Главный

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

Если количество коэффициентов не кратно Number of frequency bands (FFT length), блок заполняет этот вектор нулями. Спецификацией фильтра по умолчанию является фильтр конечной импульсной характеристики приподнятого косинуса, rcosdesign(0.25,2,4,'sqrt'). Можно задать вектор коэффициентов или вызов функции создания фильтра, которая возвращает значения коэффициентов. Комплексные коэффициенты не поддерживаются. По умолчанию блок переводит коэффициенты в совпадающий тип данных, что и вход.

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

Зависимости

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

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

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

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

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

Типы данных

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

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

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

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

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

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

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

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

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

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

Алгоритмы

расширить все

Алгоритм полифазного фильтра требует подфильтра для каждого канала FFT. Для получения дополнительной информации об архитектуре полифазного фильтра см. [1] и Channelizer страницу с описанием блока.

Примечание

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

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

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

Выходы подфильтров приводятся к указанному Filter output data type с помощью выбранных параметров округления и переполнения. Каждый патрубок фильтра в подфильтре конвейеризован, чтобы нацелить секции DSP FPGA.

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

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

Ссылки

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

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

.
Введенный в R2017a