Десятикратно уменьшите сигнал с помощью каскадного интегрально-гребенчатого фильтра, оптимизированного для генерации HDL-кода
Поддержка HDL DSP System Toolbox / фильтрация
Блок CIC Decimation HDL Optimized десятикратно уменьшает входной сигнал при помощи децимирующего фильтра каскадной расчески интегратора (CIC). Децимирующие фильтры CIC являются классом КИХ-фильтров линейной фазы, состоящих из части расчески и части интегратора. Структура децимирующего фильтра CIC состоит из разделов N каскадных интеграторов, фактора изменения уровня R и разделов N каскадных гребенчатых фильтров. Для получения дополнительной информации о децимирующих фильтрах CIC, см. Алгоритмы.
Блок поддерживает скалярные и векторные входные параметры. Для обоих типов входных параметров блок обеспечивает скалярный выход. Поддержки блока зафиксированная и переменная децимация для скалярных входных параметров и только зафиксированная децимация для векторных входных параметров.
Блок обеспечивает архитектуру, подходящую для аппаратного развертывания и генерации HDL-кода.
data
— Входные данныеЗадайте входные данные как скаляр или вектор-столбец длины 1 - 64. Входные данные должны быть целым числом со знаком или подписанной фиксированной точкой с размером слова, меньше чем или равным 32. параметр Decimation factor (R) должен быть целочисленным кратным размер входного кадра.
Типы данных: int8
| int16
| int32
| fixed point
Поддержка комплексного числа: Да
valid
— Индикация относительно допустимых входных данныхЭтот порт является управляющим сигналом, который указывает, допустимы ли входные данные. Когда этим значением является 1
, блок получает значения от входного порта data. Когда этим значением является 0
, блок игнорирует значения от входного порта data.
Типы данных: Boolean
decimFactor
— Переменный уровень децимацииИспользуйте этот порт, чтобы динамически задать переменный уровень децимации в течение времени выполнения.
Это значение должно иметь тип данных ufix12
и целое число в диапазоне от 2 до значения параметров Decimation factor (R).
Чтобы включить этот порт, выберите параметр Variable decimation.
Типы данных: fixdt(0,12,0)
reset
— Очистите внутренние состоянияКогда этим значением является 1
, блок останавливает текущее вычисление и очищает все внутренние состояния. Когда этим значением является 0
и портом входа valid является 1
, блок запускает новую операцию фильтрации.
Чтобы включить этот порт, выберите параметр Enable reset input port.
Типы данных: Boolean
data
— CIC-подкошенные выходные данныеМожно задать тип данных этого выхода путем установки параметра Output data type.
Типы данных: int8
| int16
| int32
| fixed point
Поддержка комплексного числа: Да
valid
— Индикация относительно допустимых выходных данныхЭтот порт является управляющим сигналом, который указывает, допустимы ли данные из выходного порта data. Когда этим значением является 1
, блок возвращает допустимые данные по выходному порту data. Когда этим значением является 0
, значения на выходном порте data не допустимы.
Типы данных: Boolean
Variable decimation
— Переменный уровень децимацииoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы управлять блоком с переменным уровнем децимации, заданным от входного порта decimFactor.
Очистите этот параметр, чтобы управлять блоком с фиксируемой ставкой децимации, заданной от параметра Decimation factor (R).
Примечание
Для векторных входных параметров блок не поддерживает переменную децимацию.
Decimation factor (R)
— Фактор децимации
(значение по умолчанию) | целое число от 2 до 2 048Задайте уровень фактора децимации, с которым вы хотите десятикратно уменьшить вход.
Когда вы выбираете параметр Variable decimation, наборы параметров Decimation factor (R) верхняя граница области значений допустимых значений для входного порта decimFactor.
Differential delay (M)
— Дифференциальная задержка
(значение по умолчанию) | 2
Задайте дифференциальную задержку части расчески блока.
Number of sections (N)
— Количество интегратора и разделов расчески
(значение по умолчанию) | 1
| 3
| 4
| 5
| 6
Задайте количество разделов или в части расчески или в части интегратора блока.
Output data type
— Тип данных выходаFull precision
(значение по умолчанию) | Same word length as input
| Minimum section word lengths
Выберите тип данных для выходных данных.
Full precision
— Тип выходных данных перебрасывается парой слов длина, равная входному размеру слова плюс биты усиления.
Same word length as input
— Тип выходных данных перебрасывается парой слов длина, равная входному размеру слова.
Minimum section word lengths
— Тип выходных данных использует размер слова, который вы задаете в параметре Output word length. Когда вы выбираете эту опцию, блок применяет алгоритм Сокращения. Для получения дополнительной информации об алгоритме Сокращения, см. [1]. Эта опция не поддерживается, когда вы выбираете параметр Variable decimation.
Output word length
— Размер слова выхода
(значение по умолчанию) | целое число от 2 до 104Задайте размер слова выхода.
Примечание
Когда этим значением является 2
, 3, 4
, 5
, или
6
, блок может переполнить выходных данных.
Чтобы включить этот параметр, установите параметр Output data type на Minimum section word lengths
.
Gain correction
— Выведите компенсацию усиленияoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы компенсировать выходное усиление блока.
В зависимости от типа входа децимация вы задаете, и значение этого параметра, задержка изменений блока. Здесь, N означает количество разделов, и vecLen означает длину вектора.
Для скалярного входа с фиксированной децимацией (параметр Variable decimation очищен):
Когда вы очищаете этот параметр, задержка блока равняется 3 + такты N.
Когда вы выбираете этот параметр, задержка блока равняется 3 + N + 9 тактов.
Для скалярного входа с переменной децимацией (параметр Variable decimation выбран):
Когда вы очищаете этот параметр, задержка блока равняется 4 + такты N.
Когда вы выбираете этот параметр, задержка блока равняется 4 + N + 9 тактов.
Для векторного входа с фиксированной децимацией (параметр Variable decimation очищен):
Когда вы очищаете этот параметр, задержкой блока является floor
((vecLen – 1) * (N/vecLen)) + 1 + N + (2 + (vecLen + 1) * такты N.
Когда вы выбираете этот параметр, задержкой блока является floor
((vecLen – 1) * (N/vecLen)) + 1 + N + (2 + (vecLen + 1) * N) + 9 тактов.
Примечание
Для векторных входных параметров блок не поддерживает переменную децимацию.
Enable reset input port
— Сбросьте сигналoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы включить входной порт reset.
Передаточная функция децимирующего фильтра CIC
где:
H я - передаточная функция части интегратора CIC-фильтра.
H C является передаточной функцией части расчески CIC-фильтра.
N является количеством разделов. Количество разделов в CIC-фильтре задано как количество разделов или в части расчески или в части интегратора фильтра. Это значение не представляет общее количество разделов в целом фильтре.
R является фактором децимации.
M является дифференциальной задержкой.
Блоку CIC Decimation HDL Optimized показали структуру CIC-фильтра в этом рисунке. Структура состоит из разделов N каскадных интеграторов, фактора изменения уровня R и разделов N каскадных гребенчатых фильтров [1].
Можно определить местоположение единичной задержки в части интегратора CIC-фильтра или в feedforward или в пути к обратной связи. Эти две настройки дают к идентичной частотной характеристике фильтра. Однако числовые выходные параметры от этих двух настроек отличаются из-за задержки блока. Поскольку эта настройка предпочтена для реализации HDL, этот блок помещает единичную задержку в путь прямого распространения интегратора.
Блок прореживает этап интегратора выход с помощью R, или фиксируемая ставка децимации обеспечила, использование параметра Decimation factor (R) или переменного уровня децимации обеспечило использование входного порта decimFactor. На этапе downsampler блок использует в противоречии с количеством допустимые входные выборки, которые зависят от уровня децимации. Каждый раз, когда уровень децимации изменяется, блок сбрасывает и запускает новое вычисление со следующей выборки. Этот механизм препятствует тому, чтобы блок накопил ложные значения. Затем блок предоставляет подкошенный выход части расчески CIC-фильтра.
Усилением блока дают , где:
R является значением параметров Decimation factor (R).
M является значением параметров Differential delay (M).
N является значением параметров Number of sections (N).
Блок реализует коррекцию усиления в двух частях: крупное усиление и прекрасное усиление. В крупной коррекции усиления блок вычисляет значение сдвига, добавляет значение сдвига к дробным битам, чтобы создать числовой тип и выполняет оставленный сдвиг разряда и reinterpretcast. В прекрасной коррекции усиления блок делит остающееся усиление с крупным усилением, если усиление не является степенью 2. Затем блок умножается, откорректированное крупное усиление откорректировало значение обратным значением прекрасного усиления. Прежде чем блок начинает обрабатывать, весь возможный сдвиг и прекрасные значения усиления предварительно вычисляются первоначально и хранятся в массиве.
Можно изменить это уравнение как . В этом уравнении cGain является крупным усилением, и fGain является прекрасным усилением. Эти усиления даны этими уравнениями.
Чтобы выполнить коррекцию усиления, когда параметр Variable decimation выбран, блок устанавливает тип выходных данных, сконфигурированный с максимальным уровнем децимации, и сдвиги разряда уехали во все значения под максимальным уровнем децимации. Значение сдвига разряда равно .
Как блок выходные данные основан на выборе типа выходных данных. Рассмотрите блок с R, M и значениями N 8, 1, и 3, соответственно, и вход width 16. Выходной размер слова вычисляется как ,
где:
B IN является входным размером слова.
B OUT является выходным размером слова.
Когда вы устанавливаете параметр Output data type на Full precision
, блок выходные данные с размером слова 25 путем добавления девяти битов усиления во входной размер слова 16.
Когда вы устанавливаете параметр Output data type на Same word length as input
, выходные данные о блоке с размером слова 16, который является той же длиной как входной размер слова. Внутренний интегратор и этапы расчески используют тип данных полной точности с 25 битами.
Когда вы устанавливаете параметр Output data type на Minimum section word lengths
и параметр Output word length к 16
, блок выходные данные с размером слова 16. В этом случае блок изменяет битную ширину на каждом этапе, на основе алгоритма Сокращения.
Если значение параметров Output word length меньше количества битов, требуемых в блоке выход, младшие значащие биты (LSBs) в более ранних стадиях сокращены. Алгоритм Hogenauer [1] обеспечивает количество LSBs, чтобы отбросить на каждом этапе. Этот алгоритм минимизирует потерю информации в выходных данных.
Этот раздел показывает задержки блока для скалярного входа, когда блок управляется с фиксированными и переменными уровнями децимации и для векторного входа, когда блок управляется с фиксируемой ставкой децимации.
Этот раздел показывает выход блока для скалярного входа с различным R, M и значениями N.
Этот рисунок показывает выход блока для настройки по умолчанию (то есть, с фиксируемой ставкой децимации и R, M и значениями N 2, 1, и 2, соответственно). Блок возвращает допустимые выходные данные в каждом втором цикле на основе фиксированного значения параметров Decimation factor (R) 2
. Задержка блока является 5 тактами и вычисляется как 3 + N, где N является количеством разделов.
Этот рисунок показывает выход блока с фиксируемой ставкой децимации, R, M и значениями N 8, 1, и 3, соответственно, и выбранный параметр Gain correction. Блок возвращает допустимые выходные данные в каждом восьмом цикле на основе фиксированного значения параметров Decimation factor (R) 8
. Задержка блока является 15 тактами и вычисляется как 3 + N + 9, где N является количеством разделов.
Этот рисунок показывает выход блока с переменным уровнем децимации (входной порт decimFactor) значения 2, 4, и 8 и для M и значений N 1 и 3, соответственно. В этом случае параметр Gain correction очищен. Блок возвращает допустимые выходные данные во-вторых, в-четвертых, и восьмые циклы, соответствующие значениям порта decimFactor 2
, 4, и
8
, соответственно. Блок признает, что значение порта decimFactor изменяется только, когда входным портом valid является 1
. Задержка блока является 7 тактами и вычисляется как 4 + N, где N является количеством разделов.
Задержка блока для векторного входа вычисляется с помощью этой формулы: floor
((vecLen – 1) * (N/vecLen)) + 1 + N + 9 * Gain correction + (2 + (vecLen + 1) * N), где vecLen является длиной вектора и N, является количеством разделов.
Этот рисунок показывает выход блока для двухэлементного входа вектор-столбца с настройкой по умолчанию, (то есть, с фиксируемой ставкой децимации и R, M и значениями N 2, 1, и 2, соответственно). Задержка блока является 12 тактами.
Этот рисунок показывает выход блока для входа вектор-столбца с восемью элементами с фиксируемой ставкой децимации, R, M и значениями N 8, 1, и 3, соответственно, и выбранный параметр Gain correction. Задержка блока является 44 тактами.
Эффективность синтезируемого HDL-кода меняется в зависимости от вашей цели и опций синтеза. Эта таблица показывает результаты синтеза данных ресурсов и данных о производительности блока для скалярного входа с фиксированными и переменными уровнями децимации и для двухэлементного входа вектор-столбца с фиксируемой ставкой децимации, когда R, M и N равняются 2, 1, и 2, соответственно. Сгенерированный HDL предназначен на оценочную плату Xilinx® Zynq®-7000 ZC706.
Входные данные | Тип децимации | Срез LUTs | Регистры среза | Максимальная частота в МГц |
---|---|---|---|---|
Скаляр | Фиксированная процентная ставка | 101 | 166 | 711.74 |
Плавающий курс | 206 | 186 | 441.70 | |
Вектор | Фиксированная процентная ставка | 218 | 627 | 624.61 |
Ресурсы и частоты варьируются на основе типа входных данных, R, M, и значений N и других значений параметров, выбранных в маске блока. Используя векторный вход может увеличить пропускную способность, однако эта опция также увеличивает число аппаратных ресурсов, которые использует блок.
[1] Hogenauer, E. “Экономичный Класс Цифровых фильтров для Децимации и Интерполяции”. Транзакции IEEE на Акустике, Речи и Обработке сигналов 29, № 2 (апрель 1981): 155–62. https://doi.org/10.1109/TASSP.1981.1163535.
Этот блок поддерживает генерацию кода C/C++ для акселератора Simulink® и быстрых режимов Accelerator и для генерации компонента DPI.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Этот блок имеет одну, архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
dsp.CICCompensationDecimator
| dsp.CICCompensationInterpolator
| dsp.CICDecimator
| dsp.CICInterpolator
| dsp.HDLCICDecimation
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.