lpc

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

Синтаксис

[a,g] = lpc(x,p)

Описание

пример

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

Примеры

свернуть все

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

Во-первых, создайте данные сигнала как вывод авторегрессивного (AR) процесс, управляемый нормированным белым Гауссовым шумом. Используйте последние 4 096 выборок процесса 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')

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

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

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

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

свернуть все

Входной массив, заданный как вектор или матрица. Если 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 (p 2) флопс.

Ссылки

[1] Джексон, Л. Б. Диджитэл Филтерс и Обработка сигналов. 2-й Выпуск. Бостон: Kluwer Академические Издатели, 1989, стр 255–257.

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

| | | |

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