Давайте просуммируем наше рассмотрение преобразования входного сигнала системы в выходной. Во-первых, входной сигнал может быть разложен на набор входных импульсов, каждый из которых может рассматриваться как промасштабированная и сдвинутая дельта функция. Во-вторых, выход от каждого импульса есть промасштабированный и сдвинутый импульсный отклик. В-третьих, целиком выходной сигнал может быть найден суммированием этих промасштабированных и сдвинутых импульсных откликов. Другими словами, если мы знаем импульсный отклик системы, то мы можем вычислить выходной сигнал для любого входного сигнала. Это означает, что мы знаем все о системе. Больше ничего нет, что можно было бы изучать о характеристиках линейных систем (однако в последующих главах мы покажем, что эта информация может быть представлена и в других формах).
Импульсный отклик имеет различные названия в некоторых публикациях. Если рассматриваемая система есть фильтр, то импульсный отклик называется ядро фильтра, свертка ядра или просто ядро. При обработке изображений импульсный отклик называется функцией расширения точки. Хотя эти термины используются при немного различных подходах, все они означают то же самое, сигнал, вырабатываемый системой, когда на ее вход поступает дельта функция.
Свертка есть формальная математическая операция такая же, как умножение, сложение и интегрирование. Сложение берет два числа и производит третье число, свертка также берет два сигнала и производит третий сигнал. Свертка используется во многих областях математики таких, как теория вероятности и статистика. В линейных системах свертка используется для описания соотношения между тремя важными сигналами: входным сигналом, импульсным откликом и выходным сигналом.
РИСУНОК 6-1
Определение дельта функции и импульсного отклика (Impulse Response). Дельта функция есть нормализованный импульс. Все отсчеты имеют величину равную нулю за исключением отсчета номер 0, который имеет величину равную единице. Маленькая греческая буква d[n] используется для обозначения дельта функции. Импульсный отклик системы обычно обозначается h[n], это есть выходной сигнал системы, когда на ее входе дельта функция.
Рисунок 6-2 показывает обозначение свертки в линейных системах. Входной сигнал x[n] поступает на линейную систему с импульсным откликом h[n], на выходе получается выходной сигнал y[n]. В формульном виде x[n] * h[n] = y[n]. Выражаясь словами, свертка входного сигнала с импульсным откликом равна выходному сигналу. Сложение обозначается знаком плюс +, а свертка обозначается знаком звездочка *. К сожалению, большинство языков программирования используют звездочку для обозначения умножения. Звездочка в компьютерных программах обозначает умножение, звездочка в формулах обозначает свертку.
РИСУНОК 6-2
Как свертка используется в ЦОС. Выходной сигнал линейной системы равен свертке входного сигнала с импульсным откликом системы. Свертка обозначается звездочкой, когда записывается в виде формулы.
РИСУНОК 6-3
Пример низкочастотного (а) и высокочастотного (b) фильтров, использующих свертку. В этом примере входной сигнал есть несколько циклов синусоиды плюс пилообразный сигнал с медленным подъемом. Две компоненты разделяются, с помощью правильно выбранного импульсного отклика.
Рисунок 6-3 показывает свертку, применяемую для низкочастотной и высокочастотной фильтрации. В этом примере входной сигнал состоит из двух компонент: три цикла синусоиды (представляют высокую частоту) и медленно поднимающийся пилообразный сигнал (представляет низкую частоту). Импульсный отклик для низкочастотного фильтра (а) – сглаженная арка, в результате только пилообразный сигнал проходит на выход. Подобно этому высокочастотный фильтр (b) позволяет проходить на выход только быстро изменяющимся синусоидам.
Рисунок 6-4 представляет два дополнительных примера использования свертки в обработке сигналов. Инвертирующий аттенюатор (а) перебрасывает сигнал сверху вниз и уменьшает его амплитуду. Дискретная производная (также называется первая разность), показанная в (b), дает выходной сигнал относительно наклона входного сигнала
Обратите внимание на длину сигналов на рисунках 6-3 и 6-4. Входной сигнал имеет длину из 81 отсчета, а каждый импульсный отклик имеет длину 31 отсчет. В большинстве приложений ЦОС входной сигнал имеет длину из сотен, тысяч или даже миллионов отсчетов. Импульсный отклик обычно много короче, скажем, несколько точек или несколько сотен точек. Математика свертки не ограничивает длину этих сигналов. Однако длина выходного сигнала специфична. Длина выходного сигнала равна длине входного сигнала плюс длина импульсного отклика минус один. Для сигналов на рисунках 6-3 и 6-4 длина каждого выходного сигнала равна 81+31-1=111 отсчетов. Номера отсчетов во входном сигнале меняются от 0 до 80, в импульсном отклике – от 0 до 30, в выходном сигнале – от 0 до 110.
РИСУНОК 6-4
Пример сигналов, обрабатываемых с использованием свертки. Многие задачи сигнальной обработки используют очень простой импульсный отклик. Как показывают эти примеры, колоссальные изменения могут быть достигнуты только с несколькими ненулевыми точками.
Теперь мы подошли к математическим деталям свертки. Использование свертки в Цифровой Обработке Сигналов может быть понято двумя способами. Вначале рассмотрим свертку с токи зрения входного сигнала. Это анализ того, какой вклад вносит каждый отсчет входного сигнала во многие точки выходного сигнала. Затем мы рассмотрим свертку с точки зрения выходного сигнала. Это проверка того, как каждый отсчет выходного сигнала получает информацию от многих точек входного сигнала.
Имейте в виду, что эти две точки зрения всего лишь различные способы представления об одной и той же математической операции. Первая точка зрения важна потому, что она дает концептуальное понимание принадлежности свертки к ЦОС. Вторая точка зрения описывает математику свертки. Это типичный образец одной из самых трудных задач, с которой вы будете встречаться в ЦОС: выработать собственное концептуальное понимание, соответствующее глубинам математики, которые используются для представления этих идей.