Сверхдискретизируйте и отфильтруйте входные сигналы
Фильтрация / Многоскоростные фильтры
dspmlti4
Блок FIR Interpolation сверхдискретизировал вход целым числом, сверхдискретизировавшим факторный L по первому измерению. КИХ-интерполятор (как показано в схематическом) концептуально состоит из upsampler, сопровождаемого КИХ-реконструкционным фильтром, который обычно является приближением идеального фильтра полосовой интерполяции. Чтобы спроектировать КИХ-реконструкционный фильтр, используйте designMultirateFIR
функция.
upsampler сверхдискретизировал каждый канал входа к более высокому уровню путем вставки L –1 нуль между выборками. КИХ-фильтр прямой формы, который следует, фильтрует каждый канал сверхдискретизированных данных. Получившийся сигнал дискретного времени имеет частоту дискретизации, которая является L раз от исходной частоты дискретизации.
Обратите внимание на то, что фактический алгоритм блока реализует многофазную структуру, эффективный эквивалент объединенной системы, изображенной в схеме. Для получения дополнительной информации см. Алгоритмы.
Можно использовать блок FIR Interpolation в триггируемых подсистемах, когда вы устанавливаете параметр Rate options на Enforce single-rate processing
.
При особых условиях этот блок также поддерживает генерацию кода SIMD. Для получения дополнительной информации смотрите Генерацию кода.
Чтобы задать коэффициенты фильтра, выберите режим, в котором вы хотите, чтобы блок FIR Interpolation действовал. Выберите режим в групповом блоке Coefficient source.
Dialog parameters — Введите информацию о фильтре, таком как коэффициенты в диалоговом окне блока.
Input port — Задайте коэффициенты фильтра как вход с блоком. Содействующие значения являются настраиваемыми (может измениться в процессе моделирования), в то время как их свойства должны остаться постоянными.
Filter object — Задайте фильтр с помощью dsp.FIRInterpolator
Система object™.
Auto (значение по умолчанию) — Выбирает коэффициенты фильтра КИХ фильтр Найквиста, предварительно спроектированный для коэффициента интерполяции, заданного в диалоговом окне блока.
Когда вы выбираете Dialog parameters, вы используете параметр FIR filter coefficients, чтобы задать коэффициенты числителя КИХ-передаточной функции фильтра H (z).
Можно сгенерировать КИХ-вектор коэффициентов фильтра, b = [b0, b1, …, миллиард], с помощью одной из функций создания фильтра 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
, ввод и вывод блока FIR Interpolation одного размера. Однако частота дискретизации выхода является временами L быстрее, чем тот из входа. В этом режиме блок обрабатывает Ki-by-N матричный вход как N независимые каналы. Блок интерполирует каждый столбец входа в зависимости от времени путем хранения формата кадра постоянным (Ki =Ko) при создании выходного периода системы координат (Tfo) времена L короче, чем период входного кадра (Tfo = Tfi/L).
Смотрите Пример 2 — Многоскоростная Основанная на системе координат Обработка для примера, который использует блок FIR Interpolation в этом режиме.
Когда вы устанавливаете параметр Input processing на Elements as channels (sample based)
, блок обрабатывает P-by-Q матричный вход как P *Q независимые каналы и интерполирует каждый канал в зависимости от времени. Выходной период расчета (Tso) является временами L короче, чем входной период расчета (Tso = Tsi/L), в то время как размеры ввода и вывода остаются идентичными.
Когда вы запускаете свои модели в Simulink®
SingleTasking
режим или установленный параметр Input processing на Columns as channels (frame based)
и параметр Rate options к Enforce single-rate processing
, блок FIR Interpolation всегда имеет определяющую задачу для нуля задержку. Zero-tasking latency означает, что блок распространяет первую отфильтрованную входную выборку (полученный во время t =0
) как первая выходная выборка. Та первая выходная выборка затем сопровождается L –1
интерполированные значения, вторая отфильтрованная входная выборка, и так далее.
Единственное время блок FIR Interpolation показывает задержку, - когда вы устанавливаете набор параметров 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 для сигналов фиксированной точки.
Можно установить коэффициент, продукт выход, аккумулятор и типы выходных данных в диалоговом окне блока, как обсуждено в разделе Dialog Box. Эта схема показывает, что входные данные хранятся во входном буфере с совпадающим типом данных и масштабирующийся как вход. Блок хранит отфильтрованные данные и любые начальные условия в буфере вывода с помощью типа выходных данных, и масштабируя это вы устанавливаете в диалоговом окне блока.
Когда по крайней мере одни из входных параметров ко множителю действительны, выход множителя находится в типе выходных данных продукта. Когда оба входных параметров ко множителю являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации на комплексном умножении, выполняемом этим блоком, смотрите Типы данных Умножения.
Примечание
Когда вход блока является фиксированной точкой, все внутренние типы данных являются подписанной фиксированной точкой.
В ex_firinterpolation_ref2 блок FIR Interpolation интерполирует одноканальный вход с форматом кадра 16
. Поскольку блок делает односкоростную обработку, и параметр Interpolation factor устанавливается на 4
, выход блока FIR Interpolation имеет формат кадра 64
. Как показано в следующем рисунке вход и выход блока FIR Interpolation имеют ту же частоту дискретизации.
В ex_firinterpolation_ref1 блок FIR Interpolation интерполирует одноканальный вход с периодом системы координат 1 секунды (Sample time = 1/64
и Samples per frame = 64
). Поскольку блок делает многоскоростную основанную на системе координат обработку, и параметр Interpolation factor устанавливается на 4
, выход блока FIR Interpolation имеет период системы координат 0.25
секунды. Как показано в следующем рисунке, ввод и вывод блока FIR Interpolation имеют тот же формат кадра, но частотой дискретизации выхода является 1/4
времена тот из входа.
ex_polyphaseinterp
модель иллюстрирует базовые многофазные реализации блока FIR Interpolation. Запустите модель и просмотрите результаты на осциллографе. Выход блока FIR Interpolation совпадает с выходом блока Polyphase Interpolation Filter.
ex_mrf_nlp
модель иллюстрирует использование блока FIR Interpolation во многих многоступенчатых многоскоростных фильтрах.
Блок FIR 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] Fliege, N. J. Многоскоростная цифровая обработка сигналов: многоскоростные системы, наборы фильтров, вейвлеты. Западный Сассекс, Англия: John Wiley & Sons, 1994.
[2] Orfanidis, Софокл Дж. Введение в обработку сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.
Порт | Поддерживаемые типы данных |
---|---|
Входной параметр |
|
Вывод |
|
КИХ-фильтр интерполяции реализуется эффективно с помощью многофазной структуры.
Чтобы вывести многофазную структуру, начните с передаточной функции КИХ-фильтра:
N +1 является длиной КИХ-фильтра.
Можно перестроить это уравнение можно следующим образом:
L является количеством многофазных компонентов, и его значение равняется коэффициенту интерполяции, который вы задаете.
Можно записать это уравнение как:
E0(zL), E1(zL)..., EL-1(zL) является многофазными компонентами КИХ-фильтра H (z).
Концептуально, КИХ-фильтр интерполяции содержит upsampler, сопровождаемый КИХ фильтр lowpass H (z).
Замените H (z) на его многофазное представление.
Вот многоскоростная благородная идентичность для интерполяции.
Применение благородной идентичности для интерполяции перемещает операцию повышающей дискретизации в после операции фильтрации. Это перемещение позволяет вам отфильтровать сигнал на более низком уровне.
Можно заменить оператор повышающей дискретизации, блок задержки и сумматор с переключателем коммутатора. Переключатель запускается на первой ветви 0 и приближается против часовой стрелки направление, каждый раз получая одну выборку от каждой ветви. Интерполятор эффективно выборки выходных параметров L для каждой входной выборки это получает. Следовательно частотой дискретизации при выходе КИХ-фильтра интерполяции является Lfs.