Многофазный набор фильтров и быстрое преобразование Фурье — оптимизированный для генерации HDL-кода
DSP System Toolbox / Фильтрующий / Многоскоростные фильтры
Поддержка HDL DSP System Toolbox / фильтрация
Блок Channelizer HDL Optimized разделяет широкополосный входной сигнал на несколько узкополосных выходных сигналов. Это обеспечивает аппаратную скорость и оптимизацию области для потоковой передачи применений данных. Блок принимает скалярный или векторный вход действительных или комплексных данных, обеспечивает благоприятные для оборудования управляющие сигналы и имеет дополнительные выходные сигналы управления кадром. Можно достигнуть пропускной способности выборки giga в секунду (GSPS) с помощью векторного входа. Блок реализует многофазный фильтр с одним подфильтром на элемент входного вектора. Аппаратная реализация чередует подфильтры, который приводит к совместному использованию каждого множителя фильтра (FFT Length / Input Size) времена. Реализация БПФ использует то же конвейерное Основание 2^2 Алгоритм бпф как блок FFT HDL Optimized.
dataIn
— Входные данныеВекторный размер должен быть степенью 2, который является от 1 до 64 и не больше, чем количество каналов (длина БПФ). double
и входные данные single
позволены для симуляции, но не для генерации HDL-кода.
Блок не принимает данные uint64
.
Типы данных: fixed point
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| single
| double
Поддержка комплексного числа: Да
validIn
— Указывает на допустимые входные данныеBoolean
Когда validIn является true
, блок получает значение на dataIn.
Типы данных: Boolean
сброс
Сбросьте (дополнительный) управляющий сигналBoolean
Когда reset является true
, блок останавливает текущее вычисление и очищает внутреннее состояние.
Чтобы включить этот порт, выберите Enable reset input port.
Типы данных: Boolean
dataOut
— Выходные данные канала частотыЕсли вы устанавливаете 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
— Указывает на допустимые выходные данныеBoolean
Блок устанавливает validOut на true
с каждой допустимой выборкой на dataOut.
Типы данных: Boolean
startOut
— Указывает на первый допустимый цикл (дополнительных) выходных данныхBoolean
Блок устанавливает startOut на true
во время первой допустимой выборки на dataOut.
Чтобы включить этот порт, выберите Enable start output port.
Типы данных: Boolean
endOut
— Указывает на последний допустимый цикл (дополнительных) выходных данныхBoolean
Блок устанавливает endOut на true
во время последней допустимой выборки на dataOut.
Чтобы включить этот порт, выберите Enable end output port.
Типы данных: Boolean
Number of frequency bands (FFT length)
— Длина БПФ8
(значение по умолчанию) | целочисленная степень двойкиДля генерации HDL-кода длина БПФ должна быть степенью 2 от 23 до 216.
Filter coefficients
— Многофазные коэффициенты фильтра[ -0.032, 0.121, 0.318, 0.482, 0.546, 0.482, 0.318, 0.121, -0.032 ]
(значение по умолчанию) | вектор числовых значенийЕсли количество коэффициентов не является кратным Number of frequency bands (FFT length), блок заполняет этот вектор нулями. Спецификация фильтра по умолчанию является КИХ-фильтром повышенного косинуса, rcosdesign(0.25,2,4,'sqrt')
. Можно задать вектор коэффициентов или вызова функции проекта фильтра, которая возвращает содействующие значения. Комплексные коэффициенты не поддержаны. По умолчанию блок бросает коэффициенты к совпадающему типу данных как вход.
Complex multiplication
— Реализация HDL комплексных множителейUse 4 multipliers and 2 adders
(значение по умолчанию) | Use 3 multipliers and 5 adders
Реализация HDL комплексных множителей, заданных или как 'Use 4 multipliers and 2 adders'
или как 'Use 3 multipliers and 5 adders'
. В зависимости от вашего инструмента синтеза и целевого устройства, одна опция может быть быстрее или меньшей.
Эта опция применяется, только если вы используете Основание 2^2 архитектура.
Output vector size
— Размер выходных данныхSame as number of frequency bands
(значение по умолчанию) | Same as input size
Выходные данные являются вектором - строкой из M-by-1 каналы. Выходной порядок является битом, естественным для любого выходного размера.
Same as number of frequency bands
— Выходные данные являются 1 M вектором, где M является длиной БПФ.
Same as input size
— Выходными данными является M-by-1 вектор, где M является размером входного вектора.
Divide butterfly outputs by two
— Масштабирование БПФКогда вы выбираете этот параметр, БПФ реализует полный 1/N масштабный коэффициент путем масштабирования результата каждой настройки канала связи 2. Эта корректировка сохраняет вывод БПФ в той же амплитудной области значений как ее вход. Если масштабирование отключено, БПФ избегает переполнения путем увеличения размера слова на 1 бит на каждом этапе.
Rounding mode
— Округление метода используется для внутренних вычислений фиксированной точкиFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Zero
Смотрите Округление Режимов. Блок использует вычисления с фиксированной точкой для внутренних вычислений, когда вход является любым целым числом или типом данных с фиксированной точкой. Эта опция не применяется, когда входом является single
или double
. Каждый этап БПФ раунды после вертеть факторного умножения, но перед бабочками. Округление может также произойти при кастинге коэффициентов и вывода многофазного фильтра к типам данных, которые вы задаете.
Saturate on integer overflow
— Обработка переполнения для внутренних вычислений фиксированной точкиСмотрите, что Переполнение Обрабатывает. Блок использует вычисления с фиксированной точкой для внутренних вычислений, когда вход является любым целым числом или типом данных с фиксированной точкой. Эта опция не применяется, когда входом является single
или double
. Эта опция применяется к кастингу коэффициентов и вывода многофазного фильтра к типам данных, которые вы задаете.
Алгоритм бпф избегает переполнения любым масштабированием вывода каждого этапа (Normalize
включил), или путем увеличения размера слова на 1 бит на каждом этапе (отключенный Normalize
).
Coefficient data type
— Тип данных коэффициентов фильтраInherit: Same word length as input
(значение по умолчанию) | выражение типа данныхБлок бросает многофазные коэффициенты фильтра к этому типу данных, с помощью округления и настроек переполнения, которые вы задаете. Когда вы выбираете Inherit: Same word length as input
(значение по умолчанию), блок выбирает двоичную точку, использующую правила лучшей точности fi()
.
Filter output data type
— Тип данных вывода многофазного фильтраInherit: Same word length as input
(значение по умолчанию) | Inherit: via internal rule
| выражение типа данныхБлок бросает вывод многофазного фильтра (вход к БПФ) к этому типу данных, с помощью округления и настроек переполнения, которые вы задаете. Когда вы выбираете Inherit: Same word length as input
(значение по умолчанию), блок выбирает двоичную точку лучшей точности путем рассмотрения значений коэффициентов фильтра и области значений типа входных данных.
По умолчанию логика БПФ не изменяет тип данных. Когда вы отключаете Divide butterfly outputs by two, БПФ увеличивает размер слова на 1 бит на каждом этапе, чтобы избежать переполнения.
Enable reset input port
— Дополнительный сигнал сбросаКогда вы выбираете этот параметр, порт reset показывает на значке блока. Когда вход reset является true
, вычислением остановок блока и очищает все внутреннее состояние.
Enable start output port
— Дополнительный управляющий сигнал, указывающий, запускается данныхКогда вы выбираете этот параметр, порт startOut показывает на значке блока. Сигнал startOut верен для первого цикла выходных данных в кадре.
Enable end output port
— Дополнительный конец указания управляющего сигнала данныхКогда вы выбираете этот параметр, порт 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 цикл.
Задержка меняется в зависимости от длины БПФ и векторного размера. После того, как вы обновите модель, задержка отображена на значке блока. Отображенная задержка является количеством циклов между первым допустимым входом и первым допустимым выводом, принимая, что вход непрерывен. Коэффициенты фильтра не влияют на задержку. Установка выходного размера, равного входному размеру, уменьшает задержку, потому что выборки не сохранены и переупорядочены.
Эта схема показывает validIn
и сигналы validOut
для непрерывных входных данных с векторным размером 16 и длиной БПФ 512.
Схема также показывает дополнительный startOut
и сигналы endOut
, которые указывают на контуры кадра. Когда включено, импульсы startOut
для одного цикла с первым validOut
кадра и импульсы endOut
для одного цикла с последним validOut
кадра.
Если вы примените непрерывные входные кадры (никакой разрыв в validIn
между кадрами), вывод также будет непрерывен после начальной задержки.
Сигнал validIn
может быть, состоящим из нескольких несмежных участков. Данные, сопровождаемые сигналом validIn
, хранятся, пока кадр не заполнен. Затем данные выводятся в непрерывном кадре N (длина БПФ) циклы. Эта схема показывает вход, состоящий из нескольких несмежных участков, и непрерывный вывод для длины БПФ 512 и векторного размера 16 выборок.
Эти данные ресурсов и данные о производительности являются местом-и-маршрутом, следует из сгенерированного HDL, предназначенного к Xilinx® Virtex® 6 (XC6VLX240-1ff784) FPGA. Эти три примера в таблицах используют эту настройку:
Длина БПФ (значение по умолчанию) — 8
Отфильтруйте длину — 96 коэффициентов
16-битные комплексные входные данные
Коэффициент и типы выходных данных фильтра (значение по умолчанию) — То же самое как количество диапазонов частот
Комплексное умножение (значение по умолчанию) — 4 множителя, 2 сумматора
Выведите масштабирование — Enabled
Минимизируйте часы, включает (параметр HDL Coder™)
Производительность синтезируемого HDL-кода меняется в зависимости от вашей цели и опций синтеза.
Для скалярного входа проект достигает частоты часов 346 МГц. Задержка является 53 циклами. Подфильтры совместно используют каждый множитель восемь (N) времена. Проект использует эти ресурсы.
Ресурс | Используемый номер |
---|---|
LUT | 1591 |
FFS | 2681 |
Xilinx LogiCORE® DSP48 | 16 |
Для векторного входа с четырьмя выборками проект достигает частоты часов 333 МГц. Задержка является 31 циклом. Подфильтры совместно используют каждый множитель дважды (N/M). Проект использует эти ресурсы.
Ресурс | Используемый номер |
---|---|
LUT | 1912 |
FFS | 3986 |
Xilinx LogiCORE DSP48 | 56 |
Для векторного входа с восемью выборками проект достигает частоты часов 292 МГц. Задержка является 20 циклами. Когда входной размер совпадает с длиной БПФ, подфильтры не совместно используют множителей. Проект использует эти ресурсы.
Ресурс | Используемый номер |
---|---|
LUT | 1388 |
FFS | 2302 |
Xilinx LogiCORE DSP48 | 110 |
[1] Харрис, F. J. К. Дик и М. Райс. “Цифровые получатели и передатчики Используя многофазные наборы фильтров для радиосвязей”. Транзакции IEEE на микроволновой теории и методах. Издание 51, № 4, апрель 2003.
Этот блок поддерживает генерацию кода C/C++ для Акселератора Simulink® и Быстрых Режимов Accelerator и для генерации компонента DPI.
HDL Coder обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику. Для получения дополнительной информации о реализациях свойства и ограничения для генерации HDL-кода, видят HDL Channelizer, Оптимизированный в документации HDL Coder.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.