Отфильтруйте и проредите входные сигналы
Фильтрация / Многоскоростные фильтры
dspmlti4
Блок FIR Decimation передискретизирует векторные или матричные входные параметры по первому измерению. КИХ decimator (как показано в схематическом) концептуально состоит из сглаживающегося КИХ-фильтра, сопровождаемого downsampler. Чтобы спроектировать КИХ-фильтр сглаживания, используйте designMultirateFIR
функция.
КИХ-фильтр фильтрует данные в каждом канале входа с помощью КИХ-фильтра прямой формы. downsampler, который следует, прореживает каждый канал отфильтрованных данных путем отбрасывания M –1 последовательная выборка после каждой выборки, которая сохраняется. M является значением фактора децимации, который вы задаете. Получившийся сигнал дискретного времени имеет частоту дискретизации, которая является 1/M раз от исходной частоты дискретизации.
Обратите внимание на то, что фактический алгоритм блока реализует многофазную структуру, эффективный эквивалент объединенной системы, изображенной в схеме. Для получения дополнительной информации см. Алгоритмы.
Можно использовать блок FIR Decimation в триггируемых подсистемах, когда вы устанавливаете параметр Rate options на Enforce single-rate processing
.
Этот блок поддерживает вход переменного размера. Это означает, что, в то время как блок симулирует, формат кадра (количество строк) может измениться. Выходные размерности всегда равняются тем из входного сигнала.
При особых условиях этот блок также поддерживает генерацию кода SIMD. Для получения дополнительной информации смотрите Генерацию кода.
Чтобы задать коэффициенты фильтра, выберите режим, в котором вы хотите, чтобы блок FIR Decimation действовал. Выберите режим в групповом блоке Coefficient source.
Dialog parameters — Введите информацию о фильтре, таком как структура и коэффициенты, в диалоговом окне блока.
Input port — Задайте коэффициенты фильтра как вход с блоком. Содействующие значения являются настраиваемыми (может измениться в процессе моделирования), в то время как их свойства должны остаться постоянными.
Filter object — Задайте фильтр с помощью dsp.FIRDecimator
Система object™.
Auto (значение по умолчанию) — Выбирает коэффициенты фильтра КИХ фильтр Найквиста, предварительно спроектированный для фактора децимации, заданного в диалоговом окне блока.
Когда вы выбираете Dialog parameters, вы используете параметр FIR filter coefficients, чтобы задать коэффициенты числителя КИХ-передаточной функции фильтра H (z).
Можно сгенерировать КИХ-вектор коэффициентов фильтра, b = [b0, b1, …, миллиард], с помощью одной из функций создания фильтра DSP System Toolbox™ такой как designMultirateFIR
, firnyquist
, firhalfband
, firgr
, или firceqrip
.
Чтобы действовать как эффективный фильтр сглаживания, коэффициенты обычно соответствуют фильтру lowpass с нормированной частотой среза, не больше, чем 1/M, где M является фактором децимации. Чтобы спроектировать такой фильтр, используйте designMultirateFIR
функция.
Блок внутренне инициализирует все состояния фильтра, чтобы обнулить.
Когда вы выбираете Auto, блочные конструкции КИХ decimator с фактором децимации, заданным в Decimation factor. designMultirateFIR
функционируйте проектирует фильтр и возвращает коэффициенты, используемые блоком.
Для получения дополнительной информации о создании фильтра смотрите Orfanidis [2].
Когда вы устанавливаете параметр 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.
Для примера односкоростной КИХ-Децимации смотрите Пример 1 — Односкоростная Обработка.
Когда вы устанавливаете параметр Rate options на Allow multirate processing
, ввод и вывод блока FIR Decimation одного размера, но частота дискретизации выхода является временами M медленнее, чем тот из входа. В этом режиме блок обрабатывает Ki-by-N матричный вход как N независимые каналы. Блок десятикратно уменьшает каждый столбец входа в зависимости от времени путем хранения формата кадра постоянным (Ki =Ko) и создания выходного периода системы координат (Tfo) времена M дольше, чем период входного кадра (Tfo = M *Tfi).
Смотрите Пример 2 — Многоскоростная Основанная на системе координат Обработка для примера, который использует блок 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).
Следующая схема показывает типы данных, используемые в блоке FIR Decimation для сигналов фиксированной точки.
Можно установить коэффициент, продукт выход, аккумулятор и типы выходных данных в диалоговом окне блока, как обсуждено в разделе Dialog Box. Эта схема показывает, что данные хранятся во входном буфере с совпадающим типом данных и масштабирующийся как вход. Блок хранит отфильтрованные данные и любые начальные условия в буфере вывода с помощью типа выходных данных, и масштабируя это вы устанавливаете в диалоговом окне блока.
Когда по крайней мере одни из входных параметров ко множителю действительны, выход множителя находится в типе выходных данных продукта. Когда оба входных параметров ко множителю являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации на комплексном умножении, выполняемом этим блоком, смотрите Типы данных Умножения.
Примечание
Когда вход блока является фиксированной точкой, все внутренние типы данных являются подписанными значениями фиксированной точки.
В ex_firdecimation_ref2 модели блок FIR Decimation десятикратно уменьшает одноканальный вход с форматом кадра 64. Поскольку блок делает односкоростную обработку, и параметр Decimation factor устанавливается на 4
, выход блока FIR Decimation имеет формат кадра 16. Как показано в следующем рисунке вход и выход блока FIR Decimation имеют ту же частоту дискретизации.
В ex_firdecimation_ref1 модели блок FIR Decimation десятикратно уменьшает одноканальный вход с периодом системы координат одной секунды. Поскольку блок делает многоскоростную основанную на системе координат обработку, и параметр Decimation factor устанавливается на 4
, периодом системы координат выхода является 4
секунды. Как показано в следующем рисунке вход и выход блока FIR Decimation имеют тот же формат кадра, но частота дискретизации выхода в четыре раза больше чем это входа.
ex_polyphasedec
модель иллюстрирует базовые многофазные реализации блока FIR Decimation. Запустите модель и просмотрите результаты на осциллографе. Выход блока FIR Decimation совпадает с выходом блока Polyphase Decimation Filter.
ex_mrf_nlp
модель иллюстрирует использование блока FIR Decimation в нескольких многоступенчатых многоскоростных фильтрах.
Блок FIR Decimation может действовать в четырех различных режимах. Выберите режим в групповом блоке Coefficient source.
Dialog parameters — Введите информацию о фильтре, таком как структура и коэффициенты, в маске блока.
Input port — Задайте коэффициенты фильтра с входным портом Num. Входной порт Num появляется, когда вы выбираете опцию Input port. Содействующие значения, полученные через Num, являются настраиваемыми (может измениться в процессе моделирования), в то время как их свойства должны остаться постоянными.
Filter object — Задайте фильтр с помощью dsp.FIRDecimator
Системный объект.
Auto (значение по умолчанию) — Выбирает коэффициенты КИХ фильтр Найквиста, предварительно спроектированный для фактора децимации, заданного в диалоговом окне блока.
Различные элементы появляются на КИХ-диалоговом окне блока Децимации в зависимости от того, выбираете ли вы Dialog parameters, Input port, Filter object или Auto в групповом блоке Coefficient source.
Задайте характеристики фильтра в диалоговом окне
Обеспечьте пропускают коэффициенты через Input port
[1] Fliege, N. J. Многоскоростная цифровая обработка сигналов: многоскоростные системы, наборы фильтров, вейвлеты. Западный Сассекс, Англия: John Wiley & Sons, 1994.
[2] Orfanidis, Софокл Дж. Введение в обработку сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.
Порт | Поддерживаемые типы данных |
---|---|
Входной параметр |
|
Вывод |
|
КИХ-децимирующий фильтр реализован эффективно с помощью многофазной структуры. Для получения дополнительной информации о многофазных фильтрах смотрите Многофазные Подфильтры.
Чтобы вывести многофазную структуру, начните с передаточной функции КИХ-фильтра:
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.