Преобразование и фильтрация входных сигналов
Фильтрация/многомерные фильтры
dspmlti4
Блок FIR Interpolation увеличивает вход по целому числу коэффициенту повышающей дискретизации L вдоль первой размерности. Интерполятор конечной импульсной характеристики (как показано на схеме) концептуально состоит из усилителя, за которым следует конечная импульсная характеристика антивизуальный фильтр, который обычно является приближением идеальной полосовой интерполяции фильтра. Для разработки конечной импульсной характеристики против визуализации используйте designMultirateFIR
функция.
Усилитель увеличивает каждый канал входа до более высокой скорости, вставляя L -1 нули между выборками. Фильтр конечной импульсной характеристики прямой формы, который следует, фильтрует каждый канал данных с повышенной дискретизацией. Полученный сигнал дискретного времени имеет частоту дискретизации, которая L умножается на исходную частоту дискретизации.
Обратите внимание, что фактический алгоритм блока реализует полифазу структуру, эффективный эквивалент объединенной системы, изображенной на схеме. Для получения дополнительной информации см. «Алгоритмы».
Можно использовать блок конечной импульсной характеристики внутри триггируемых подсистем, когда вы устанавливаете параметр Rate options равным Enforce single-rate processing
.
При определенных условиях этот блок также поддерживает генерацию кода SIMD. Для получения дополнительной информации смотрите Генерация кода.
Чтобы задать коэффициенты фильтра, выберите режим, в котором должен работать блок Интерполяции конечной импульсной характеристики. Выберите режим в поле группы Coefficient source.
Dialog parameters - введите информацию о фильтре, например, коэффициенты в диалоговом окне блока.
Input port - Задайте коэффициенты фильтра как вход в блок. Значения коэффициентов настраиваются (могут меняться во время симуляции), в то время как их свойства должны оставаться постоянными.
Filter object - Задайте фильтр используя dsp.FIRInterpolator
Системные object™.
Auto (по умолчанию) - выбор коэффициентов фильтра конечной импульсной характеристики Nyquist, предварительно настроенных для коэффициента интерполяции, заданного в диалоговом окне блока.
Когда вы выбираете Dialog parameters, вы используете параметр FIR filter coefficients, чтобы задать коэффициенты числителя передаточной функции конечной импульсной характеристики H (z).
Можно сгенерировать вектор коэффициента конечной импульсной характеристики, b = [b0, b1,..., bN], используя одну из функций проекта DSP System Toolbox™ фильтра, таких какdesignMultirateFIR
, firnyquist
, firhalfband
, firgr
или firceqrip
.
Чтобы действовать как эффективный фильтр против визуализации, коэффициенты обычно соответствуют lowpass с нормализованной частотой среза не больше, чем обратная величина коэффициента интерполяции. Чтобы спроектировать такой фильтр, используйте designMultirateFIR
функция.
Блок внутренне инициализирует все состояния фильтра до нуля.
Когда вы выбираете Auto, блок проектирует конечную импульсную характеристику интерполятор с коэффициентом интерполяции, заданным в Interpolation factor. designMultirateFIR
функция проектирует фильтр и возвращает коэффициенты, используемые блоком.
Для получения дополнительной информации о конструкции создания фильтра Orfanidis [2].
Когда вы устанавливаете параметр Input processing равным Columns as channels (frame based)
блок переизбирает каждый столбец входа с течением времени. В этом режиме блок может выполнить или односкоростную, или многосветную обработку. Можно использовать параметр Rate options, чтобы задать, как блок повторяет вход:
Когда вы устанавливаете параметр Rate options равным Enforce single-rate processing
вход и выход блока имеют одинаковую частоту дискретизации. Чтобы интерполировать вывод при сохранении входной частоты дискретизации, блок повторно собирает данные в каждом столбце входного сигнала так, чтобы размер кадра выходного сигнала (Ko) был в L раз больше, чем размер входного сигнала (Ko = Ki * L).
Пример односкоростной конечной импульсной характеристики интерполяции см. в примере 1 - Односкоростная обработка.
Когда вы устанавливаете параметр Rate options равным Allow multirate processing
, входы и выход блока конечной импульсной характеристики Interpolation имеют одинаковый размер. Однако скорость дискретизации выхода в L раза быстрее, чем у входа. В этом режиме блок обрабатывает Ki -by N матричный вход как N независимые каналы. Блок интерполирует каждый столбец входного сигнала с течением времени, сохраняя размер кадра постоянным (Ki = Ko), при этом делая период выходного кадра (Tfo) L раз короче, чем период входного кадра (Tfo = Tfi / L).
Смотрите Пример 2 - Многоуровневая обработка на основе фрейма для примера, который использует конечную импульсную характеристику блок Интерполяции в этом режиме.
Когда вы устанавливаете параметр Input processing равным Elements as channels (sample based)
блок обрабатывает P -by Q матрицы вход как P * Q независимые каналы и интерполирует каждый канал с течением времени. Период выходной выборки (Tso) в L раза короче, чем период входной выборки (Tso = Tsi/ L), в то время как входной и выходной размеры остаются идентичными.
Когда вы запускаете свои модели в Simulink®
SingleTasking
mode или установите параметр Input processing равным Columns as channels (frame based)
и параметр Rate options для Enforce single-rate processing
Блок интерполяции конечной импульсной характеристики всегда имеет задержку с нулевой задачей. Zero-tasking latency означает, что блок распространяет первую отфильтрованную входом выборку (полученную в момент времени t = 0
) как первая выходная выборка. После этой первой выборки выхода следуют L - 1
интерполированные значения, вторая отфильтрованная входная выборка и так далее.
Единственный раз, когда блок Интерполяции конечной импульсной характеристики показывает задержку, когда вы задаете набор параметров Rate options Allow multirate processing
и запустите свои модели в Simulink MultiTasking
режим. Величина задержки для многозадачной операции в многозадачном режиме зависит от настройки параметра Input processing, как показано в следующей таблице.
Вход | Время ожидания |
---|---|
| L выборки |
| L системы координат (Ki выборок на кадр) |
Когда блок показывает задержку, начальное условие по умолчанию является нулем. Кроме того, можно использовать параметр Output buffer initial conditions, чтобы задать матрицу начальных условий, содержащую одно значение для каждого канала или скаляра начальное условие, которое будет применено ко всем каналам. Блок масштабирует Output buffer initial conditions по Interpolation factor и выводит масштабированные начальные условия, пока не станет доступна первая фильтрованная входная выборка.
Когда блок находится в режиме обработки на основе дискретизации, блок выводит масштабированные начальные условия в начале каждого канала, сразу же следуют первая отфильтрованная входная выборка, затем L -1 интерполированные значения и так далее .
Когда блок находится в режиме обработки на основе фрейма и использует начальное условие по умолчанию нулевое, первые строки Ki * L выхода содержат нули, где Ki является размером входного кадра. Первая отфильтрованная входом выборка (первая отфильтрованная строка входа матрицы) появляется в выходе как выборка Ki * L + 1
. Затем за этим значением следуют L интерполированные значения -1, вторая отфильтрованная входная выборка и так далее.
Примечание
Для получения дополнительной информации о задержках и режимах задачи Simulink, смотрите Избыточную алгоритмическую задержку (Задержка Задачи) и Основанное на времени Планирование и Генерация кода (Simulink Coder).
Следующая схема показывает типы данных, используемые в блоке FIR Interpolation для сигналов с фиксированной точкой.
Можно задать коэффициент, выход продукта, аккумулятор и типы выходных данных в диалоговом окне блока, как обсуждается в разделе Диалоговое окно. Эта схема показывает, что входные данные хранятся во входном буфере с совпадающим типом данных и масштабированием, что и вход. Блок хранит отфильтрованные данные и любые начальные условия в буфере выхода с помощью типа данных выходов и масштабирования, которые вы задаете в диалоговом окне блока.
Когда, по меньшей мере, один из входов в умножитель является вещественным, выход умножителя находится в типе выходных данных продукта. Когда оба входа в умножитель являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации о комплексном умножении, выполненном этим блоком, смотрите Типы данных умножения.
Примечание
Когда вход блока является фиксированной точкой, все внутренние типы данных являются подписанными фиксированной точкой.
В ex_firinterpolation_ref2 блок Интерполяции конечной импульсной характеристики интерполирует одноканальный вход с форматом кадра 16
. Потому что блок выполняет односкоростную обработку, и параметр Interpolation factor установлен на 4
выход блока конечной импульсной характеристики Interpolation имеет формат кадра 64
. Как показано на следующем рисунке, вход и выход блока интерполяции конечной импульсной характеристики имеют ту же частоту дискретизации.
В ex_firinterpolation_ref1 блок Интерполяции конечной импульсной характеристики интерполирует одноканальный вход с периодом системы координат 1 секунду (Sample time = 1/64
и Samples per frame = 64
). Потому что блок выполняет многократную обработку на основе кадра, и параметр Interpolation factor установлен на 4
, выход блока Интерполяции конечной импульсной характеристики имеет период системы координат 0.25
секунд. Как показано на следующем рисунке, вход и выход блока интерполяции конечной импульсной характеристики имеют тот же формат кадра, но скорость дискретизации вывода 1/4
умножает значение входного входа.
The ex_polyphaseinterp
модель иллюстрирует базовые полифазные реализации блока Конечной Импульсной Характеристики. Запустите модель и просмотрите результаты на возможностях. Выход блока конечной импульсной характеристики Interpolation совпадает с выходом блока Полифазы Interpolation Filter.
The ex_mrf_nlp
модель иллюстрирует использование блока конечной импульсной характеристики в ряде многоступенчатых многоскоростных фильтров.
Блок конечной импульсной характеристики Interpolation может работать в четырех различных режимах. Выберите режим в поле группы Coefficient source.
Dialog parameters - введите информацию о фильтре, например коэффициенты, в маску блока.
Input port - Задайте коэффициенты фильтра с Num входным портом. Входной порт Num появляется при выборе опции Input port. Значения коэффициентов, полученные посредством Num, настраиваются (могут меняться во время симуляции), в то время как их свойства должны оставаться постоянными.
Filter object - Задайте фильтр используя dsp.FIRInterpolator
Системный объект.
Auto (по умолчанию) - выбор коэффициентов конечной импульсной характеристики фильтра Найквиста, предварительно заданный для коэффициента интерполяции, заданного в диалоговом окне блока.
Различные элементы появляются в диалоговом окне FIR Interpolation блока в зависимости от того, выбираете ли вы Dialog parameters, Input port, Filter object или Auto в Coefficient source рамке группы.
Задайте характеристики фильтра в диалоговом окне
Обеспечьте коэффициенты фильтра через Input port
[1] Флиге, Н. Дж. Multirate Digital Signal Processing: Multirate Systems, Filter Banks, вейвлеты. Западный Сассекс, Англия: John Wiley & Sons, 1994.
[2] Orfanidis, Sophocles J. Введение в обработку сигналов. Upper Saddle River, NJ: Prentice Hall, 1996.
Порт | Поддерживаемые типы данных |
---|---|
Вход |
|
Выход |
|
Интерполяционный фильтр конечной импульсной характеристики реализован эффективно с помощью структуры полифазы.
Чтобы вывести полифазную структуру, начните с передаточной функции конечной импульсной характеристики:
N + 1 - длина конечной импульсной характеристики фильтра.
Можно переставить это уравнение следующим образом:
L - количество полифазных компонентов, и его значение равняется заданному вами коэффициенту интерполяции.
Можно записать это уравнение как:
E0 (zL), E1 (zL),..., EL-1 (zL) являются полифазными компонентами конечной импульсной характеристики H (z).
Концептуально конечная импульсная характеристика интерполяционный фильтр содержит усилитель, за которым следует конечная импульсная характеристика lowpass фильтр H (z).
Замените H (z) своим полифазным представлением.
Вот многорасовые благородные тождества для интерполяции.
Применение благородных тождеств для интерполяции перемещает операцию увеличения дискретизации на после операции фильтрации. Это перемещение позволяет вам фильтровать сигнал с более низкой скоростью.
Можно заменить оператор повышающей дискретизации, блок задержки и сумматор на коммутатор. Переключатель запускается на первой ветви 0 и перемещается в направлении против часовой стрелки, каждый раз получая по одной выборке от каждой ветви. Интерполятор эффективны выходы L выборки для каждого полученного входа выборки. Следовательно, скорость дискретизации на выходе конечной импульсной характеристики интерполяционного фильтра Lfs.