Линейные стационарные системы (LTI)

Разбираем класс систем, ради которого построена вся классическая теория DSP.

LTI-система (Linear Time-Invariant, линейная стационарная) — система, которая линейна (соблюдает суперпозицию) и стационарна (её свойства не меняются во времени).

Почему вся теория фильтров крутится вокруг LTI? Потому что для таких систем есть полная, красивая и предсказуемая математика: импульсный отклик, свёртка, частотная характеристика. Стоит системе быть LTI — и мы знаем о ней всё. Большинство полезных фильтров проектируют именно как LTI.

Линейность: принцип суперпозиции

Система линейна, если выполняются два правила. Аддитивность: реакция на сумму входов = сумма реакций. Однородность: усиление входа в a раз усиливает выход в a раз. Вместе это принцип суперпозиции: сложный сигнал можно разобрать на части, обработать каждую и сложить результаты.

def system(x):
    # линейная: y[n] = x[n] - x[n-1] (разность)
    y = []
    prev = 0
    for s in x:
        y.append(s - prev)
        prev = s
    return y

a = [1, 2, 3, 4]
b = [4, 3, 2, 1]
# проверяем аддитивность: system(a+b) == system(a)+system(b)
sum_in = [x + y for x, y in zip(a, b)]
left = system(sum_in)
right = [x + y for x, y in zip(system(a), system(b))]
print("system(a+b):", left)
print("sys(a)+sys(b):", right)
print("Линейна:", left == right)

Вывод:

system(a+b): [5, 0, 0, 0]
sys(a)+sys(b): [5, 0, 0, 0]
Линейна: True

Стационарность: инвариантность к сдвигу

Система стационарна, если задержка входа просто задерживает выход, не меняя его форму. «Сегодня и завтра система ведёт себя одинаково». Формально: если вход x[n] даёт выход y[n], то x[n-k] даёт y[n-k].

def system(x):
    return [round(0.5 * x[i] + 0.5 * x[i - 1], 2) if i > 0 else round(0.5 * x[i], 2)
            for i in range(len(x))]

x = [0, 4, 0, 0, 0]
xs = [0, 0, 4, 0, 0]   # тот же импульс, сдвинут на 1
print("отклик:       ", system(x))
print("отклик(сдвиг):", system(xs))
print("Форма та же, сдвинута:", system(x)[1:] == system(xs)[2:] + [0])

Вывод:

отклик:        [0.0, 2.0, 2.0, 0.0, 0.0]
отклик(сдвиг): [0.0, 0.0, 2.0, 2.0, 0.0]
Форма та же, сдвинута: True

Примеры: что LTI, а что нет

СистемаLTI?Почему
y = 0.5x[n] + 0.5x[n-1]далинейна и стационарна
y = x[n]**2нетнелинейна (квадрат)
y = n*x[n]неткоэффициент зависит от времени
y = max(min(x[n], 1), -1)нетограничение нелинейно
скользящее среднеедалинейная свёртка с постоянным ядром

Как работает под капотом

Магия LTI в том, что синусы — собственные функции таких систем. Подайте на LTI-систему синус частоты f — на выходе будет синус той же частоты, лишь с изменённой амплитудой и фазой. Множитель (комплексное число), на который умножается синус, зависит только от частоты и называется частотной характеристикой H(f). Она — это преобразование Фурье импульсного отклика h[n]. Отсюда фундаментальная связь: свёртка во времени = умножение в частотной области. Поэтому LTI-фильтр удобно описывать одной кривой H(f) — она показывает, какие частоты система пропускает, а какие душит. Вся теория фильтров (раздел 7) строится на этом.

Частые ошибки

  • Считать любую «простую» систему линейной. Возведение в квадрат, модуль, ограничение — всё это нелинейности, частые в реальных схемах.
  • Игнорировать нестационарность. Адаптивные фильтры и системы с изменяемыми параметрами не LTI — к ним классическая теория не применима напрямую.
  • Думать, что нелинейность всегда плоха. Нелинейные системы нужны (детектирование, компрессоры), просто их анализируют другими методами.

Итог

  • LTI = линейная (суперпозиция) + стационарная (инвариантность к сдвигу).
  • Для LTI работают импульсный отклик, свёртка и частотная характеристика.
  • Синусы — собственные функции LTI: на выходе синус той же частоты.
  • Свёртка во времени соответствует умножению в частотной области.
Проверьте себя
1. Какие два свойства определяют LTI-систему?
AСкорость и точность
BЛинейность (суперпозиция) и стационарность (инвариантность к сдвигу)
CПричинность и устойчивость
DАналоговость и цифровость
2. Что произойдёт с синусом на выходе LTI-системы?
AПревратится в шум
BОстанется синусом той же частоты с изменёнными амплитудой и фазой
CИзменит частоту
DИсчезнет
3. Какая система НЕ является LTI?
Ay[n] = 0.5x[n] + 0.5x[n-1]
By[n] = x[n]**2
CСкользящее среднее
Dy[n] = x[n] - x[n-1]