Документация Engee

islinphase

Определяет наличие у фильтра линейной фазы.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • flag = islinphase(b,a) — возвращает логический выходной сигнал, равный true, если указанный фильтр имеет линейную фазу. Укажите фильтр с коэффициентами числителя b и коэффициентами знаменателя a.

  • flag = islinphase((B,A,g),"ctf") — возвращает true, если фильтр, заданный как каскадная передаточная функция с коэффициентами числителя B, коэффициентами знаменателя A и масштабным значением g, имеет линейную фазу.

  • flag = islinphase(sos) — возвращает true, если фильтр, заданный матрицей секций второго порядка sos, имеет линейную фазу.

  • flag = islinphase(___,tol) — задает допуск tol, который определяет, насколько близкими должны быть два числа, чтобы их можно было считать равными.

Аргументы

Входные аргументы

# b,a — коэффициенты передаточной функции
векторы

Details

Коэффициенты передаточной функции, заданные как векторы. Значения b и a представляют собой коэффициенты полинома в числителе и знаменателе соответственно.

Типы данных

Float64, Float32

Поддержка комплексных чисел

Да

# B,A — коэффициенты каскадной передаточной функции
скаляры | векторы | матрицы

Details

Коэффициенты каскадной передаточной функции, заданные как скаляры, векторы или матрицы. В матрицах B и A перечислены коэффициенты числителя и знаменателя каскадной передаточной функции соответственно.

Матрица B должна иметь размер на , а матрица A на , где

  • — количество секций фильтра;

  • — порядок числителей фильтра;

  • — порядок знаменателей фильтра.

Дополнительную информацию о формате каскадной передаточной функции и матрицах коэффициентов см. в разделе Задание цифровых фильтров в формате CTF.

Если какой-либо элемент матрицы A[:,1] не равен единице, то функция islinphase нормализует коэффициенты фильтра по A[:,1]. В этом случае A[:,1] должно быть ненулевым.
Типы данных

Float64, Float32

Поддержка комплексных чисел

Да

# g — масштабные значения
скаляр | вектор

Details

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

Функция islinphase применяет усиление к секциям фильтра с помощью функции scaleFilterSections в зависимости от способа задания аргумента g:

  • скаляр — функция равномерно распределяет усиление по всем секциям фильтра;

  • вектор — функция применяет первые значений усиления к соответствующим секциям фильтра и равномерно распределяет последнее значение усиления по всем секциям фильтра.

Типы данных

Float64, Float32

# sos — представление секций второго порядка
матрица

Details

Представление секций второго порядка, заданное как матрица размером , где — количество секций второго порядка. Матрица

представляет собой секции второго порядка функции :

Типы данных

Float64, Float32

Поддержка комплексных чисел

Да

# tol — допуск
e2/3 | скаляр

Details

Допуск, заданный как положительный скаляр. Допуск указывает, насколько близкими должны быть два числа, чтобы их можно было считать равными.

Типы данных

Float32, Float64

Выходные аргументы

# flag — флаг линейной фазы
true | false

Details

Флаг линейной фазы, возвращаемый в виде логического значения. Функция возвращает true, если на входе находится фильтр с минимальной фазой.

Типы данных

Bool

Дополнительно

Каскадные передаточные функции

Details

Разбиение цифрового БИХ-фильтра на каскадные секции повышает его численную устойчивость и снижает восприимчивость к ошибкам квантования коэффициентов. Каскадная форма передаточной функции , выраженная через передаточных функций , имеет вид

butter ru

Задание цифровых фильтров в формате CTF

Details

В формате CTF можно проектировать цифровые фильтры для анализа, визуализации и фильтрации сигналов. Фильтр задается путем перечисления его коэффициентов B и A. Также можно указать коэффициент масштабирования фильтра по секциям, задав скалярную или векторную величину g.

Коэффициенты фильтра

При задании коэффициентов в виде -строчных матриц

предполагается, что фильтр задан как последовательность из каскадных передаточных функций, так что полная передаточная функция фильтра имеет вид

где порядок числителя фильтра, а порядок знаменателя.

  • Если и заданы как векторы, предполагается, что базовая система представляет собой односекционный БИХ-фильтр ( ), где представляет собой числитель передаточной функции, а — ее знаменатель.

  • Если — скаляр, предполагается, что фильтр представляет собой каскад всеполюсных БИХ-фильтров, причем общий коэффициент усиления системы каждого каскада равен .

  • Если — скаляр, предполагается, что фильтр представляет собой каскад КИХ-фильтров, причем общий коэффициент усиления системы каждого каскада равен .

Коэффициенты и усиление

Если есть общий масштабный коэффициент усиления или несколько масштабных коэффициентов усиления, вынесенных за пределы значений коэффициентов фильтра, вы можете указать коэффициенты и усиление в виде кортежа (B, A, g). Масштабирование секций фильтра особенно важно при работе с арифметикой с фиксированной точкой, чтобы гарантировать, что выходные сигналы каждой секции фильтра имеют схожие уровни амплитуды, что помогает избежать неточностей в частотной характеристике фильтра из-за ограниченной точности вычислений.

Коэффициент усиления может быть скалярным общим коэффициентом усиления или вектором коэффициентов усиления секций.

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

  • Если коэффициент усиления является вектором, он должен содержать на один элемент больше, чем количество секций фильтра в каскаде. Каждое из первых масштабных значений применяется к соответствующей секции фильтра, а последнее значение применяется равномерно ко всем секциям каскадного фильтра.

Если вы зададите матрицы коэффициентов фильтра и вектор коэффициентов усиления в виде

то предполагается, что передаточная функция системы фильтра имеет вид

Литература

  1. Lyons, Richard G. Understanding Digital Signal Processing. Upper Saddle River, NJ: Prentice Hall, 2004.