lpc

Линейные коэффициенты предсказательного фильтра

Синтаксис

Описание

пример

[a,g] = lpc(x,p) находит коэффициенты pлинейный предиктор I порядка, конечной импульсной характеристики фильтр, который предсказывает текущее значение вещественных временных рядов x основанный на прошлых выборках. Функция также возвращается g, отклонение ошибки предсказания. Если x является матрицей, функция рассматривает каждый столбец как независимый канал.

Примеры

свернуть все

Оцените ряд данных, используя прямой предиктор третьего порядка. Сравните оценку с исходным сигналом.

Во-первых, создайте данные сигнала как выход авторегрессивного (AR) процесса, управляемого нормализованным белым Гауссовым шумом. Используйте последние 4096 выборок выхода AR-процесса, чтобы избежать переходных процессов запуска.

noise = randn(50000,1);
x = filter(1,[1 1/2 1/3 1/4],noise);
x = x(end-4096+1:end);

Вычислите коэффициенты предиктора и оцененный сигнал.

a = lpc(x,3);
est_x = filter([0 -a(2:end)],1,x);

Сравните предсказанный сигнал с исходным сигналом путем построения последних 100 выборок каждой.

plot(1:100,x(end-100+1:end),1:100,est_x(end-100+1:end),'--')
grid
xlabel('Sample Number')
ylabel('Amplitude')
legend('Original signal','LPC estimate')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original signal, LPC estimate.

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

e = x-est_x;
[acs,lags] = xcorr(e,'coeff');

plot(lags,acs)
grid
xlabel('Lags')
ylabel('Normalized Autocorrelation')
ylim([-0.1 1.1])

Figure contains an axes. The axes contains an object of type line.

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

свернуть все

Входной массив, заданный как вектор или матрица. Если x является матрицей, тогда функция обрабатывает каждый столбец как независимый канал.

Полиномиальный порядок предсказательного фильтра, заданный как положительное целое число. p должно быть меньше или равно длине x.

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

свернуть все

Коэффициенты линейного предиктора, возвращенные как вектор-строка или матрица. Коэффициенты относятся к прошлому p выборки x к текущему значению:

x^(n)=a(2)x(n1)a(3)x(n2)a(p+1)x(np).

Отклонение ошибки предсказания, возвращенная в виде скаляра или вектора.

Подробнее о

свернуть все

Ошибка предсказания

Ошибка предсказания e (n) может быть рассмотрена как выход фильтра ошибки предсказания A (z), где

  • H (z) является оптимальным линейным предиктором.

  • x (n) является входным сигналом.

  • x^(n) - предсказанный сигнал.

Алгоритмы

lpc определяет коэффициенты прямого линейного предиктора путем минимизации ошибки предсказания в смысле наименьших квадратов. Он имеет приложения в создании фильтра и кодировании речи.

lpc использует автокорреляционный метод авторегрессивного (AR) моделирования, чтобы найти коэффициенты фильтра. Сгенерированный фильтр может не смоделировать процесс точно, даже если последовательность данных действительно является AR-процессом правильного порядка, потому что метод автокорреляции неявно окрашивает данные. Другими словами, метод принимает, что сигнал дискретизирует больше длины x 0.

lpc вычисляет решение методом наименьших квадратов, чтобы X a = b, где

X=[x(1)00x(2)x(1)x(2)0x(m)x(1)0x(m)x(2)00x(m)],a=[1a(2)a(p+1)],b=[100],

и m - длина x. Решение задачи наименьших квадратов с помощью нормальных уравнений XHXa=XHb приводит к уравнениям Юле-Уокера

[r(1)r(2)r(p)r(2)r(1)r(2)r(p)r(2)r(1)][a(2)a(3)a(p+1)]=[r(2)r(3)r(p+1)],

где r = [r (1) r (2) ... r (p +1) ] является автокорреляционной оценкой для x вычисляется с помощью xcorr. Алгоритм Левинсона-Дурбина (см. levinson) решает уравнения Юла-Уокера в O (p2) шлепанцы.

Ссылки

[1] Джексон, Л. Б. Цифровые фильтры и обработка сигналов. 2-е издание. Boston: Kluwer Academic Publishers, 1989, pp. 255-257.

См. также

| | | |

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