Отфильтруйте и проредите входные сигналы
DSP System Toolbox / Фильтрующий / Многоскоростные фильтры
Поддержка HDL DSP System Toolbox / фильтрация
Блок FIR Decimation передискретизирует входные параметры вектора или матрицы по первому измерению. КИХ decimator (как показано в схематическом) концептуально состоит из сглаживающегося КИХ-фильтра, сопровождаемого downsampler. Чтобы спроектировать КИХ-фильтр сглаживания, используйте designMultirateFIR
функция.
КИХ-фильтр фильтрует данные в каждом канале входа с помощью КИХ-фильтра прямой формы. downsampler, который следует, прореживает каждый канал отфильтрованных данных путем взятия каждого M-th выборка и отбрасывания M – 1 выборка, которые следуют. M является значением фактора децимации, который вы задаете. Получившийся сигнал дискретного времени имеет частоту дискретизации, которая является 1/M раз от исходной частоты дискретизации.
Фактический алгоритм блока реализует КИХ прямой формы многофазная структура, эффективный эквивалент объединенной системы, изображенной в схеме. Для получения дополнительной информации см. Алгоритмы.
При особых условиях этот блок также поддерживает генерацию кода SIMD. Для получения дополнительной информации смотрите Генерацию кода.
In
— Ввод данныхЗадайте ввод данных как вектор или матрицу.
Когда параметр Rate options устанавливается на Enforce single-rate processing
, количество строк во входе должно быть кратным параметру Decimation factor.
Этот блок поддерживает входные параметры переменного размера. Таким образом, формат кадра (количество строк) сигнала может измениться в процессе моделирования, но количество каналов не может.
Этот порт без имени, пока вы не устанавливаете Coefficient source на Input port.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Поддержка комплексного числа: Да
Num
— Коэффициенты числителяЗадайте коэффициенты числителя КИХ-фильтра как вектор.
Передаточной функцией H (z) КИХ-фильтра дают:
Можно сгенерировать КИХ-вектор коэффициентов фильтра, b = [b0, b1, …, миллиард], с помощью одной из функций создания фильтра DSP System Toolbox™ такой как designMultirateFIR
, firnyquist
, firhalfband
, firgr
, или firceqrip
.
Чтобы действовать как эффективный фильтр сглаживания, коэффициенты обычно соответствуют фильтру lowpass с нормированной частотой среза, не больше, чем 1/M, где M является фактором децимации. Чтобы спроектировать такой фильтр, используйте designMultirateFIR
функция.
Содействующие значения, полученные через Num, являются настраиваемыми, то есть, они могут измениться в процессе моделирования, в то время как их свойства должны остаться постоянными.
Тип данных входа Num должен совпадать с типом данных входа In.
Входной порт Num появляется, когда вы устанавливаете Coefficient source как Input port.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Поддержка комплексного числа: Да
Out
— Decimator выходВыход блока FIR Decimator, возвращенного как вектор или матрица.
Когда Rate options установлен в:
Enforce single-rate processing
— Блок обеспечивает входную частоту дискретизации и десятикратно уменьшает сигнал путем уменьшения выходного формата кадра на коэффициент M.
Allow multirate processing
— Блок десятикратно уменьшает сигнал, таким образом, что выходная частота дискретизации является временами M медленнее, чем входная частота дискретизации.
Этот порт без имени, пока вы не устанавливаете Coefficient source на Input port.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Поддержка комплексного числа: Да
Coefficient source
— КИХ-содействующий источник фильтраЗадайте КИХ-содействующий источник фильтра как одно из следующего:
Dialog parameters – Задайте коэффициенты фильтра через параметр FIR filter coefficients в диалоговом окне блока.
Input port – Задайте коэффициенты фильтра через входной порт Num.
Filter object – Задайте фильтр с помощью dsp.FIRDecimator
Система object™.
'auto' Когда вы выбираете Auto, блочные конструкции КИХ decimator использование фактора децимации, который вы задаете в Decimation factor. designMultirateFIR
функционируйте проектирует фильтр и возвращает коэффициенты, используемые блоком.
Для получения дополнительной информации о создании фильтра смотрите Orfanidis [2].
FIR filter coefficients
— КИХ Lowpass фильтрует коэффициентыdesignMultirateFIR(1,2)
(значение по умолчанию) | векторЗадайте КИХ-коэффициенты фильтра lowpass, в убывающих степенях z, как вектор. По умолчанию, designMultirateFIR(1,2)
вычисляет коэффициенты фильтра.
Передаточной функцией H (z) КИХ-фильтра дают:
Можно сгенерировать КИХ-вектор коэффициентов фильтра, b = [b0, b1, …, миллиард], с помощью одной из функций создания фильтра DSP System Toolbox такой как designMultirateFIR
, firnyquist
, firhalfband
, firgr
, или firceqrip
.
Чтобы действовать как эффективный фильтр сглаживания, коэффициенты обычно соответствуют фильтру lowpass с нормированной частотой среза, не больше, чем 1/M, где M является фактором децимации. Чтобы спроектировать такой фильтр, используйте designMultirateFIR
функция.
Блок внутренне инициализирует все состояния фильтра, чтобы обнулить.
Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
Decimation factor
— Фактор децимации
(значение по умолчанию) | положительная скалярная величинаЗадайте целочисленный коэффициент M. Блок уменьшает частоту дискретизации входной последовательности этим фактором.
Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters, Input port или Auto.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Filter structure
— КИХ-структура фильтраDirect form
(значение по умолчанию) | Direct form transposed
Задайте КИХ-структуру фильтра как любой Direct form
или Direct form transposed
.
Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters, Input port или Auto.
Filter object
— Объект фильтраdsp.FIRDecimator
Укажите, что имя многоскоростного фильтра возражает, что вы хотите, чтобы блок реализовал. Необходимо задать фильтр как dsp.FIRDecimator
Системный объект.
Можно задать Системный объект непосредственно в диалоговом окне блока. В качестве альтернативы можно задать объект в MATLAB® переменная рабочей области и задает переменную в диалоговом окне блока.
Для получения информации о создании Системных объектов смотрите, Задают Объекты Базовой системы.
Этот параметр появляется только, когда вы устанавливаете Coefficient source на Filter object.
Input processing
— Метод, чтобы обработать входные сигналыColumns as channels (frame based)
(значение по умолчанию) | Elements as channels (sample based)
Задайте, как блок должен обработать вход. Можно установить этот параметр на одну из следующих опций:
Columns as channels (frame based)
— Когда вы выбираете эту опцию, блок обрабатывает каждый столбец входа как отдельный канал.
Elements as channels (sample based)
— Когда вы выбираете эту опцию, блок обрабатывает каждый элемент входа как отдельный канал.
Rate options
— Метод, которым блок десятикратно уменьшает входEnforce single-rate processing
(значение по умолчанию) | Allow multirate processing
Задайте метод, которым блок должен десятикратно уменьшить вход. Можно выбрать одну из следующих опций:
Enforce single-rate processing
— Когда вы выбираете эту опцию, блок обеспечивает входную частоту дискретизации и десятикратно уменьшает сигнал путем уменьшения выходного формата кадра на коэффициент M. Чтобы выбрать эту опцию, необходимо установить параметр Input processing на Columns as channels (frame based)
.
Когда вы устанавливаете параметр Rate options на Enforce single-rate processing
, можно использовать блок FIR Decimation в триггируемых подсистемах.
Allow multirate processing
— Когда вы выбираете эту опцию, блок десятикратно уменьшает сигнал, таким образом, что выходная частота дискретизации является временами M медленнее, чем входная частота дискретизации.
Output buffer initial conditions
— Начальные условия
(значение по умолчанию) | скаляр | матрицаКогда вы устанавливаете блок FIR Decimation на основанный на системе координат режим обработки, блок может показать задержку с одной системой координат. В случае задержки с одной системой координат этот параметр задает выход блока, пока первая отфильтрованная входная выборка не доступна. Задайте этот параметр как скалярное значение, которое будет применено ко всем каналам сигнала, или как матрица, содержащая одно значение для каждого канала.
Случаи задержки с одной системой координат могут произойти, когда размер входного кадра больше один, и вы устанавливаете Input processing и параметры Rate options блока FIR Decimation можно следующим образом:
Набор Input processing к Columns as channels (frame based)
Набор Rate options к Allow multirate processing
Для получения дополнительной информации о задержке в блоке FIR Decimation смотрите Задержку.
Этот параметр появляется только, когда вы конфигурируете блок, чтобы выполнить многоскоростную обработку установкой Rate options к Allow multirate processing
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
View Filter Response
— Просмотрите ответ фильтраНажмите на эту кнопку, чтобы открыть Инструмент Визуализации Фильтра (fvtool
) и отобразите ответ фильтра фильтра, заданного в диалоговом окне блока.
Rounding mode
— Режим RoundingFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Выберите округляющийся режим для операций фиксированной точки. Значением по умолчанию является Floor
. Коэффициенты фильтра не выполняют этот параметр и всегда вокруг к Nearest
.
Примечание
Настройки Rounding mode и Saturate on integer overflow не оказывают влияния на числовые результаты, когда все следующие условия существуют:
Product output является Inherit: Inherit via internal rule
Accumulator является Inherit: Inherit via internal rule
Output является Inherit: Same as accumulator
С этими настройками типа данных блок эффективно действует в режиме максимальной точности.
Saturate on integer overflow
— Насыщайте на целочисленном переполненииoff
(значение по умолчанию) | on
Когда вы выбираете этот параметр, блок насыщает результат своей операции фиксированной точки. Когда вы очищаете этот параметр, блок переносит результат своей операции фиксированной точки. Для получения дополнительной информации на saturate
и wrap
, смотрите режим переполнения для операций фиксированной точки.
Примечание
Rounding mode и параметры Saturate on integer overflow не оказывают влияния на числовые результаты, когда все эти условия соблюдают:
Типом данных Product output является Inherit: Inherit via internal rule
.
Типом данных Accumulator является Inherit: Inherit via internal rule
.
С этими настройками типа данных блок действует в режиме максимальной точности.
Coefficients Data Type
— Содействующий тип данныхInherit: Same word length as input
(значение по умолчанию) | fixdt(1,16)
| fixdt(1,16,0)
Задайте содействующий тип данных. Смотрите Типы данных Фиксированной точки и Умножения для рисунков, изображающих использование содействующего типа данных в этом блоке.
Можно установить этот параметр на одно из следующего:
Inherit: Same word length as input
fixdt(1,16,0)
или fixdt(1,16)
– Задайте объект типа данных.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Coefficients.
Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.
Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters
, Filter object
, или Auto
.
Когда Coefficient source установлен в Filter object
, параметр Coefficients автоматически устанавливается на Same word length as input
.
Coefficients Minimum
— Минимальное значение коэффициентов фильтра[]
(значение по умолчанию) | скалярЗадайте минимальное значение коэффициентов фильтра. Значением по умолчанию является []
(незаданный). Simulink® программное обеспечение использует это значение, чтобы выполнить автоматическое масштабирование типов данных с фиксированной точкой.
Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters
или Auto
.
Coefficients Maximum
— Максимальное значение коэффициентов фильтра[]
(значение по умолчанию) | скалярЗадайте максимальное значение коэффициентов фильтра. Значением по умолчанию является []
(незаданный). Программное обеспечение Simulink использует это значение, чтобы выполнить автоматическое масштабирование типов данных с фиксированной точкой.
Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters
или Auto
.
Product output Data Type
— Тип выходных данных продуктаInherit: Inherit via internal rule
(значение по умолчанию) | Inherit: Same as input
| fixdt(1,16,0)
Задайте тип выходных данных продукта. Смотрите Типы данных Фиксированной точки и Умножения для рисунков, изображающих использование типа выходных данных продукта в этом блоке.
Можно установить этот параметр на одно из следующего:
Inherit: Inherit via internal rule
Для получения дополнительной информации об этом правиле смотрите, Наследовались через Внутреннее Правило.
Inherit: Same as input
fixdt(1,16,0)
– Задайте объект типа данных.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Product output.
Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.
Когда Coefficient source установлен в Filter object
, параметр Product output автоматически устанавливается на Full precision
.
Accumulator Data Type
— Тип данных аккумулятораInherit: Inherit via internal rule
(значение по умолчанию) | Inherit: Same as input
| Inherit: Same as product output
| fixdt(1,16,0)
Задайте тип данных аккумулятора. Смотрите Фиксированную точку для рисунков, изображающих использование типа данных аккумулятора в этом блоке.
Можно установить этот параметр на одно из следующего:
Inherit: Inherit via internal rule
.
Для получения дополнительной информации об этом правиле смотрите, Наследовались через Внутреннее Правило.
Inherit: Same as input
Inherit: Same as product output
fixdt(1,16,0)
– Задайте объект типа данных.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Accumulator.
Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.
Когда Coefficient source установлен в Filter object
, параметр Accumulator автоматически устанавливается на Full precision
.
Output Data Type
— Тип выходных данныхInherit: Same as accumulator
(значение по умолчанию) | Inherit: Same as input
| Inherit: Same as product output
| fixdt(1,16,0)
Задайте тип выходных данных. Смотрите Фиксированную точку для рисунков, изображающих использование типа выходных данных в этом блоке.
Можно установить его на одно из следующего:
Inherit: Same as accumulator
Inherit: Same as input
Inherit: Same as product output
fixdt(1,16,0)
– Задайте объект типа данных.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Output.
Смотрите Типы данных Управления Сигналов (Simulink) для получения дополнительной информации.
Когда Coefficient source установлен в Filter object
, параметр Output автоматически устанавливается на Same as accumulator
.
Output Minimum
— Минимальное значение блока выводится[]
(значение по умолчанию) | скалярЗадайте минимальное значение, которое должен вывести блок. Значением по умолчанию является []
(незаданный). Программное обеспечение Simulink использует это значение, чтобы выполнить:
Проверка диапазона симуляции (см., Указывает Диапазоны сигнала (Simulink)),
Автоматическое масштабирование типов данных с фиксированной точкой
Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters
, Input port
, или Auto
.
Output Maximum
— Максимальное значение блока выводится[]
(значение по умолчанию) | скалярЗадайте максимальное значение, которое должен вывести блок. Значением по умолчанию является []
(незаданный). Программное обеспечение Simulink использует это значение, чтобы выполнить:
Проверка диапазона симуляции (см., Указывает Диапазоны сигнала (Simulink)),
Автоматическое масштабирование типов данных с фиксированной точкой
Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters
, Input port
, или Auto
.
Lock data type settings against changes by the fixed-point tools
— Препятствуйте тому, чтобы Fixed-Point Tool заменили типы данныхoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете в диалоговом окне блока.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Многофазная реализация КИХ decimator разделяет КИХ-импульсную характеристику фильтра lowpass в M различные подфильтры, где M является фактором субдискретизации или децимации. Для получения дополнительной информации о многофазной реализации см. Алгоритмы.
Позвольте h(n) обозначить КИХ-импульсную характеристику фильтра длины N +1 и x(n) входной сигнал. При десятикратном уменьшении фильтра выход на коэффициент M эквивалентен прореженной свертке:
Ключ к КПД многофазной фильтрации - то, что определенные входные значения только умножаются на избранные значения импульсной характеристики в прореженной свертке. Например, позволяя M = 2, входные значения x(0),x(2),x(4), ... объединен только с коэффициентами фильтра h(0),h(2),h(4),... и входные значения, x(1),x(3),x(5), ... объединен только с коэффициентами фильтра h(1),h(3),h(5),.... Путем разделения коэффициентов фильтра в два многофазных подфильтра никакие ненужные расчеты не выполняются в свертке. Выходные параметры сверток с многофазными подфильтрами чередованы и суммированы, чтобы дать к фильтру выход.
Следующий код демонстрирует, как создать два многофазных подфильтра для фильтра порядка 35 по умолчанию.
M = 2; Num = fir1(35,0.4); FiltLength = length(Num); Num = flipud(Num(:)); if (rem(FiltLength, M) ~= 0) nzeros = M - rem(FiltLength, M); Num = [zeros(nzeros,1); Num]; % Appending zeros end len = length(Num); nrows = len / M; PolyphaseFilt = flipud(reshape(Num, M, nrows).');
Столбцы PolyphaseFilt
подфильтры, содержащие две фазы фильтра в Num
. Для общего фактора субдискретизации M существуют фазы M и поэтому подфильтры M.
Когда вы устанавливаете параметр Input processing на Columns as channels (frame based)
, блок передискретизирует каждый столбец входа в зависимости от времени. В этом режиме блок может выполнить или односкоростную или многоскоростную обработку. Можно использовать параметр Rate options, чтобы задать, как блок передискретизирует вход:
Когда вы устанавливаете параметр Rate options на Enforce single-rate processing
, ввод и вывод блока имеет ту же частоту дискретизации. Чтобы десятикратно уменьшить выход при поддержании входной частоты дискретизации, блок передискретизирует данные в каждом столбце входа, таким образом, что формат кадра выхода (Ko) является 1/M временами тот из входа (Ko = Ki/M),
В этом режиме размер входного кадра, Ki, должен быть кратным Decimation factor, M.
Для примера односкоростной КИХ-децимации смотрите, что КИХ-Децимация Использует Односкоростную Обработку.
Когда вы устанавливаете параметр Rate options на Allow multirate processing
, ввод и вывод блока FIR Decimation одного размера, но частота дискретизации выхода является временами M медленнее, чем тот из входа. В этом режиме блок обрабатывает Ki-by-N матричный вход как N независимые каналы. Блок десятикратно уменьшает каждый столбец входа в зависимости от времени путем хранения формата кадра постоянным (Ki =Ko) и создания выходного периода системы координат (Tfo) времена M дольше, чем период входного кадра (Tfo = M *Tfi).
Смотрите, что КИХ-Децимация Использует Многоскоростную Основанную на системе координат Обработку для примера, который использует блок FIR Decimation в этом режиме.
Когда вы устанавливаете параметр Input processing на Elements as channels (sample based)
, блок обрабатывает P-by-Q матричный вход как P *Q независимые каналы и десятикратно уменьшает каждый канал в зависимости от времени. Выходной период расчета (Tso) является временами M дольше, чем входной период расчета (Tso = M*Tsi), и размеры ввода и вывода идентичны.
Когда вы используете блок FIR Decimation в основанном на выборке режиме обработки, блок всегда имеет определяющую задачу для нуля задержку. Zero-tasking latency означает, что блок распространяет первую отфильтрованную входную выборку (полученный во время t = 0) как первая выходная выборка. Та первая выходная выборка затем сопровождается отфильтрованными входными выборками M +1, 2M+1, и так далее.
Когда вы используете блок FIR Decimation в основанном на системе координат режиме обработки с форматом кадра, больше, чем один, блок может показать задержку с одной системой координат. Случаи задержки с одной системой координат могут произойти, когда размер входного кадра больше один, и вы устанавливаете Input processing и параметры Rate options блока FIR Decimation можно следующим образом:
Input processing = Columns as channels (frame based)
Rate options = Allow multirate processing
В случаях задержки с одной системой координат можно задать значение первого Ki строки выхода путем установки параметра Output buffer initial conditions. Значением по умолчанию параметра Output buffer initial conditions является 0
. Однако можно ввести матрицу, содержащую одно значение для каждого канала входа или скалярное значение, которое будет применено ко всем каналам. Первая отфильтрованная входная выборка (сначала отфильтрованная строка входной матрицы) появляется в выходе как демонстрационный Ki + 1. Та выборка затем сопровождается отфильтрованными входными выборками M + 1, 2M + 1, и так далее.
Примечание
Для получения дополнительной информации о задержке и режимах управления задачами Simulink, смотрите Избыточную Алгоритмическую Задержку (Определяющий задачу для Задержки) и Основанное на времени Планирование и Генерация кода (Simulink Coder).
КИХ-децимирующий фильтр реализован эффективно с помощью многофазной структуры. Для получения дополнительной информации о многофазных фильтрах смотрите Многофазные Подфильтры.
Чтобы вывести многофазную структуру, начните с передаточной функции КИХ-фильтра:
N +1 является длиной КИХ-фильтра.
Можно перестроить это уравнение можно следующим образом:
M является количеством многофазных компонентов, и его значение равняется фактору децимации, который вы задаете.
Можно записать это уравнение как:
E0 (zM), E1 (zM)..., EM-1 (zM) многофазные компоненты КИХ-фильтра H (z).
Концептуально, КИХ-децимирующий фильтр содержит КИХ-фильтр lowpass, сопровождаемый downsampler.
Замените H (z) на его многофазное представление.
Вот многоскоростная благородная идентичность для децимации.
Применение благородной идентичности для децимации перемещает операцию субдискретизации в перед операцией фильтрации. Это перемещение позволяет вам отфильтровать сигнал на более низком уровне.
Можно заменить задержки и фактор децимации во входе с переключателем коммутатора. Переключатель запускается на первой ветви 0 и перемещается в направление против часовой стрелки как показано в этой схеме. Аккумулятор при выходе получает обработанные входные выборки от каждой ветви многофазной структуры и накапливает эти обработанные выборки, пока переключатель не переходит к ветви 0. Когда переключатель переходит к ветви 0, аккумулятор выводит накопленное значение.
Когда первая входная выборка поставляется, переключатель кормит этим входом ветвь 0, и decimator вычисляет первое выходное значение. Когда более входные выборки входят, переключатель приближается против часовой стрелки направление посредством ветвей M −1, M −2, и полностью переходить 0, поставляя одну выборку за один раз каждой ветви. Когда переключатель приходит к ветви 0, decimator выходным параметрам следующий набор выходных значений. Этот процесс продолжается, когда данные удерживают прибытие. Каждый раз переключатель приходит к ветви 0, decimator выходным параметрам y[m]. decimator эффективно выводит одну выборку для каждого M выборки, которые это получает. Следовательно частотой дискретизации при выходе КИХ-децимирующего фильтра является fs/M.
[1] Fliege, N. J. Многоскоростная цифровая обработка сигналов: многоскоростные системы, наборы фильтров, вейвлеты. Западный Сассекс, Англия: John Wiley & Sons, 1994.
[2] Orfanidis, Софокл Дж. Введение в обработку сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.
Сгенерированный код использует memcpy
или memset
функции (string.h
) при определенных обстоятельствах.
Блок FIR Decimation поддерживает использование генерации кода SIMD технология Intel AVX2 при этих условиях:
Filter structure установлен в Direct form
.
Input processing установлен в Columns as channels (frame based)
.
Rate options установлен в Enforce single-rate processing
.
Входной сигнал с действительным знаком с действительными коэффициентами фильтра.
Входной сигнал с комплексным знаком с действительными или комплексными коэффициентами фильтра.
Входной сигнал имеет тип данных single
или double
.
Технология SIMD значительно улучшает производительность сгенерированного кода.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Для КИХ-децимирующего фильтра с благоприятными для оборудования управляющими сигналами и симуляцией задержки HDL в Simulink, или для комплексных данных с комплексными коэффициентами, используют блок FIR Decimation HDL Optimized вместо этого блока.
HDL Coder поддерживает опции Coefficient source Dialog parameters, Filter object или Auto. Программируемые коэффициенты не поддерживаются.
HDL Coder поддерживает использование векторных входных параметров с блоками FIR Decimation, где каждый элемент вектора представляет выборку вовремя. Можно использовать входной вектор до 512 выборок. Основанные на системе координат типы входных и выходных данных фиксированной точки поддержки внедрения и полная точность использования внутренние типы данных. Выход является вектор-столбцом уменьшаемого размера, соответствуя вашему фактору децимации. Можно использовать действительные входные сигналы с действительными коэффициентами, комплексные входные сигналы с действительными коэффициентами или действительные входные сигналы с комплексными коэффициентами.
Соедините сигнал вектор-столбца с входным портом блока FIR Decimation.
Задайте Input processing как Columns as channels (frame based)
.
Установите Rate options на Enforce single-rate processing
.
Щелкните правой кнопкой по блоку и откройте HDL Code> HDL Block Properties. Установите Architecture на Frame Based
. Блок реализует параллельную архитектуру HDL. Смотрите Основанную на системе координат Архитектуру (HDL Coder).
Чтобы уменьшать область или скорость увеличения, блок FIR Decimator поддерживает оптимизацию блочного уровня.
Щелкните правой кнопкой по блоку или подсистеме, чтобы открыть соответствующее диалоговое окно HDL Properties и установить свойства оптимизации.
Последовательные архитектуры | Чтобы использовать оптимизацию блочного уровня, чтобы уменьшать аппаратные ресурсы, установите Architecture на Когда вы задаете SerialPartition для блока FIR Decimator, устанавливаете Filter structure на |
Распределенная арифметика | Чтобы минимизировать множители, заменяя их на LUTs и сдвиговые регистры, используйте реализацию фильтра распределенной арифметики (DA). Смотрите Распределенную Арифметику для Фильтров HDL (HDL Coder). Когда вы выбираете |
Конвейеризация | Чтобы улучшить тактовую частоту, используйте AddPipelineRegisters, чтобы использовать конвейерное дерево сумматора, а не линейный сумматор по умолчанию. Эта опция поддерживается для |
AddPipelineRegisters | Вставьте регистр трубопровода между этапами расчета в фильтре. См. также AddPipelineRegisters (HDL Coder). |
CoeffMultipliers | Задайте использование оптимизации канонической цифры со знаком (CSD), чтобы уменьшить область фильтра, заменив содействующие множители на логику shift-and-add. Когда вы выбираете полностью параллельную реализацию фильтра, можно установить CoeffMultipliers на |
DALUTPartition | Задайте распределенные арифметические разделы LUT частичного продукта как вектор из размеров каждого раздела. Сумма всех векторных элементов должна быть равна длине фильтра. Максимальный размер для раздела является 12 касаниями. Установите DALUTPartition на скалярное значение, равное длине фильтра генерировать код DA без разделов LUT. См. также DALUTPartition (HDL Coder). |
DARadix | Задайте, сколько распределенных арифметических битных сумм вычисляется параллельно. Основание DA 8 ( |
MultiplierInputPipeline | Задайте количество настроек канала связи, чтобы добавить во входных параметрах множителя фильтра. См. также MultiplierInputPipeline (HDL Coder). |
MultiplierOutputPipeline | Задайте количество настроек канала связи, чтобы добавить во множителе фильтра выходные параметры. См. также MultiplierOutputPipeline (HDL Coder). |
SerialPartition | Задайте разделы для частично последовательных или каскадно-последовательных реализаций фильтра как вектор из длин каждого раздела. Для полностью последовательной реализации, установленной этот параметр на длину фильтра. См. также SerialPartition (HDL Coder). |
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Необходимо обнулить Initial conditions. Генерация HDL-кода не поддерживается для ненулевых начальных состояний.
Когда вы выбираете Dialog parameters, следующие опции фиксированной точки не поддерживаются для генерации HDL-кода:
Slope and Bias scaling
Опции CoeffMultipliers поддерживаются только при использовании полностью параллельной архитектуры. Когда вы выбираете последовательную архитектуру, CoeffMultipliers скрыт от диалогового окна HDL Block Properties.
Программируемые коэффициенты не поддерживаются.
Основанные на системе координат входные фильтры не поддерживаются для:
Восстановленные и активированные подсистемы
Комплексные входные сигналы с комплексными коэффициентами. Можно использовать или комплексные входные сигналы и действительные коэффициенты, или объединить коэффициенты и действительные входные сигналы.
Совместное использование и потоковая передача оптимизации
Следующая схема показывает типы данных, используемые в блоке FIR Decimation для сигналов фиксированной точки.
Эта схема показывает, что данные хранятся во входном буфере с совпадающим типом данных и масштабирующийся как вход. Блок хранит отфильтрованные данные и любые начальные условия в буфере вывода с помощью типа выходных данных, и масштабируя это вы устанавливаете в диалоговом окне блока.
Когда по крайней мере одни из входных параметров ко множителю действительны, выход множителя находится в типе выходных данных продукта. Когда оба входных параметров ко множителю являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации на комплексном умножении, выполняемом этим блоком, смотрите Типы данных Умножения.
Примечание
Когда вход блока является фиксированной точкой, все внутренние типы данных являются подписанными значениями фиксированной точки.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.