Я работаю в области восстановления цифровых изображений. Я прочитал все о свертке, что для системы LTI , если мы знаем ее импульсный отклик , то мы можем найти ее выход, просто используя свертку между входом и импульсным откликом.
Кто-нибудь может сказать мне, что является основной математической философией? Ваш опыт общения с ним скажет мне больше, чем просто интернет-серфинг.
image-processing
discrete-signals
convolution
Mayank Tiwari
источник
источник
Ответы:
Идея свертки
Моя любимая экспозиция этой темы - в одной из лекций Брэда Осгуда о преобразовании Фурье . Обсуждение свертки начинается около 36:00, но вся лекция имеет дополнительный контекст, который стоит посмотреть.
Основная идея заключается в том, что когда вы определяете что-то вроде преобразования Фурье, а не работаете напрямую с определением все время, полезно получить свойства более высокого уровня, которые упрощают вычисления. Например, одним из таких свойств является то, что преобразование суммы двух функций равно сумме преобразований, т.е.
Это означает, что если у вас есть функция с неизвестным преобразованием, и ее можно разложить на сумму функций с известными преобразованиями, вы в основном получите ответ бесплатно.
Теперь, поскольку у нас есть тождество для суммы двух преобразований, естественно задать вопрос, каково тождество для произведения двух преобразований, т.е.
Оказывается, когда вы вычисляете ответ, появляется свертка. Весь вывод приведен в видео, и, поскольку ваш вопрос носит в основном концептуальный характер, я не буду здесь его повторять.
Смысл приближения к свертке таким образом заключается в том, что он является неотъемлемой частью того, как преобразование Лапласа (частный случай которого является преобразованием Фурье) превращает линейные обыкновенные дифференциальные уравнения с постоянными коэффициентами (LCCODE) в алгебраические уравнения. Тот факт, что такое преобразование доступно, чтобы сделать LCCODE аналитически поддающимся анализу, является большой частью причины, почему они изучаются в обработке сигналов. Например, чтобы процитировать Оппенгейма и Шефера :
Таким образом, один ответ на вопрос заключается в том, что если вы используете методы преобразования для анализа и / или синтеза систем LTI, рано или поздно возникнет свертка (неявно или явно). Обратите внимание, что этот подход к введению свертки является очень стандартным в контексте дифференциальных уравнений. Например, посмотрите эту лекцию MIT Артура Маттука . В большинстве презентаций либо представлен интеграл свертки без комментариев, а затем получены его свойства (т. Е. Вытащить его из шапки), либо рассказы о странной форме интеграла, разговоры о переворачивании и перетаскивании, обращении времени и т. Д. И т. Д. И т. Д. ,
Причина, по которой мне нравится подход профессора Осгуда, заключается в том, что он избегает всего этого цури, а также дает, на мой взгляд, глубокое понимание того, как математики, вероятно, пришли к идее в первую очередь. И я цитирую:
Системы LTI
В большинстве текстов DSP свертка обычно вводится по-другому (избегая любых ссылок на методы преобразования). Выражая произвольный входной сигнал в виде суммы масштабированных и сдвинутых единичных импульсов,x(n)
где
определяющие свойства линейных не зависящих от времени систем приводят непосредственно к сумме свертки, включающей импульсный отклик . Если система, определенная оператором LTI L , выражается как y ( n ) = L [ x ( n ) ] , то путем применения соответствующих свойств, а именно линейностиh ( n ) = L [ δ ( n ) ] L Y( n ) = L [ x ( n ) ]
и инвариантность времени / сдвига
система может быть переписана как
Это очень стандартный способ представления свертки, и это очень элегантный и полезный способ сделать это. Подобные выводы можно найти в Оппенгейме и Шафере , Проакисе и Манолакисе , Рабинере и Голде , и , я уверен, многих других. Некоторое более глубокое понимание [которое идет дальше чем стандартные введения] дано Дилипом в его превосходном ответе здесь .
Обратите внимание, однако, что этот вывод является своего рода волшебным трюком. Еще раз посмотрев, как сигнал разлагается в , мы видим, что он уже в форме свертки. Если(1)
тогда является просто x ∗ δ . Поскольку дельта-функция является единичным элементом для свертки, сказать, что любой сигнал может быть выражен в этой форме, очень похоже на то, что любое число n может быть выражено как n + 0 или n × 1 . Теперь, выбор для описания сигналов таким способом является блестящим, потому что это приводит непосредственно к идее импульсного отклика - это просто, что идея свертки уже «запечатлена» в разложении сигнала.(1) x∗δ n n+0 n×1
С этой точки зрения свертка неразрывно связана с идеей дельта-функции (т. Е. Это двоичная операция, в которой дельта-функция имеет свой элемент идентичности). Даже без учета его отношения к свертке, описание сигнала в решающей степени зависит от идеи дельта-функции. Таким образом, возникает вопрос: откуда мы взяли идею дельта-функции? Насколько я могу судить, это относится, по крайней мере, к статье Фурье « Аналитическая теория тепла», где она появляется неявно. Одним из источников дополнительной информации является статья Алехандро Домингеса « Происхождение и история свертки ».
Вот два основных подхода к идее в контексте теории линейных систем. Один предпочитает аналитическое понимание, а другой предпочитает численное решение. Я думаю, что оба полезны для полной картины важности свертки. Однако в дискретном случае, если пренебрегать линейными системами полностью, есть смысл, в котором свертка является гораздо более старой идеей.
Полиномиальное Умножение
Гилберт Странг в этой лекции, начинающейся около 5:46, дал одно хорошее представление о том, что дискретная свертка - это просто полиномиальное умножение . С этой точки зрения идея возвращается к введению позиционных систем счисления (которые неявно представляют числа в виде полиномов). Поскольку Z-преобразование представляет сигналы как многочлены от z, свертка также возникнет в этом контексте - даже если Z-преобразование формально определено как оператор задержки без использования сложного анализа и / или как особый случай Лапласа. Transform .
источник
Однажды я дал ответ на странице обсуждения свертки Википедии, где задавался в основном тот же вопрос: почему инверсия времени? , Философия заключается в том, что вы применяете один импульс в момент времени 0 к своему фильтру и записываете его ответ в момент времени 0,1,2,3,4,…. В основном ответ будет выглядеть как функция h (t). Вы можете построить это. Если импульс был в n раз выше / выше, ответные импульсы будут пропорционально выше (это потому, что линейный фильтр всегда предполагается). Теперь все DSP (и не только DSP) о том, что происходит, когда вы применяете фильтр к своему сигналу? Вы знаете импульсный ответ. Ваш сигнал (особенно цифровой) является не чем иным, как серией импульсов высотой x (t). Имеет высоту / значение в момент времени tx t , Линейные системы хороши тем, что вы можете суммировать выходы для каждого такого входного импульса, чтобы получить функцию отклика y (t) для функции входа x (t). Вы знаете, что выходной импульс y (t = 10) зависит от непосредственного входа x (10), который вносит h (0) * x (10). Но есть также вклад x (9) * h (1) в выходной сигнал предыдущего импульса x (9) и вклад от более ранних входных значений. Видите ли, когда вы добавляете вклады из более ранних входных данных, один временной аргумент уменьшается, а другой увеличивается. Вы вносите в MAC все вклады в y (10) = h (0) * x (10) + h (1) * x (9) + h (2) * x (8) +…, что является сверткой.
Вы можете думать о функциях y (t), h (t) и x (t) как о векторах. Матрицы являются операторами в линейной алгебре. Они берут входной вектор (ряд чисел) и создают выходной вектор (другой ряд чисел). В этом случае у является произведением матрицы свертки с вектором х,
Теперь, поскольку свертка является матрицей Теплица , она имеет собственное основание Фурье и, следовательно, оператор свертки (линейные операторы представлены матрицами, но матрица также зависит от базиса) является хорошей диагональной матрицей в области Фурье,
Обратите внимание, гораздо больше нулей и, следовательно, гораздо проще вычислений. Этот результат известен как «теорема свертки», и, как ответил первый ответ, в области Фурье он намного проще. Но это философия, лежащая в основе «теоремы свертки», базиса Фурье и линейных операторов, а не повсеместная потребность в свертке.
источник
Хотя предыдущие ответы были действительно хорошими, я хотел бы добавить свою точку зрения на свертку, где я просто упрощаю визуализацию благодаря рисункам.
Интересно, существует ли какой-либо метод, с помощью которого выходной сигнал системы может быть определен для данного входного сигнала. Свертка является ответом на этот вопрос, при условии, что система является линейной и не зависит от времени (LTI).
This leads to an input-output sequence as
During the above procedure, we have worked out the famous convolution equation that describes the outputr[n] for an input s[n] to an LTI system with impulse response h[n] .
Convolution is a very logical and simple process but many DSP learners can find it confusing due to the way it is explained. We will describe a conventional method and another more intuitive approach.
Conventional Method
Most textbooks after defining the convolution equation suggest its implementation through the following steps. For every individual time shiftn ,
[Flip] Arranging the equation asr[n]=∑∞m=−∞s[m]h[−m+n] , consider the impulse response as a function of variable m , flip h[m] about m=0 to obtain h[−m] .
[Shift] To obtainh[−m+n] for time shift n , shift h[−m] by n units to the right for positive n and left for negative n .
[Multiply] Point-wise multiply the sequences[m] by sequence h[−m+n] to obtain a product sequence s[m]⋅h[−m+n] .
[Sum] Sum all the values of the above product sequence to obtain the convolution output at timen .
[Repeat] Repeat the above steps for every possible value ofn .
An example of convolution between two signalss[n]=[2−11] and h[n]=[−112] is shown in Figure below, where the result r[n] is shown for each n .
Note a change in signal representation above. The actual signalss[n] and h[n] are a function of time index n but the convolution equation denotes both of these signals with time index m . On the other hand, n is used to represent the time shift of h[−m] before multiplying it with s[m] point-wise. The output r[n] is a function of time index n , which was that shift applied to h[−m] .
Next, we turn to the more intuitive method where flipping a signal is not required.
Intuitive Method
There is another method to understand convolution. In fact, it is built on the derivation of convolution equation, i.e., find the outputr[n] as
Such a method is illustrated in Figure below. From an implementation point of view, there is no difference between both methods.
To sum up, convolution tells us how an LTI system behaves in response to a particular input and thanks to intuitive method above, we can say that convolution is also multiplication in time domain (and flipping the signal is not necessary), except the fact that this time domain multiplication involves memory. To further understand at a much deeper level where flipping comes from, and what happens in frequency domain, you can download a sample section from my book here.
источник