stmcb

Вычислите линейную модель с помощью итерации Steiglitz-McBride

Описание

пример

[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 заменяя hY и x должна быть та же длина.

Примеры

свернуть все

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

Задайте 6-й порядок Фильтр Баттерворта с нормированной частотой на 3 дБ 0.2π рад/отсчет.

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

Используйте итерацию Steiglitz-McBride, чтобы аппроксимировать фильтр системой 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 object and other objects of type uitoolbar, uimenu. The axes object 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 (z) /a (z) и входным сигналом x.

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

Функция выполняет итерации использования двух шагов:

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

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

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

Ссылки

[1] Steiglitz, K. и Л. Макбрайд. “Метод для идентификации линейных систем”. IEEE® Транзакции на Автоматическом управлении 10, № 4 (октябрь 1965): 461–64. https://doi.org/10.1109/TAC.1965.1098181.

[2] Ljung, Lennart. System Identification: Теория для Пользователя. 2-й редактор информация о Prentice Hall и Системный Научный Ряд. Верхний Сэддл-Ривер, NJ: PTR Prentice Hall, 1999.

Смотрите также

| | |

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