Allpass Filter

Односекционный или многосекционный allpass фильтр

  • Библиотека:
  • DSP System Toolbox/Фильтрация/Реализация фильтра

  • Allpass Filter block

Описание

Блок Allpass Filter фильтрует каждый канал входного сигнала независимо с помощью односекционного или многосекционного (каскадного) allpass фильтра. Можно реализовать фильтр allpass с помощью минимального умножителя, волнового цифрового фильтра или решетчатой структуры.

В форме минимального умножения блок использует минимальное количество необходимых умножителей, n, с 2 единицами n задержки и 2 n сумматорами. В форме волнового цифрового фильтра блок использует только n умножителя и n модулей задержки за счет 3 n сумматоров. Структура решетки использует 2 n множителя, n единиц задержки и 2 n сумматора. Для получения дополнительной информации об этих структурах см. «Алгоритмы».

Порты

Вход

расширить все

Входные данные, которые передаются в allpass фильтр. Блок принимает реальные или комплексные многоканальные входы, то есть m -by - n входные входы размера, где m ≥ 1 и n ≥ 1. Блок также принимает входы переменного размера. То есть можно изменить размер каждого входного канала во время симуляции. Однако количество каналов не может измениться.

Этот порт не называется, пока вы не задаете Internal allpass structure Minimum multiplier или Lattice, и выберите параметр Specify coefficients from input port.

Типы данных: single | double
Поддержка комплексного числа: Да

Этот порт вводит коэффициенты allpass-фильтра. Когда вы задаете Internal allpass structure Minimum multiplierпорт coeffs принимает матрицы размера N -by-1 или N -by-2. Когда вы задаете Internal allpass structure Latticeпорт coeffs принимает вектор-столбец N на 1 или вектор-строку N 1 байт.

Зависимости

Этот порт появляется, когда вы задаете Internal allpass structure Minimum multiplier или Lattice, и выберите параметр Specify coefficients from input port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Выход

расширить все

Размер отфильтрованного выхода совпадает с размером входа.

Типы данных: single | double
Поддержка комплексного числа: Да

Параметры

расширить все

Если параметр указан как настраиваемый, то можно изменить его значение во время симуляции.

  • Minimum multiplier - Эта структура использует минимальное количество необходимых умножителей, n, с 2 единицами задержки n и 2 сумматорами n. Коэффициенты к этой структуре заданы через параметр Allpass polynomial coefficients.

  • Wave Digital Filter - Структура использует n множителя и n модулей задержки, за счет 3 n сумматоров. Коэффициенты к этой структуре заданы через параметр Wave Digital Filter allpass coefficients.

  • Lattice - Структура использует 2 n множителя, n единиц задержки и 2 n сумматора. Коэффициенты к этой структуре заданы через параметр Lattice allpass coefficients.

Для получения дополнительной информации об этих структурах см. «Алгоритмы».

Когда вы устанавливаете этот флажок и устанавливаете Internal allpass structure равным Minimum multiplier, allpass полиномиальные коэффициенты входа через coeffs порт. Когда вы снимаете этот флажок, полиномиальные коэффициенты allpass задаются в диалоге блоков через параметр Allpass polynomial coefficients.

Когда вы устанавливаете этот флажок и устанавливаете Internal allpass structure равным Lattice, решетчатые allpass коэффициенты входа через coeffs порт. Когда вы снимаете этот флажок, коэффициенты allpass решетки задаются в диалоговом окне блока через параметр Lattice allpass coefficients.

Зависимости

Этот параметр применяется, когда вы устанавливаете Internal allpass structure на Minimum multiplier или Lattice.

Задайте действительные коэффициенты полиномиального фильтра allpass в форме минимального множителя как N-на-1 матрица или N -на-2 матрица.

  • N -by-1 матрица - Блок реализует N allpass первого порядка.

  • N -by-2 матрица - Блок реализует N allpass второго порядка.

Значение по умолчанию, [ -2^(-1/2), 1/2 ], определяет стабильный фильтр allpass второго порядка с полюсами и нулями в ±π/3 в z - самолет.

Настраиваемый: Да

Зависимости

Чтобы включить этот параметр, установите Internal allpass structure равным Minimum multiplier и очистите параметр Specify coefficients from input port.

Задайте действительные коэффициенты фильтра allpass в форме волнового цифрового фильтра. Коэффициенты могут быть N -на-1 матрицу для N allpass первого порядка и N -на-2 матрицу для allpass N второго порядка. Значение по умолчанию, [1/2, -2^(1/2)/3], является преобразованной версией значения по умолчанию полиномиальных коэффициентов allpass. Это значение вычисляется с помощью allpass2wdf(Allpass polynomial coefficients). Эти коэффициенты определяют тот же стабильный фильтр allpass второго порядка, что и, когда структура allpass установлена на Minimum multiplier.

