exponenta event banner

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 должна быть одинаковой длины.

Примеры

свернуть все

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

Укажите фильтр Butterworth 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) z−1+⋯+b (nb + 1) z nba (1) + a (2) z−1+⋯+a (na + 1) z − na

Алгоритмы

stmcb функция пытается минимизировать квадрат ошибки между импульсной характеристикой h b (z )/a (z) и входным сигналом x.

mina,b∑i=0∞|x (i) h (i) | 2

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

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

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

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

Ссылки

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

[2] Люнг, Леннарт. Идентификация системы: теория для пользователя. 2-я редакция Серии информационных и системных наук Прентис Холл. Река Верхнее Седло, Нью-Джерси: Prentice Hall PTR, 1999.

См. также

| | |

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