lpc

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

Синтаксис

Описание

пример

[a,g] = lpc(x,p) находит коэффициенты pлинейный предиктор th-порядка, КИХ-фильтр, который предсказывает текущее значение временных рядов с действительным знаком 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] Джексон, L. B. Цифровые фильтры и Обработка сигналов. 2-й Выпуск. Бостон: Kluwer Академические Издатели, 1989, стр 255–257.

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

| | | |

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