Mengapa konvolusi diperlukan, atau apa filosofi di balik konvolusi?


14

Saya bekerja di bidang pemulihan gambar digital. Saya telah membaca semua hal tentang konvolusi, bahwa, untuk sistem LTI , jika kita mengetahui respons impulsnya , maka kita dapat menemukan outputnya dengan hanya menggunakan konvolusi antara input dan respons impuls.

Adakah yang bisa memberi tahu saya apa filosofi matematika utama di baliknya? Pengalaman Anda dengan akan memberi tahu saya lebih dari sekadar berselancar di internet tentang hal itu.



3
Saya downvoting pertanyaan ini karena (atau variasi kecil itu) telah berulang kali ditanyakan dan dijawab di situs ini sebagai komentar pichenettes 'menyatakan. Anda seharusnya memiliki "internet surfed" di situs ini.
Dilip Sarwate

Jawaban:


13

Ide Konvolusi

Eksposisi favorit saya tentang topik ini adalah dalam salah satu kuliah Brad Osgood tentang Transformasi Fourier . Diskusi tentang konvolusi dimulai sekitar pukul 36:00, tetapi seluruh ceramah memiliki konteks tambahan yang patut ditonton.

Ide dasarnya adalah bahwa, ketika Anda mendefinisikan sesuatu seperti Transformasi Fourier, daripada bekerja secara langsung dengan definisi setiap saat, akan berguna untuk mendapatkan properti tingkat yang lebih tinggi yang menyederhanakan perhitungan. Sebagai contoh, salah satu properti seperti itu adalah bahwa transformasi dari jumlah dua fungsi sama dengan jumlah dari transformasi, yaitu

F{f+g}=F{f}+F{g}.

Itu berarti jika Anda memiliki fungsi dengan transformasi yang tidak diketahui, dan itu dapat didekomposisi sebagai jumlah fungsi dengan transformasi yang diketahui, pada dasarnya Anda mendapatkan jawabannya secara gratis.

Sekarang, karena kita memiliki identitas untuk jumlah dari dua transformasi, itu adalah pertanyaan alami untuk bertanya apa identitas untuk produk dari dua transformasi, yaitu

F{f}F{g}= ?.

Ternyata ketika Anda menghitung jawabannya, konvolusi adalah apa yang muncul. Seluruh derivasi diberikan dalam video, dan karena pertanyaan Anda sebagian besar konseptual, saya tidak akan merekapitulasi di sini.

Implikasi dari mendekati konvolusi dengan cara ini adalah bahwa ini merupakan bagian intrinsik dari cara Transformasi Laplace (yang mana Fourier Tranform adalah kasus khusus) mengubah persamaan diferensial biasa linear koefisien konstan (LCCODE) menjadi persamaan aljabar. Fakta bahwa transformasi semacam itu tersedia untuk membuat LCCODE yang dapat ditindaklanjuti secara analitis adalah sebagian besar alasan mengapa mereka dipelajari dalam pemrosesan sinyal. Misalnya, mengutip Oppenheim dan Schafer :

Karena mereka relatif mudah untuk dikarakterisasi secara matematis dan karena mereka dapat dirancang untuk melakukan fungsi pemrosesan sinyal yang berguna, kelas sistem linear shift-invariant akan dipelajari secara luas.

Jadi satu jawaban untuk pertanyaan, adalah bahwa jika Anda menggunakan metode transformasi untuk menganalisis dan / atau mensintesis sistem LTI, cepat atau lambat, konvolusi akan muncul (baik secara implisit atau eksplisit). Perhatikan bahwa pendekatan ini untuk memperkenalkan konvolusi sangat standar dalam konteks persamaan diferensial. Sebagai contoh, lihat kuliah MIT ini oleh Arthur Mattuck . Sebagian besar presentasi menyajikan integral konvolusi tanpa komentar, kemudian menurunkan propertinya (yaitu menariknya keluar dari topi), atau mengeluhkan bentuk integral integral, berbicara tentang membalik dan menyeret, pembalikan waktu, dll., Dll. .

Alasan saya menyukai pendekatan Prof. Osgood adalah karena ia menghindari semua tsouris itu, dan juga memberikan, menurut pendapat saya, wawasan mendalam tentang bagaimana para ahli matematika mungkin sampai pada gagasan itu sejak awal. Dan saya kutip:

Saya berkata, "Apakah ada cara menggabungkan F dan G dalam domain waktu, sehingga dalam domain frekuensi spektrum berlipat ganda, Fourier mentransformasikan multiplikasi?" Dan jawabannya adalah, ya, ada, dengan integral yang rumit ini. Itu tidak begitu jelas. Anda tidak akan bangun dari tempat tidur di pagi hari dan menuliskannya, dan berharap ini akan menyelesaikan masalah itu. Bagaimana kita mendapatkannya? Anda berkata, seandainya masalahnya terpecahkan, lihat apa yang harus terjadi, dan kemudian kita harus mengenali kapan saatnya mengumumkan kemenangan. Dan inilah saatnya untuk mengumumkan kemenangan.

