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.
image-processing
discrete-signals
convolution
Mayank Tiwari
sumber
sumber
Jawaban:
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
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
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 :
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:
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)
dimana
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) ] L y(n)=L[ x(n) ]
dan waktu / shift invarian
sistem dapat ditulis ulang sebagai
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)
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∗δ n n+0 n×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 .
sumber
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 tx t . 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,
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,
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 likey[currentTime]=k1x[time−1]+k2x(time−2)+b∗y[time−1] , 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).
sumber
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 signals[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 δ[n−m] . Since δ[n−m] 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.
This can be mathematically written as
The values[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.
In summary, the above equation states thats[n] can be written as a summation of scaled unit impulses, where each unit impulse δ[n−m] has an amplitude s[m] . An example of such a summation is shown in Figure below.
Consider what happens when it is given as an input to an LTI system with an impulse responseh[n] .
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.
sumber