Системные модели в дискретном времени являются представительными схемами для цифровых фильтров. MATLAB® техническое вычислительное окружение поддерживает несколько системные модели в дискретном времени, которые описаны в следующих разделах:
transfer function является базовым представлением цифрового фильтра в Z-области, выражающим фильтр как отношение двух полиномов. Это основная модель дискретного времени для этого тулбокса. Описание модели передаточной функции для Z-преобразования разностного уравнения цифрового фильтра
Здесь константы b (i) и a (i) являются коэффициентами фильтра, и порядок фильтра является максимальным из n и m. В окружение MATLAB эти коэффициенты хранятся в двух векторах (векторы-строки по соглашению), одном векторе-строке для числителя и одном для знаменателя. Для получения дополнительной информации о форме передаточной функции см. Фильтры и передаточные функции.
Факторизованная или zero-pole-gain форма передаточной функции
По соглашению полиномиальные коэффициенты сохраняются в векторы-строки и полином корнях в векторы-столбцы. В нули , полюса и усиления форме, поэтому, нуль и положения полюса для числителя и знаменателя передаточной функции находятся в векторах-столбцах. Факторизированный коэффициент усиления передаточной функции k является скаляром MATLAB.
poly
и roots
функции преобразуются между полиномиальными и нулями , полюса и усиления. Для примера простого БИХ фильтр
b = [2 3 4]; a = [1 3 3 1];
Нули и полюсы этого фильтра
q = roots(b)
p = roots(a)
% Gain factor
k = b(1)/a(1)
Возвращаясь к исходным полиномам,
bb = k*poly(q) aa = poly(p)
Обратите внимание, что b
и a
в этом случае представление передаточной функции:
Для b = [2 3 4]
, а roots
функция пропускает нуль для z, равной 0. На самом деле функция пропускает полюсы и нули для z, равные 0, всякий раз, когда входная передаточная функция имеет больше полюсов, чем нули, или наоборот. В большинстве случаев это приемлемо. Чтобы обойти задачу, однако, просто добавьте нули, чтобы сделать векторы той же длиной перед использованием roots
функция; для примера, b = [b 0]
.
Всегда возможно представлять цифровой фильтр или систему разностных уравнений как набор разностных уравнений первого порядка. В матрице или state-space форме можно записать уравнения как
где u
является входом, x
является вектором состояния и y
- выход. Для одноканальных систем, A
является m
-by- m
матрица, где m
- порядок фильтра, B
является вектор-столбец, C
является вектор-строка и D
является скаляром. Обозначение в пространстве состояний особенно удобна для многоканальных систем, где входные u
и выход y
стать векторами и B
, C
, и D
стать матрицами.
Представление пространства состояний легко распространяется на окружение MATLAB. A
, B
, C
, и D
являются прямоугольными массивами; Функции MATLAB обрабатывают их как отдельные переменные.
Взятие Z-преобразования уравнений пространства состояний и их объединение показывает эквивалентность форм пространства состояний и передаточной функции:
Не волнуйтесь, если вы не знакомы с представлением линейных систем в пространстве состояний. Некоторые алгоритмы создания фильтра используют внутреннюю форму пространства состояний, но не требуют никаких знаний концепций пространства состояний, чтобы использовать их успешно. Однако, если ваши приложения широко используют обработку сигналов, основанную на пространстве состояний, смотрите продукт Control System Toolbox™ для комплексной библиотеки инструментов пространства состояний.
Каждая передаточная функция также имеет соответствующее представление partial fraction expansion или формы остатка, заданное как
при H (z) не имеет повторяющихся полюсов. Здесь n - степень полинома знаменателя рациональной передаточной функции b (z )/ a (z). Если r является шестом кратности sr, то H (z) имеет условия вида:
The Signal Processing Toolbox™ residuez
функция в преобразует передаточные функции в и из формы частичного расширения дроби. The "z
"в конце residuez
обозначает z-область или дискретную область. residuez
возвращает полюса в вектор-столбец p
, остатки, соответствующие полюсам в векторе-столбце r
и любая неподходящая часть исходной передаточной функции в вектор-строку k
. residuez
определяет, что два полюса одинаковы, если амплитуда их различия меньше 0,1 процента от любой из величин полюсов.
Расширение частичной дроби возникает при обработке сигнала как один из методов нахождения обратного Z-преобразования передаточной функции. Для примера, частичное расширение дроби
является
b = [-4 8]; a = [1 6 8]; [r,p,k] = residuez(b,a)
который соответствует
Чтобы найти обратное Z-преобразование H (z), найдите сумму обратных Z-преобразований двух аддендов H (z), задавая причинно-импульсную характеристику:
Чтобы подтвердить это в среде MATLAB, введите
imp = [1 0 0 0 0];
resptf = filter(b,a,imp)
respres = filter(r(1),[1 -p(1)],imp)+...
filter(r(2),[1 -p(2)],imp)
Любая передаточная функция H (z) имеет second-order sections представление
где L количество секций второго порядка, которые описывают систему. Окружение MATLAB представляет форму секции второго порядка системы дискретного времени как массив L-на-6 sos
. Каждая строка sos
содержит одну секцию второго порядка, где элементами строки являются три числителя и три коэффициента знаменателя, которые описывают секцию второго порядка.
Существует много способов представлять фильтр в форме секции второго порядка. Благодаря тщательному соединению полюса и нулевых пар, упорядоченному расположению секций в каскаде и мультипликативному масштабированию секций, можно уменьшить усиление шума квантования и избежать переполнения в некоторых реализациях фильтра с фиксированной точкой. Функции zp2sos
и ss2sos
, описанный в линейной системе Transformations, выполните сопряжение с нулем полюса, масштабирование сечения и упорядоченное расположение сечения.
Примечание
Все преобразования секции второго порядка Signal Processing Toolbox применяются только к цифровым фильтрам.
Для дискретного полнополюсного или полностью нулевого фильтра N-го порядка, описанного полиномиальными коэффициентами a (n), n = 1 , 2 ,..., N + 1, существует N соответствующих решетчатых структурных коэффициентов k (n) , n = 1, 2,.. ., N. Параметры k (n) также называются коэффициентами отражения фильтра. Учитывая эти коэффициенты отражения, можно реализовать дискретный фильтр, как показано ниже.
Конечная импульсная характеристика и БИХ структурные схемы фильтра решетки
Для общего фильтра с нулем полюса БИХ, описанного полиномиальными коэффициентами a и b, существуют оба коэффициента решетки k (n) для знаменателя a и лестничные коэффициенты v (n) для числителя b. Решетчатый/лестничный фильтр может быть реализован как
Схема решетчатого/лестничного фильтра
Функция тулбокса tf2latc
принимает конечные импульсные характеристики или БИХ фильтр в полиномиальной форме и возвращает соответствующие коэффициенты отражения. Пример конечной импульсной характеристики в полиномиальной форме
b = [1.0000 0.6149 0.9899 0.0000 0.0031 -0.0082];
Представление решетки (коэффициента отражения) этого фильтра
k = tf2latc(b)
Для БИХ величина коэффициентов отражения обеспечивает легкую проверку устойчивости. Если все коэффициенты отражения, соответствующие полиному, имеют величину менее 1, все корни этого полинома находятся внутри модуля круга. Для примера рассмотрим БИХ фильтр с полиномом числителя b
сверху и полином знаменателя:
a = [1 1/2 1/3];
Представление решетки фильтра является
[k,v] = tf2latc(b,a);
Потому что abs(k)
<1
для всех коэффициентов отражения в k
, фильтр стабильен.
Функция latc2tf
вычисляет полиномиальные коэффициенты для фильтра из его решетчатых (отражательных) коэффициентов. Учитывая вектор коэффициента отражения k
, соответствующая полиномиальная форма
b = latc2tf(k);
Решетка или решетка/лестничная структура коэффициенты могут использоваться, чтобы реализовать фильтр с помощью функции latcfilt
.
При обработке сигнала свертка двух векторов или матриц эквивалентна фильтрации одного из входных операндов другим. Эта связь позволяет представлять цифровой фильтр как convolution matrix.
Учитывая любой вектор, функция тулбокса convmtx
генерирует матрицу, скалярное произведение которой с другим вектором эквивалентно свертке двух векторов. Сгенерированная матрица представляет цифровой фильтр, который можно применить к любому вектору соответствующей длины; внутренняя размерность операндов должен согласиться вычислить скалярное произведение.
Матрица свертки для вектора b
, представляющий коэффициенты числителя для цифрового фильтра,
b = [1 2 3]; x = randn(3,1); C = convmtx(b',3);
Два эквивалентных способа свертки b
с x
являются следующими.
y1 = C*x; y2 = conv(b,x);