Sekarang, sebagai ahli matematika yang menjengkelkan, Anda menutupi jejak Anda dan berkata, "Yah, saya hanya akan mendefinisikan lilitan dua fungsi dengan rumus ini."

Sistem LTI

Dalam kebanyakan teks DSP, konvolusi biasanya diperkenalkan dengan cara yang berbeda (yang menghindari referensi untuk mengubah metode). Dengan mengekspresikan sinyal input sembarang sebagai jumlah impuls unit yang diskalakan dan bergeser,x(n)

(1)x(n)=k=x(k)δ(nk),

dimana

(2)δ(n)={0,n01,n=0,

sifat-sifat yang menentukan dari sistem invarian-waktu linear mengarah secara langsung jumlah konvolusi yang melibatkan respons impuls . Jika sistem yang didefinisikan oleh operator LTI L dinyatakan sebagai y ( n ) = L [ x ( n ) ] , maka dengan menerapkan properti repektif, yaitu linearitash(n)=L[ δ(n) ]Ly(n)=L[ x(n) ]

(3)L[ ax1(n)+bx2(n) ]Transform of the sum of scaled inputs=aL[ x1(n) ]+bL[ x2(n) ]Sum of scaled transforms,

dan waktu / shift invarian

(4)L[ x(n) ]=y(n) impliesL[ x(nk) ]=y(nk),

sistem dapat ditulis ulang sebagai

y(n)=L[k=x(k)δ(nk)]Tranform of the sum of scaled inputs=k=x(k)L[δ(nk)]Sum of scaled transforms=k=x(k)h(nk).Convolution with the impulse response

Itu cara yang sangat standar untuk menghadirkan konvolusi, dan ini cara yang sangat elegan dan berguna untuk menyelesaikannya. Derivasi serupa dapat ditemukan di Oppenheim dan Schafer , Proakis dan Manolakis , Rabiner dan Gold , dan saya yakin banyak lainnya. Beberapa wawasan yang lebih dalam [yang lebih jauh dari perkenalan standar] diberikan oleh Dilip dalam jawaban yang sangat bagus di sini .

Namun, perlu diketahui bahwa derivasi ini agak merupakan trik sulap. Melihat kembali bagaimana sinyal diuraikan dalam , kita dapat melihat bahwa itu sudah dalam bentuk konvolusi. Jika(1)

(fg)(n)f convolved with g=k=f(k)g(nk),

maka hanya x δ . Karena fungsi delta adalah elemen identitas untuk konvolusi, mengatakan sinyal apa pun dapat diekspresikan dalam bentuk itu sangat mirip dengan mengatakan angka apa pun n dapat dinyatakan sebagai n + 0 atau n × 1 . Sekarang, memilih untuk menggambarkan sinyal dengan cara yang brilian karena mengarah langsung ke ide respon impuls - hanya saja ide konvolusi sudah "dipanggang" dengan dekomposisi sinyal.(1)xδnn+0n×1

Dari perspektif ini, konvolusi secara intrinsik terkait dengan ide fungsi delta (yaitu operasi biner yang memiliki fungsi delta sebagai elemen identitasnya). Bahkan tanpa mempertimbangkan hubungannya dengan konvolusi, deskripsi sinyal sangat tergantung pada gagasan fungsi delta. Jadi pertanyaannya kemudian, dari mana kita mendapatkan ide untuk fungsi delta? Sejauh yang saya tahu, setidaknya sejauh kertas Fourier tentang Teori Analitik Panas, di mana ia muncul secara implisit. Satu sumber untuk informasi lebih lanjut adalah makalah ini tentang Asal dan Sejarah Konvolusi oleh Alejandro Domínguez.

Sekarang, itu adalah dua pendekatan utama terhadap gagasan dalam konteks teori sistem linear. Satu mendukung wawasan analitis, dan lainnya mendukung solusi numerik. Saya pikir keduanya berguna untuk gambaran lengkap tentang pentingnya konvolusi. Namun, dalam kasus diskrit, mengabaikan sistem linear sepenuhnya, ada perasaan di mana konvolusi adalah ide yang jauh lebih tua.

Perkalian Polinomial

Satu presentasi bagus dari gagasan bahwa konvolusi diskrit hanyalah penggandaan polinomial yang diberikan oleh Gilbert Strang dalam kuliah ini mulai sekitar 5:46. Dari perspektif itu, ide tersebut kembali ke pengenalan sistem bilangan posisional (yang mewakili bilangan secara implisit sebagai polinomial). Karena Z-transform mewakili sinyal sebagai polinomial dalam z, konvolusi akan muncul dalam konteks itu juga - bahkan jika Z-transform didefinisikan secara formal sebagai operator penundaan tanpa bantuan analisis kompleks dan / atau sebagai kasus khusus Laplace Transformasi .


terima kasih pak atas bimbingan Anda yang sangat berharga, Anda baru saja menunjukkan kepada saya cara yang tepat untuk mengikuti. Bantuan Anda ini telah mengajarkan kepada saya bahwa bagaimana menjadi manusia yang baik dimulai untuk orang lain .... :)
Mayank Tiwari

