Оптимизированный HDL Channelizer

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

  • Библиотека:
  • DSP System Toolbox / Фильтрующий / Многоскоростные фильтры

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

Описание

Блок 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 верен для последнего цикла выходных данных в кадре.

Характеристики блока

Типы данных

double | single | base integer | fixed point

Многомерные сигналы

No

Сигналы переменного размера

No

Алгоритмы

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

Многофазный алгоритм фильтра требует подфильтра для каждого канала БПФ. Для большего количества детали о многофазной архитектуре фильтра обратитесь к [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