Channelizer HDL Optimized

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

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

  • Channelizer HDL Optimized block

Описание

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

Зависимости

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

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

  • Same as number of frequency bands — Выходные данные являются 1 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 outputs by two, БПФ увеличивает размер слова на 1 бит на каждом этапе, чтобы избежать переполнения.

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

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

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

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

Алгоритмы

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

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

Примечание

Выход блока Channelizer HDL Optimized не совпадает с выходом от выборки для выборки блока Channelizer. Это несоответствие - то, потому что блоки применяют входные выборки к подфильтрам в различных порядках. Блок Channelizer HDL Optimized применяет вход 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 output data type, с помощью округления и настроек переполнения, которые вы выбрали. Каждое касание фильтра в подфильтре является конвейерным, чтобы предназначаться для разделов DSP FPGA.

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

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

Ссылки

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

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

Введенный в R2017a