Линейное предсказание

Узнайте, как линейное предсказание использует прошлые отсчёты сигнала для точного восстановления текущих и будущих значений, минимизируя ошибку.

Самое главное помнить, что линейное предсказание – это вычислительная процедура, позволяющая по набору
предшествующих отсчётов сигнала оценить текущий (или будущий) отсчёт с минимальной средней квадратичной ошибкой.

Очень важно понимать, какие параметры находятся в формуле, как они вычисляются и где применяются
полученные коэффициенты.

Основные понятия

Пусть s(i) – дискретный цифровой сигнал, измеренный в момент i. При линейном предсказании
текущий отсчёт s(i) аппроксимируется линейной комбинацией N предыдущих отсчётов:

ĥs(i) = Σ_{k=1}^{N} α_k · s(i‑k)

где:

  • α_k – коэффициенты линейного предсказания (LPC‑коэффициенты);
  • N – порядок предсказания (количество используемых прошлых отсчётов);
  • ĥs(i) – предсказанное значение сигнала в момент i.

Минимизация ошибки предсказания

Ошибка предсказания определяется как разность между реальным и предсказанным отсчётом:

e(i) = s(i) – ĥs(i)

Среднеквадратичная ошибка (СКО) для бесконечного наблюдения записывается так:

E = ⟨e(i)²⟩ = ⟨[s(i) – Σ_{k=1}^{N} α_k s(i‑k)]²⟩ → min

Задача линейного предсказания состоит в поиске набора {α_k}, который минимизирует E.
Это приводит к системе линейных уравнений – уравнениям Винера‑Хоффмана:

Σ_{k=1}^{N} α_k R(|i‑j|) = R(j), j = 1,…,N

где R(m) – автокорреляционная функция сигнала:

R(m) = ⟨s(i)·s(i‑m)⟩

Алгоритм решения: метод Левинсона‑Дербина

Система Винера‑Хоффмана обладает особой структурой (симметричная, тоепличная), благодаря чему
можно решить её за O(N²) операций, используя рекурсивный алгоритм Левинсона‑Дербина:

  1. Инициализация: α₁ = –R(1)/R(0), ε₁ = R(0)·(1 – α₁²).
  2. Для m = 2 … N вычисляем отражающий коэффициент:
    k_m = – [R(m) + Σ_{i=1}^{m‑1} α_i^{(m‑1)} R(m‑i)] / ε_{m‑1}
  3. Обновляем коэффициенты:
    α_i^{(m)} = α_i^{(m‑1)} + k_m·α_{m‑i}^{(m‑1)}, i = 1 … m‑1

    и добавляем α_m^{(m)} = k_m.

  4. Обновляем ошибку:
    ε_m = ε_{m‑1}·(1 – k_m²)

После N итераций получаем окончательные LPC‑коэффициенты α₁ … α_N и остаточную ошибку ε_N.

Преобразования между различными представлениями коэффициентов

В практических задачах часто требуется переход от LPC‑коэффициентов к другим формулам:

  • Отражательные (парциальные автокорреляционные) коэффициенты – k_m, получаемые в процессе Левинсона‑Дербина.
  • Коэффициенты линейных спектральных частот (LSF) – корни полинома, полученного из обратного полинома LPC.
  • Кепстральные (cepstral) коэффициенты – получаются рекуррентным преобразованием из LPC‑коэффициентов и часто используют в системах распознавания речи.

Все эти преобразования реализованы в современных DSP‑библиотеках (MATLAB, Python‑SciPy, Octave).

Приложения линейного предсказания

Линейное предсказание нашло широкое применение в разных областях:

  • Сжатие речи (LPC‑вокодер) – анализ речи, получение LPC‑коэффициентов, их передача, а затем синтез речи
    с помощью рекурсивного цифрового фильтра.
  • Спектральный анализ – оценка спектра сигнала на коротких кадрах (период квазистационарности).
  • Адаптивные фильтры – построение предсказательных фильтров в системах шумоподавления и эхоподавления.
  • Медицинская диагностика – анализ ЭЭГ, ЭКГ, ультразвуковых сигналов.
  • Сейсмология и геофизика – оценка параметров стохастических сигналов в геофизических исследованиях.

Пример расчёта LPC‑коэффициентов

Рассмотрим простой пример: сигнал s = [1.0, 0.8, 0.5, 0.2, -0.1] и порядок предсказания N = 2.

  1. Вычислим автокорреляцию:
    R(0) = Σ s(i)² = 2.94
    R(1) = Σ s(i)·s(i‑1) = 2.04
    R(2) = Σ s(i)·s(i‑2) = 1.02
  2. Инициализация:
    α₁ = –R(1)/R(0) = –0.6949
    ε₁ = R(0)·(1 – α₁²) = 2.94·(1 – 0.483) = 1.521
  3. Вторая итерация:
    k₂ = –[R(2) + α₁·R(1)] / ε₁ = –[1.02 + (‑0.6949)·2.04] / 1.521 = 0.045
    α₂ = k₂ = 0.045
    α₁ (обновл.) = α₁ + k₂·α₁ = –0.6949 + 0.045·(‑0.6949) = –0.7215

Полученные коэффициенты: α₁ ≈ –0.722, α₂ ≈ 0.045. Они позволяют предсказывать каждый новый
отсчёт сигнала по двум предыдущим.

Формула линейного предсказания ĥs(i) = Σ_{k=1}^{N} α_k·s(i‑k) является фундаментом
многих современных методов цифровой обработки сигналов. Минимизация средней квадратичной ошибки
ведёт к системе Винера‑Хоффмана, решение которой удобно выполнять рекурсивным алгоритмом
Левинсона‑Дербина. Полученные коэффициенты могут быть преобразованы в различные формы
(отражательные, LSF, кепстральные) и находят применение в сжатии речи, спектральном анализе,
адаптивных фильтрах и многих других областях.

Помните, что правильный выбор порядка N и корректная оценка автокорреляции
являются решающими факторами качества предсказания.


Составлено на основе открытых источников:
Википедия – линейное предсказание,МОЛУЧ – применение модели линейного предсказания.