Свертка как умножение матриц
Дискретная свертка двух последовательностей выражается в виде матричного произведения определенной прямоугольной матрицы на вектор-столбец. Правила умножения матриц требуют, чтобы число столбцов прямоугольной матрицы было равно числу элементов вектора-столбца; получающийся в результате этой процедуры вектор-столбец будет иметь элементов, где М и N - число элементов свертываемых последовательностей. Таким образом, следующая свертка пятиэлементной и трехэлементной последовательностей
эквивалентна равенству
Так как операция свертки обладает свойством коммутативности, справедлива другая форма записи:
которая с позиций теории матриц не является очевидной. Для ЭВМ, которые обеспечивают выполнение операции умножения матриц, не обязательно иметь специальную программу для свертки.
В приложении 1 приводится такая программа под названием MATCON. При этом массив (вектор) заполняется N значениями данных (строки 70-90) по аналогии с программой . Затем первый столбец массива (матрицы) который является двумерным, заполняется М значениями данных и дополняется нулями до
общей длины (строка 120), а остальные столбцы массива заполняются таким образом, чтобы получилась циклическая структура (строки 130-150). После выполнения этих предварительных действий реализуется в полном объеме операция свертки, а ее значение присваивается матрице с помощью оператора умножения матриц, занимающего одну строку:
Задачи
(см. скан)