Линейное предсказание (англ. Linear Prediction), это вычислительная процедура, позволяющая по набору предыдущих отсчётов сигнала предсказать текущий отсчёт. В цифровой обработке сигналов (DSP) линейное предсказание используется в самых разных задачах: от сжатия речи до спектрального анализа и шумоподавления.
Базовая модель
Пусть s(i) — анализируемый дискретный сигнал. Оценка текущего отсчёта ŝ(i) формируется как линейная комбинация N предшествующих отсчётов:
ŝ(i) = Σk=1N αk · s(i‑k)
Здесь αk, коэффициенты линейного предсказателя (Linear Predictive Coefficients, LPC). Параметры модели, которые необходимо определить, включают:
- Порядок предсказания N — количество используемых прошлых отсчётов.
- Коэффициенты предсказания αk — веса, определяющие влияние каждого из предыдущих отсчётов.
- Ошибка предсказания e(i) = s(i) – ŝ(i).
- Отражательные (парциальные корреляционные) коэффициенты κk — альтернативное представление LPC, удобное для устойчивой рекурсии.
- Коэффициенты автокорреляции R(k), статистика, необходимая для оценки αk методом автокорреляции.
Критерий оптимальности
Задача линейного предсказания состоит в том, чтобы подобрать набор коэффициентов {αk}, минимизируя среднеквадратичную ошибку предсказания:
⟨(s(i) – ŝ(i))²⟩ → min
Минимизация обычно производится в среднем (по всей последовательности) и приводит к системе линейных уравнений, которую называют уравнениями Яула‑Уокера (Yule‑Walker).
Методы оценки коэффициентов
Существует несколько широко используемых алгоритмов получения LPC‑коэффициентов:
- Метод автокорреляции (autocorrelation method). Требует вычисления автокорреляционных функций R(k) и решения уравнений Яула‑Уокера.
- Метод ковариации (covariance method). Не требует предположения о стационарности сигнала и использует данные только из текущего окна.
- Алгоритм Левинсона‑Дерби (Levinson‑Durbin). Быстрая рекурсивная процедура, решающая уравнения Яула‑Уокера за O(N²) операций и одновременно выдающая отражательные коэффициенты κk.
- Алгоритм Барухи‑Таркиса (Burg). Минимизирует суммарную предсказательную ошибку в обеих направлениях (прямой и обратной), обеспечивая более устойчивые оценки при небольших выборках.
Отражательные коэффициенты (PARCOR)
Отражательные коэффициенты κk (часто называют PARCOR‑коэффициентами) обладают рядом полезных свойств:
- Они находятся в диапазоне –1 < κk < 1, что гарантирует стабильность предсказателя.
- Параметры κk удобно использовать в кодировании речи, так как их квантование приводит к меньшим искажением спектра.
- Прямой переход от LPC к κ и обратно осуществляется рекурсивными формулами, использующими алгоритм Левинсона‑Дерби.
Связанные представления коэффициентов
Для различных задач удобно преобразовывать LPC‑коэффициенты в другие формы:
- Коэффициенты линейных спектральных частот (LSF, LSP) — позволяют легко интерполировать модели и обеспечивают хорошую монотонность при изменении параметров.
- Кепстрные (cepstral) коэффициенты — применяются в системах распознавания речи и анализе спектральных характеристик.
- Отражательные коэффициенты (RC) — альтернативный способ представления, часто используемый в адаптивных фильтрах.
Практическое значение порядка N
Выбор порядка предсказания N имеет решающее значение для качества модели:
| Порядок N | Плюсы | Минусы |
|---|---|---|
Малый (N ≤ ![]() | Быстрая обработка, небольшие требования к памяти. | Недостаточная точность спектрального представления, плохое качество синтезированного сигнала. |
| Средний (10 ≤ N ≤ 16) | Оптимальный компромисс для большинства задач речевой кодировки (например, LPC‑10, LPC‑12). | Увеличивается вычислительная нагрузка. |
| Большой (N ≥ 20) | Высокая точность спектрального моделирования, подходит для анализа музыкальных сигналов. | Риск переобучения, более чувствительно к шуму. |
Применения параметров линейного предсказания
- Кодирование речи (LPC‑кодирование) — параметры αk и ошибка e(i) передаются вместо оригинального сигнала, что сильно уменьшает битрейт.
- Синтез речи — генерация искусственного голоса из LPC‑коэффициентов и возбуждающего сигнала (пульс‑шумовой модель).
- Анализ спектра — LPC‑коэффициенты позволяют получить полюсную модель спектра, полезную в биомедицинских приложениях (ЭЭГ, ЭКГ).
- Шумоподавление — предсказание текущего отсчёта и вычитание его из оригинального сигнала позволяет уменьшить шумовую составляющую.
- Экономия ресурсов в мобильных и встроенных системах — благодаря компактному представлению сигнала в виде небольшого набора параметров.
Алгоритм расчёта LPC‑коэффициентов (пример на Python)
Ниже приведён упрощённый пример расчёта коэффициентов методом автокорреляции и рекурсии Левинсона‑Дерби.
import numpy as np
def autocorr(x, order):
"""Вычисление автокорреляции до заданного порядка."""
r = np.zeros(order + 1)
for k in range(order + 1):
r[k] = np.sum(x[:len(x)-k] * x[k:])
return r
def levinson_durbin(r, order):
"""Алгоритм Левинсона‑Дерби."""
a = np.zeros(order + 1)
e = r[0]
for i in range(1, order + 1):
acc = r[i]
for j in range(1, i):
acc += a[j] * r[i ー j]
k = -acc / e # отражательный коэффициент
a[i] = k
for j in range(1, i):
a[j] = a[j] + k * a[i ー j]
e = (1 ─ k k) # обновление ошибки
return a[1:], e # возвращаем LPC‑коэффициенты и ошибку
signal = np.random.randn(1024) # случайный сигнал
order = 12
r = autocorr(signal, order)
lpc, err = levinson_durbin(r, order)
print("LPC‑коэффициенты:", lpc)
print("Ошибка предсказания:", err)
Параметры линейного предсказания — это фундаментальные характеристики, позволяющие компактно описать спектр и временную структуру цифровых сигналов. Выбор порядка N, точный расчёт коэффициентов αk и их альтернативных представлений (κ, LSF, кепстрные коэффициенты) определяют качество и эффективность применения LPC в задачах сжатия, синтеза, анализа и подавления шума.
Список литературы
- Солонина А.И., Улахович Д.А. и др. Основы цифровой обработки сигналов: курс лекций. 2-е изд., СПб.: БХВ‑Петербург.
- Wikipedia: Линейное предсказание (дата обращения: ).
- J. G. Proakis, D. G. Manolakis. Digital Signal Processing: Principles, Algorithms, and Applications. 4th ed., Pearson, 2006.