Настраиваемый: Да

Зависимости

Чтобы включить этот параметр, установите Internal allpass structure равным Wave Digital Filter.

  • on - При установке этого флажка последний раздел рассматривается как первый порядок. Кроме того, второй элемент последней строки матрицы N -by-2 игнорируется.

  • off - Если этот флажок не установлен, последний раздел рассматривается как второй порядок.

Зависимости

Чтобы включить этот параметр, установите Internal allpass structure равным Minimum multiplier или Wave Digital Filter.

Задайте действительные или комплексные коэффициенты allpass в качестве коэффициентов отражения решетки. Значение по умолчанию, [-2^(1/2)/3, 1/2], является преобразованной и транспонированной версией значения по умолчанию полиномиальных коэффициентов allpass. Это значение вычисляется с помощью transpose(tf2latc(1, [1 A])), где A - значение, заданное в Allpass polynomial coefficients.

Настраиваемый: Да

Зависимости

Чтобы включить этот параметр, установите Internal allpass structure равным Lattice и очистите параметр Specify coefficients from input port.

Открывает инструмент визуализации фильтра, fvtool, и отображает величину ответ фильтра allpass. Ответ основан на параметрах. Изменения, внесенные в эти параметры, обновляются fvtool.

Чтобы обновить величину ответ во время fvtool выполняется, изменяет параметры блоков и кликает Apply.

Чтобы просмотреть величину ответ и фазовый отклик одновременно, нажмите кнопку Magnitude and Phase responses на панели инструментов.

В этом примере величины реакция плоская, и фазовый отклик изменяется с частотами. Эта изменяющийся фазовый отклик имеет приложения в эквализации фазы, узкополосной фильтрации и многократной фильтрации. Можно реализовать фильтр lowpass с помощью параллельной комбинации двух фильтров allpass, которые имеют 180 степени сдвига фазы относительно друг друга.

  • Code generation

    Симулируйте модель с использованием сгенерированного кода C. Первый раз, когда вы запускаете симуляцию, Simulink® генерирует код С для блока. Код С повторно используется для последующих симуляций, пока модель не меняется. Эта опция требует дополнительного времени запуска, но обеспечивает более высокую скорость симуляции, чем Interpreted execution.

  • Interpreted execution

    Симулируйте модель с помощью MATLAB®  интерпретатор. Эта опция сокращает время запуска, но имеет более низкую скорость симуляции, чем Code generation.

Характеристики блоков

Типы данных

double | single

Многомерные сигналы

No

Сигналы переменного размера

Yes

Алгоритмы

расширить все

Передаточная функция allpass-фильтра задается как

H(z)=c(n)+c(n1)z1+...+zn1+c(1)z1+...+c(n)zn.

c - вектор allpass полиномиальных коэффициентов. Порядок, n, передаточной функции - это длина вектора c.

В форме минимального множителя и цифровой форме волны фильтр allpass реализован как каскад секций второго порядка (biquad) или секций первого порядка. Когда коэффициенты заданы как матрица N-на-2, каждая строка матрицы задает коэффициенты фильтра второго порядка. Последний элемент последней строки может быть проигнорирован на основе конечной настройки первого порядка. Когда коэффициенты заданы как матрица N -на-1, каждый элемент матрицы задает коэффициент фильтра первого порядка. Каскад всех секций фильтра образует allpass фильтр.

В форме решетки коэффициенты заданы как вектор.

Эти структуры являются в вычислительном отношении более экономичными и структурно более стабильными по сравнению с типовыми фильтрами БИХ, такими как df1, df1t, df2, df2t. Для всех структур allpass-фильтр может быть односекционным или многосекционным (каскадным) фильтром. Различные разделы могут иметь различные порядки, но все они реализованы в соответствии с одной структурой.

Ссылки

[1] Регалия, Филипп А., Санджит К. Митра и П. П. Вайдьянатхан. Цифровой универсальный фильтр: универсальный базовый блок обработки сигналов. Материалы IEEE. 76, № 1 (1988): 19-37.

[2] Лутовац, М., Д. Тошич, и Б. Эванс. Создание фильтра для обработки сигнала с использованием MATLAB и Mathematica. Верхняя Седл-Ривер, Нью-Джерси: Prentice Hall, 2001.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2016b