MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Обработка сигналов и изображений\Signal Processing Toolbox

Список функций Signal Processing Toolbox: Линейное предсказание

  В оглавление \ К следующему разделу \ К предыдущему разделу

LPC

Расчет коэффициентов линейного предсказания автокорреляционным методом

Синтаксис:

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

Описание:

Описание

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

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

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

.

Второй входной параметр p задает порядок предсказывающего фильтра: a = [1 a(2) ... a(p+1)]. Если этот параметр не указан, функция lpc по умолчанию принимает p = length(x)-1. Второй выходной параметр g равен среднему квадрату ошибки предсказания.

Если x - матрица, столбцы которой соответствуют разным сигналам, функция lpc вернет коэффициенты предсказания для каждого сигнала в строках выходной матрицы a, а средние квадраты сигналов ошибки - в виде вектора-строки g.

Примеры

Предскажем временной ряд с использованием предсказывающего фильтра третьего порядка и сравним результат с первоначальным сигналом.

Прежде всего создадим анализируемый сигнал в виде авторегрессионного процесса, возбуждаемого белым шумом. Используем только 4097 последних отсчетов процесса, чтобы избежать влияния начальных переходных процессов:

randn('state',0);

noise = randn(50000,1); % нормированный белый гауссов шум

x = filter(1,[1 1/2 1/3 1/4],noise); % авторегрессионный фильтр

x = x(45904:50000);

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

a = lpc(x,3);

est_x = filter([0 -a(2:end)],1,x);    % предсказанный сигнал

e = x - est_x;                        % ошибка предсказания

[acs,lags] = xcorr(e,'coeff');        % АКФ ошибки предсказания

Ошибка предсказания e(n) может рассматриваться как выход предсказывающего фильтра A(z), показанного на следующем рисунке; здесь H(z) - оптимальный линейный предиктор, x(n) - входной сигнал,  - предсказанный сигнал.

Сравним предсказанный сигнал с исходным:

plot(1:97,x(4001:4097),1:97,est_x(4001:4097),'--');

title('Original Signal vs. LPC Estimate');

xlabel('Sample Number'); ylabel('Amplitude'); grid;

legend('Original Signal','LPC Estimate')

Теперь посмотрим на автокорреляционную функцию ошибки предсказания:

plot(lags,acs);

title('Autocorrelation of the Prediction Error');

xlabel('Lags'); ylabel('Normalized Value'); grid;

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

Алгоритм

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

Функция lpc ищет решение, дающее минимальную среднеквадратичную ошибку в системе уравнений

где

, , ,

и m - длина последовательности x. Поиск решения, оптимального по критерию минимума среднеквадратической ошибки, приводит к нормальным уравнениям

И системе линейных уравнений Юла-Уолкера:

,

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

Сопутствующие функции: aryule, levinson, prony, pyulear, stmcb

Литература

1. Jackson, L. B., Digital Filters and Signal Processing, Second Edition, Kluwer Academic Publishers, 1989. pp. 255-257.

  В оглавление \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика