levinson

Рекурсия Левинсона-Дербина

Синтаксис

a = levinson(r)
a = levinson(r,n)
[a,e] = levinson(r,n)
[a,e,k] = levinson(r,n)

Описание

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

a = levinson(r) находит, что коэффициенты length(r)-1 заказывают авторегрессивный линейный процесс, который имеет r как его последовательность автокорреляции. r является действительным, или объедините детерминированную последовательность автокорреляции. Если r является матрицей, levinson находит коэффициенты для каждого столбца r и возвращает их в строках a. n=length(r)-1 является порядком по умолчанию полинома знаменателя A (z); то есть,      a = [1 a(2) ... a(n+1)]. Коэффициенты фильтра упорядочены в убывающих степенях z –1.

H(z)=1A(z)=11+a(2)z1++a(n+1)zn

a = levinson(r,n) возвращает коэффициенты для авторегрессивной модели порядка n.

[a,e] = levinson(r,n) возвращает ошибку прогноза, e, порядка n.

[a,e,k] = levinson(r,n) возвращает отражательные коэффициенты k как вектор-столбец длины n.

Примечание

k вычисляется внутренне, в то время как вычисление коэффициентов a, таким образом возвращая k одновременно более эффективно, чем преобразование a к k с tf2latc.

Примеры

свернуть все

Оцените коэффициенты авторегрессивного процесса, данного

x(n)=0.1x(n-1)-0.8x(n-2)+w(n).

a = [1 0.1 -0.8];

Сгенерируйте реализацию процесса путем фильтрации белого шума отклонения 0.4.

rng('default')
v = 0.4;
w = sqrt(v)*randn(15000,1);
x = filter(1,a,w);

Оцените функцию корреляции. Отбросьте значения корреляции в отрицательных задержках. Используйте рекурсию Левинсона-Дербина, чтобы оценить коэффициенты модели.

[r,lg] = xcorr(x,'biased');
r(lg<0) = [];

ar = levinson(r,numel(a)-1)
ar = 1×3

    1.0000    0.0957   -0.8026

Алгоритмы

levinson решает симметричную систему Теплица линейных уравнений

[r(1)r(2)*r(n)*r(2)r(1)r(n1)*r(n)r(2)r(1)] [a(2)a(3)a(n+1)]=[r(2)r(3)r(n+1)]

где   r = [ r (1)  ... r (n + 1) ] является входным вектором автокорреляции, и r (i) * обозначает сопряженное комплексное число r (i). Вход r обычно является вектором коэффициентов автокорреляции, где задержка 0 является первым элементом, r (1).

Примечание

Если r не является допустимой последовательностью автокорреляции, levinson, функциональная сила возвращает NaN s, даже если решение существует.

Алгоритм требует, чтобы O (n 2) перебросился и был таким образом намного более эффективным, чем команда наклонной черты влево MATLAB® для большого n. Однако функция levinson использует \ для младших разрядов, чтобы обеспечить самое быстрое выполнение.

Ссылки

[1] Ljung, Lennart. System Identification: теория для пользователя. 2-й Эд. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1999.

Расширенные возможности

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

| | | |

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

Для просмотра документации необходимо авторизоваться на сайте