levinson

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

a = [1 0.1 -0.8 -0.27];

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

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

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

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

[ar,e] = levinson(r,numel(a)-1)
ar = 1×4

    1.0000    0.0772   -0.7954   -0.2493

e = 0.3909

Оцените отражательные коэффициенты для модели 16-го порядка. Проверьте, что единственные отражательные коэффициенты, которые лежат вне 95% доверительных границ, являются теми, которые соответствуют правильному порядку модели. Смотрите Выбор Порядка AR с Частичной Последовательностью Автокорреляции для получения дополнительной информации.

[~,~,k] = levinson(r,16);
stem(k,'filled')

conf = sqrt(2)*erfinv(0.95)/sqrt(15000);
hold on
[X,Y] = ndgrid(xlim,conf*[-1 1]);
plot(X,Y,'--r')
hold off

Figure contains an axes object. The axes object contains 3 objects of type stem, line.

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

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

a = [1 0.1 -0.8 -0.27];

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

nr = 5;
v = rand(1,nr)
v = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

w = sqrt(v).*randn(15000,nr);
x = filter(1,a,w);

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

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

[~,e] = levinson(r(lg>=0,1:nr+1:end),numel(a)-1)
e = 5×1

    0.7957
    0.9045
    0.1255
    0.9290
    0.6291

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

свернуть все

Последовательность автокорреляции в виде вектора или матрицы. Если r матрица, функция находит коэффициенты для каждого столбца r и возвращает их в строках a.

Пример: [r,lg] = xcorr(randn(1000,1),'biased'); r(lg<0) = [] оценивает последовательность автокорреляции случайного сигнала с 1000 выборками для положительных задержек.

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

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

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

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

свернуть все

Авторегрессивные линейные коэффициенты процесса, возвращенные как вектор-строка или матрица. Коэффициенты фильтра упорядочены в убывающих степенях z–1:

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

Если r матрица, затем каждая строка a соответствует столбцу r.

Ошибка предсказания, возвращенная как скаляр или вектор-столбец. Если r матрица, затем каждый элемент e соответствует столбцу r.

Отражательные коэффициенты, возвращенные как вектор-столбец длины n. Если r матрица, затем каждый столбец k соответствует столбцу r.

Примечание

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

Алгоритмы

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

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 функциональная сила возвращает NaNs, даже если решение существует.

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

Ссылки

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

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

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

| | | |

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