Bagaimana kebetulan besar ini menjelaskan bahwa Anda perlu melakukan konvolusi dalam kasusnya? Saya percaya bahwa di setiap domain, ada operasi yang berubah menjadi konvolusi ketika Anda mengembalikan argumen ke dalam domain waktu. Mungkinkah kita perlu melakukan muiltiplication dalam domain waktu untuk mendapatkan respons? Mengapa kita harus melipatgandakan frekuensi daripada menyapu waktu?
Val

1
Menimbang bahwa OP telah mengajukan pertanyaan tentang peran impuls dalam kaitannya dengan sistem LTI , saya membaca pertanyaan itu ketika dia menggunakannya sebagai contoh untuk memotivasi pertanyaan tentang dari mana konvolusi berasal - tidak harus perannya dalam menghitung impuls respon per se. Itukah yang kamu tanyakan?
datageist

1
Mengatakan bahwa kita perlu konvolusi karena identik dengan perkalian fourier terdengar tidak masuk akal bagi saya jika kita tidak tahu mengapa kita membutuhkan perkalian fourier. Ketika kita diberi respons impuls, ini berarti domain waktu dan konvolusi daripada sihir hitam apa pun di empat tingkat. Saya tidak berpikir bahwa referensi ke pertanyaan itu dapat menjelaskan hal ini. Bagaimanapun, tidak baik untuk memberikan "jawaban terlokalisasi" untuk pertanyaan-pertanyaan umum, mendasar (yaitu filosofis). T&J harus bermanfaat bagi pengunjung masa depan.
Val

Komentar Val di atas tepat sasaran. Saya bertanya-tanya bagaimana sistem linear bekerja sebelum transformasi Fourier ditemukan / ditemukan. Bagaimana mungkin benda mati yang tidak hidup menemukan formula yang begitu rumit?
Dilip Sarwate

6

Saya pernah memberikan jawaban di halaman diskusi konvolusi Wikipedia, yang pada dasarnya menanyakan pertanyaan yang sama: Mengapa inversi waktunya? . Filosofinya adalah bahwa Anda menerapkan satu pulsa pada waktu 0 ke filter Anda dan mencatat jawabannya pada waktu 0,1,2,3,4,…. Pada dasarnya, respons akan terlihat seperti fungsi, h (t). Anda dapat merencanakannya. Jika pulsa n kali lebih tinggi / lebih tinggi, pulsa respons akan lebih tinggi secara proporsional (ini karena selalu diasumsikan filter linear). Sekarang, semua DSP (dan bukan hanya DSP) adalah tentang apa yang terjadi ketika Anda menerapkan filter ke sinyal Anda? Anda tahu respons impuls. Sinyal Anda (terutama digital) tidak lebih dari serangkaian pulsa tinggi x (t). Ini memiliki tinggi / nilai pada waktu txt. Sistem linear itu keren sehingga Anda dapat menjumlahkan output untuk setiap pulsa input tersebut untuk mendapatkan fungsi respons y (t) untuk fungsi input x (t). Anda tahu bahwa pulsa keluaran y (t = 10) tergantung pada input langsung x (10), yang berkontribusi h (0) * x (10). Tetapi ada juga kontribusi, x (9) * h (1), untuk output dari pulsa sebelumnya, x (9), dan kontribusi dari nilai input yang bahkan lebih awal. Anda lihat, saat Anda menambahkan kontribusi dari input sebelumnya, satu argumen waktu berkurang sementara yang lain meningkat. Anda MAC semua kontribusi ke y (10) = h (0) * x (10) + h (1) * x (9) + h (2) * x (8) + ..., yang merupakan konvolusi.

Anda dapat menganggap fungsi y (t), h (t) dan x (t) sebagai vektor. Matriks adalah operator dalam aljabar linier. Mereka mengambil vektor input (serangkaian angka) dan menghasilkan vektor output (seri angka lainnya). Dalam hal ini, y adalah produk dari matriks konvolusi dengan vektor x,

y=[y0y1y2]=[h000h1h00h2h1h0][x0x1x2]=Hx

Sekarang, karena konvolusi adalah matriks Toeplitz , ia memiliki Fourier eigenbasis dan, oleh karena itu, operator konvolusi (operator linier diwakili oleh matriks, tetapi matriks juga tergantung pada basisnya) adalah matriks diagonal yang bagus dalam domain fourier,

