stmcb

Вычислите линейную модель с помощью итерации Штейглица-Макбрайда

Описание

пример

[b,a] = stmcb(h,nb,na) находит коэффициенты b и a системного b (z )/ a (z) с приблизительной импульсной характеристикой h, точно nb нули, и точно na полюса.

[b,a] = stmcb(h,nb,na,niter) использует niter итераций. Количество итераций по умолчанию 5.

[b,a] = stmcb(h,nb,na,niter,ai) использует вектор ai как начальная оценка коэффициентов знаменателя.

[b,a] = stmcb(y,x,___) находит коэффициенты с выходным сигналом системы y и входные x замена h. y и x должна быть одинаковой длины.

Примеры

свернуть все

Аппроксимируйте импульсную характеристику БИХ с системой более низкого порядка.

Задайте фильтр Баттерворта 6-го порядка с нормированной частотой 3-dB 0.2π рад/образец.

d = designfilt('lowpassiir','FilterOrder',6, ...
    'HalfPowerFrequency',0.2,'DesignMethod','butter');

Используйте итерацию Штейглица-Макбрайда, чтобы аппроксимировать фильтр с системой 4-го порядка.

h = impz(d);
[bb,aa] = stmcb(h,4,4);

Постройте график частотных характеристик двух систем.

hfvt = fvtool(d,bb,aa,'Analysis','freq');
legend(hfvt,'Butterworth','Steiglitz-McBride')

Figure Filter Visualization Tool - Magnitude Response (dB) and Phase Response contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) and Phase Response contains 2 objects of type line. These objects represent Butterworth: Magnitude, Steiglitz-McBride: Magnitude.

Входные параметры

свернуть все

Импульсная характеристика, заданная как вектор.

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

Порядки числителя и знаменателя, заданные как положительные целочисленные скаляры.

  • Если вам нужна полнополюсная передаточная функция, задайте nb как 0.

  • Если требуется полностью нулевая передаточная функция, задайте na как 0.

Типы данных: single | double

Количество итераций, заданное как положительная скалярная величина.

Начальная оценка коэффициентов знаменателя, заданная в виде вектора. Если не указано, stmcb функция использует выход prony с порядком числителя, установленным на 0.

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

Выходной сигнал системы, заданный как вектор.

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

Входной сигнал системы, заданный как вектор.

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

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

свернуть все

БИХ коэффициенты фильтра, возвращенные как векторы-строки. b имеет длину nb + 1 и a имеет длину na + 1. Коэффициенты фильтра упорядочены в нисходящих степенях z.

H(z)=B(z)A(z)=b(1)+b(2)z1++b(nb+1)znba(1)+a(2)z1++a(na+1)zna

Алгоритмы

stmcb функционируйте пытается минимизировать квадратичную невязку между импульсной характеристикой h b (<reservedrangesplaceholder3>) /a (<reservedrangesplaceholder1>) и входным сигналом x.

mina,bi=0|x(i)h(i)|2

Функция итерации с помощью двух шагов:

  1. Он предварительно фильтрует h и x использование 1/ a (z).

  2. Он решает систему линейных уравнений для b и a использование\.

Функция повторяет этот процесс niter времени. Функция не проверяет, b ли и a коэффициенты сходились менее чем в niter итераций.

Ссылки

[1] Steiglitz, K., and L. McBride. Метод идентификации линейных систем. IEEE® Сделки по автоматическому управлению 10, № 4 (октябрь 1965): 461-64. https://doi.org/10.1109/TAC.1965.1098181.

[2] Ljung, Lennart. Система идентификации: теория для пользователя. 2nd ed. Prentice Hall Information and System Sciences Series. Upper Saddle River, NJ: Prentice Hall PTR, 1999.

См. также

| | |

Представлено до R2006a