Y=[Y0Y1Y2]=[λ0000λ1000λ2][X0X1X2]=diag(H)X

Note, much more zeroes and, thus, much simpler computation. This result is know as "convolution theorem" and, as first response answered, it is much simpler in the fourier domain. But, this is phylosophy behind the "convolution theorem", fourier basis and linear operators rather than ubiquitous need for convolution.

Normally, you do convolution because you have your input signal, impulse response and require output in time domain. You may transform into fourier space to optimize computation. But, it is not practical for simple filters, as I've seen in the DSPGuide. If your filter looks like y[currentTime]=k1x[time1]+k2x(time2)+by[time1], it makes no sense to fourier transform. You just do n multiplications, for computing every y. It is also natural for real-time. In real-time you compute only one y at a time. You may think of Fourier transform if you have your signal x recorded and you need to compute the whole vector y at once. This would need NxN MAC operations and Fourier can help to reduce them to N log(N).


A couple notes: how would you extend this description for the continuous-time case (which obviously came before the discrete-time case)? Also, there are many real-time applications that use Fourier-transform-based methods for fast convolution. Saying that outputs are always calculated one at a time for real-time applications just isn't true.
Jason R

With that said, nice job pointing out the fact that the Toeplitz structure of the convolution matrix implies that it admits a diagonal representation under a Fourier basis.
Jason R

Yes, may be you use fourier transfrom in the real-time. I am far from being DSP expert. I just expressed the idea (which I got from my scarce practice and reading DSPGuide). Anyway, I want to highlight that fourier has nothing to do with the phylosophy of convolution. Might be I need to remove all the fourier-related discussion, since it is distracting. Convolution is natural in the time domain and is needed without any Fourier, no matter how cool the Fourier is.
Val

The fact that continous-time case came before historically, does not demand us that we should learn in the same order. I think that it is easier to understand the philosophy of many things, including convolution, starting with the discrete case (and we are in DSP.se to take this approach). In continous-case a series of MAC operations is turned into integration, as we make our pulses shorter and shorter. BTW, integration itself f(x)dx is understood as a limit case of the discrete summation: f(x)dx=limdx0(f(x)dx). So, it cannot come before discrete summation.
Val

@JasonR In the continuous setting, you'd replace the Toeplitz matrix by a shift-invariant operator. You then can show that the Fourier basis functions diagonalize this operator.
lp251

3

Although the previous answers have been really good, I would like to add my viewpoint about convolution where I just make it easier to visualize due to the figures.

One wonders if there is any method through which an output signal of a system can be determined for a given input signal. Convolution is the answer to that question, provided that the system is linear and time-invariant (LTI).

Assume that we have an arbitrary signal s[n]. Then, s[n] can be decomposed into a scaled sum of shifted unit impulses through the following reasoning. Multiply s[n] with a unit impulse shifted by m samples as δ[nm]. Since δ[nm] is equal to 0 everywhere except at n=m, this would multiply all values of s[n] by 0 when n is not equal to m and by 1 when n is equal to m. So the resulting sequence will have an impulse at n=m with its value equal to s[m]. This process is clearly illustrated in Figure below.

enter image description here

This can be mathematically written as

s[n]δ[nm]=s[m]δ[nm]
Repeating the same procedure with a different delay m gives
s[n]δ[nm]=s[m]δ[nm]

The value s[m] is extracted at this instant. Therefore, if this multiplication is repeated over all possible delays <m<, and all produced signals are summed together, the result will be the sequence s[n] itself.

s[n]=+s[2]δ[n+2]+s[1]δ[n+1]+s[0]δ[n]+s[1]δ[n1]+s[2]δ[n2]+=m=s[m]δ[nm]

In summary, the above equation states that s[n] can be written as a summation of scaled unit impulses, where each unit impulse δ[nm] has an amplitude s[m]. An example of such a summation is shown in Figure below.

enter image description here

Consider what happens when it is given as an input to an LTI system with an impulse response h[n].

enter image description here

This leads to an input-output sequence as

enter image description here

During the above procedure, we have worked out the famous convolution equation that describes the output r[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 shift n,

[Flip] Arranging the equation as r[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 obtain h[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 sequence s[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 time n.

[Repeat] Repeat the above steps for every possible value of n.

An example of convolution between two signals s[n]=[211] 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 signals s[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].

enter image description here

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 output r[n] as

r[n] = +s[2]h[n+2] +s[1]h[n+1] +s[0]h[n] + s[1]h[n1] + s[2]h[n2] +
Let us solve the same example as in the above Figure, where s[n]=[2 11] and h[n]=[112]. This is shown in Table below.

enter image description here

Such a method is illustrated in Figure below. From an implementation point of view, there is no difference between both methods.

enter image description here

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.