Convolution: Difference between revisions
Jump to navigation
Jump to search
imported>OAbot m Open access bot: url-access updated in citation with #oabot. |
imported>Explicit m Removing link(s) because Expired PROD, concern was: Unclear if meets notability (and if should be merged into articles like https://en.wikipedia.org/wiki/Signal_averaging), but in any case in current shape article would be better off rewritten (XFDcloser) |
||
| Line 5: | Line 5: | ||
<!--Note that g∗f and f∗g would be identical even without the symmetry of f, so please don't change the statement above.-->]] | <!--Note that g∗f and f∗g would be identical even without the symmetry of f, so please don't change the statement above.-->]] | ||
In [[mathematics]] (in particular, [[functional analysis]]), '''convolution''' is a [[operation (mathematics)|mathematical operation]] on two [[function (mathematics)|function]]s <math>f</math> and <math>g</math> that produces a third function <math>f*g</math>, as the [[integral]] of the product of the two functions after one is reflected about the y-axis and shifted. | In [[mathematics]] (in particular, [[functional analysis]]), '''convolution''' is a [[operation (mathematics)|mathematical operation]] on two [[function (mathematics)|function]]s <math>f</math> and <math>g</math> that produces a third function <math>f*g</math>, as the [[integral]] of the product of the two functions after one is reflected about the y-axis and shifted. The term ''convolution'' refers to both the resulting function and to the process of computing it. The integral is evaluated for all values of shift, producing the convolution function. The choice of which function is reflected and shifted before the integral does not change the integral result (see [[#Properties|commutativity]]). Graphically, it expresses how the 'shape' of one function is modified by the other. | ||
Some features of convolution are similar to [[cross-correlation]]: for real-valued functions, of a continuous or discrete variable, convolution <math>f*g</math> differs from cross-correlation <math>f \star g</math> only in that either <math>f(x)</math> or <math>g(x)</math> is reflected about the y-axis in convolution; thus it is a cross-correlation of <math>g(-x)</math> and <math>f(x)</math>, or <math>f(-x)</math> and <math>g(x)</math>.{{efn-ua|Reasons for the reflection include: | Some features of convolution are similar to [[cross-correlation]]: for real-valued functions, of a continuous or discrete variable, convolution <math>f*g</math> differs from cross-correlation <math>f \star g</math> only in that either <math>f(x)</math> or <math>g(x)</math> is reflected about the y-axis in convolution; thus it is a cross-correlation of <math>g(-x)</math> and <math>f(x)</math>, or <math>f(-x)</math> and <math>g(x)</math>.{{efn-ua|Reasons for the reflection include: | ||
| Line 12: | Line 12: | ||
}} For complex-valued functions, the cross-correlation operator is the [[Hermitian adjoint|adjoint]] of the convolution operator. | }} For complex-valued functions, the cross-correlation operator is the [[Hermitian adjoint|adjoint]] of the convolution operator. | ||
Convolution has applications that include [[probability]], [[statistics]], [[acoustics]], [[spectroscopy]], [[signal processing]] and [[image processing]], [[ | Convolution has applications that include [[probability]], [[statistics]], [[acoustics]], [[spectroscopy]], [[signal processing]] and [[image processing]], [[computer vision]] and [[visual perception|human vision]], [[geophysics]], [[engineering]], [[physics]], and [[differential equation]]s.<ref>{{cite journal |last1=Bahri |first1=Mawardi |last2=Ashino |first2=Ryuichi |last3=Vaillancourt |first3=Rémi |title=Convolution Theorems for Quaternion Fourier Transform: Properties and Applications |url=https://core.ac.uk/download/pdf/25493611.pdf |archive-url=https://web.archive.org/web/20201021001150/https://core.ac.uk/download/pdf/25493611.pdf |archive-date=2020-10-21 |url-status=live |journal=Abstract and Applied Analysis |volume=2013 |access-date=2022-11-11 |pages=1–10 |doi=10.1155/2013/162769 |date=2013|doi-access=free}}</ref> | ||
The convolution can be defined for functions on [[Euclidean space]] and other [[group (mathematics)|group]]s (as [[algebraic structure]]s).{{citation needed|date=October 2017}} For example, [[periodic function]]s, such as the [[discrete-time Fourier transform]], can be defined on a [[circle]] and convolved by [[periodic convolution]]. (See row 18 at {{section link|DTFT|Properties}}.) A ''discrete convolution'' can be defined for functions on the set of [[integer]]s. | The convolution can be defined for functions on [[Euclidean space]] and other [[group (mathematics)|group]]s (as [[algebraic structure]]s).{{citation needed|date=October 2017}} For example, [[periodic function]]s, such as the [[discrete-time Fourier transform]], can be defined on a [[circle]] and convolved by [[periodic convolution]]. (See row 18 at {{section link|DTFT|Properties}}.) A ''discrete convolution'' can be defined for functions on the set of [[integer]]s. | ||
| Line 166: | Line 166: | ||
== Discrete convolution == | == Discrete convolution == | ||
[[File:2D Convolution Animation.gif|thumb|right|class=skin-invert-image|Discrete 2D | [[File:2D Convolution Animation.gif|thumb|right|class=skin-invert-image|Discrete 2D convolution animation]] | ||
For complex-valued functions <math>f</math> and <math>g</math> defined on the set <math>\Z</math> of integers, the ''discrete convolution'' of <math>f</math> and <math>g</math> is given by:<ref>{{harvnb|Damelin|Miller|2011|p=219}}</ref> | For complex-valued functions <math>f</math> and <math>g</math> defined on the set <math>\Z</math> of integers, the ''discrete convolution'' of <math>f</math> and <math>g</math> is given by:<ref>{{harvnb|Damelin|Miller|2011|p=219}}</ref> | ||
| Line 177: | Line 177: | ||
The convolution of two finite sequences is defined by extending the sequences to finitely supported functions on the set of integers. When the sequences are the coefficients of two [[polynomial]]s, then the coefficients of the [[Polynomial multiplication|ordinary product of the two polynomials]] are the convolution of the original two sequences. This is known as the [[Cauchy product]] of the coefficients of the sequences. | The convolution of two finite sequences is defined by extending the sequences to finitely supported functions on the set of integers. When the sequences are the coefficients of two [[polynomial]]s, then the coefficients of the [[Polynomial multiplication|ordinary product of the two polynomials]] are the convolution of the original two sequences. This is known as the [[Cauchy product]] of the coefficients of the sequences. | ||
Thus when {{mvar|g}} | Thus, when {{mvar|g}} is non-zero over a finite interval {{math|[−''m'',+''m'']}} (representing, for instance, a [[finite impulse response]]), a finite summation may be used:<ref>{{cite book |last1=Press |first1=William H. |last2=Flannery |first2=Brian P. |last3=Teukolsky |first3=Saul A. |last4=Vetterling |first4=William T. |title=Numerical Recipes in Pascal |year=1989 |publisher=Cambridge University Press |isbn=0-521-37516-9 |page=[https://archive.org/details/numericalrecipes0000unse/page/450 450] |url=https://archive.org/details/numericalrecipes0000unse/page/450}}</ref> | ||
:<math>(f * g)[n]=\sum_{m=-M}^M f[n-m]g[m].</math> | :<math>(f * g)[n]=\sum_{m=-M}^M f[n-m]g[m].</math> | ||
| Line 212: | Line 212: | ||
{{EquationNote|Eq.1}} requires {{mvar|N}} arithmetic operations per output value and {{math|''N''<sup>2</sup>}} operations for {{mvar|N}} outputs. That can be significantly reduced with any of several fast algorithms. [[Digital signal processing]] and other applications typically use fast convolution algorithms to reduce the cost of the convolution to O({{mvar|N}} log {{mvar|N}}) complexity. | {{EquationNote|Eq.1}} requires {{mvar|N}} arithmetic operations per output value and {{math|''N''<sup>2</sup>}} operations for {{mvar|N}} outputs. That can be significantly reduced with any of several fast algorithms. [[Digital signal processing]] and other applications typically use fast convolution algorithms to reduce the cost of the convolution to O({{mvar|N}} log {{mvar|N}}) complexity. | ||
The most common fast convolution algorithms use [[fast Fourier transform]] (FFT) algorithms via the [[Discrete Fourier transform#Circular convolution theorem and cross-correlation theorem|circular convolution theorem]]. Specifically, the [[circular convolution]] of two finite-length sequences is found by taking an FFT of each sequence, multiplying pointwise, and then performing an inverse FFT. Convolutions of the type defined above are then efficiently implemented using that technique in conjunction with zero-extension and/or discarding portions of the output. Other fast convolution algorithms, such as the [[Schönhage–Strassen algorithm]] or the Mersenne transform,<ref name=Rader1972>{{cite journal|last=Rader|first=C.M.|title=Discrete Convolutions via Mersenne Transforms|journal=IEEE Transactions on Computers|date=December 1972|volume=21|issue=12|pages=1269–1273|doi=10.1109/T-C.1972.223497|s2cid=1939809}}</ref> use fast Fourier transforms in other [[ring (mathematics)|ring]]s. The Winograd method is used as an alternative to the FFT.<ref>{{Cite book |last=Winograd |first=Shmuel |url=https://epubs.siam.org/doi/book/10.1137/1.9781611970364 |title=Arithmetic Complexity of Computations |date=January 1980 |publisher=Society for Industrial and Applied Mathematics |isbn=978-0-89871-163-9 |language=en |doi=10.1137/1.9781611970364}}</ref> It significantly speeds up 1D,<ref>{{Cite journal |last1=Lyakhov |first1=P. A. |last2=Nagornov |first2=N. N. |last3=Semyonova |first3=N. F. |last4=Abdulsalyamova |first4=A. S. |date=June 2023 |title=Reducing the Computational Complexity of Image Processing Using Wavelet Transform Based on the Winograd Method |url=https://link.springer.com/10.1134/S1054661823020074 |journal=Pattern Recognition and Image Analysis |language=en |volume=33 |issue=2 |pages=184–191 |doi=10.1134/S1054661823020074 |s2cid=259310351 |issn=1054-6618|url-access=subscription }}</ref> 2D,<ref>{{Cite journal |last1=Wu |first1=Di |last2=Fan |first2=Xitian |last3=Cao |first3=Wei |last4=Wang |first4=Lingli |date=May 2021 |title=SWM: A High-Performance Sparse-Winograd Matrix Multiplication CNN Accelerator | The most common fast convolution algorithms use [[fast Fourier transform]] (FFT) algorithms via the [[Discrete Fourier transform#Circular convolution theorem and cross-correlation theorem|circular convolution theorem]]. Specifically, the [[circular convolution]] of two finite-length sequences is found by taking an FFT of each sequence, multiplying pointwise, and then performing an inverse FFT. Convolutions of the type defined above are then efficiently implemented using that technique in conjunction with zero-extension and/or discarding portions of the output. Other fast convolution algorithms, such as the [[Schönhage–Strassen algorithm]] or the Mersenne transform,<ref name=Rader1972>{{cite journal|last=Rader|first=C.M.|title=Discrete Convolutions via Mersenne Transforms|journal=IEEE Transactions on Computers|date=December 1972|volume=21|issue=12|pages=1269–1273|doi=10.1109/T-C.1972.223497|s2cid=1939809}}</ref> use fast Fourier transforms in other [[ring (mathematics)|ring]]s. The Winograd method is used as an alternative to the FFT.<ref>{{Cite book |last=Winograd |first=Shmuel |url=https://epubs.siam.org/doi/book/10.1137/1.9781611970364 |title=Arithmetic Complexity of Computations |date=January 1980 |publisher=Society for Industrial and Applied Mathematics |isbn=978-0-89871-163-9 |language=en |doi=10.1137/1.9781611970364}}</ref> It significantly speeds up 1D,<ref>{{Cite journal |last1=Lyakhov |first1=P. A. |last2=Nagornov |first2=N. N. |last3=Semyonova |first3=N. F. |last4=Abdulsalyamova |first4=A. S. |date=June 2023 |title=Reducing the Computational Complexity of Image Processing Using Wavelet Transform Based on the Winograd Method |url=https://link.springer.com/10.1134/S1054661823020074 |journal=Pattern Recognition and Image Analysis |language=en |volume=33 |issue=2 |pages=184–191 |doi=10.1134/S1054661823020074 |s2cid=259310351 |issn=1054-6618|url-access=subscription }}</ref> 2D,<ref>{{Cite journal |last1=Wu |first1=Di |last2=Fan |first2=Xitian |last3=Cao |first3=Wei |last4=Wang |first4=Lingli |date=May 2021 |title=SWM: A High-Performance Sparse-Winograd Matrix Multiplication CNN Accelerator |journal=IEEE Transactions on Very Large Scale Integration (VLSI) Systems |volume=29 |issue=5 |pages=936–949 |doi=10.1109/TVLSI.2021.3060041 |bibcode=2021ITVL...29..936W |s2cid=233433757 |issn=1063-8210}}</ref> and 3D<ref>{{Cite journal |last1=Mittal |first1=Sparsh |last2=Vibhu |date=May 2021 |title=A survey of accelerator architectures for 3D convolution neural networks |url=https://linkinghub.elsevier.com/retrieve/pii/S1383762121000400 |journal=Journal of Systems Architecture |language=en |volume=115 |article-number=102041 |doi=10.1016/j.sysarc.2021.102041|s2cid=233917781 |url-access=subscription }}</ref> convolution. | ||
If one sequence is much longer than the other, zero-extension of the shorter sequence and fast circular convolution is not the most computationally efficient method available.<ref name=Madisetti1999>{{cite book|editor-last=Madisetti |editor-first=Vijay K. |chapter=Fast Convolution and Filtering |first1=Ivan W. |last1=Selesnick |first2=C. Sidney |last2=Burrus |title=Digital Signal Processing Handbook |year=1999 |publisher=CRC Press |isbn=978-1-4200-4563-5 |page=Section 8}}</ref> Instead, decomposing the longer sequence into blocks and convolving each block allows for faster algorithms such as the [[overlap–save method]] and [[overlap–add method]].<ref name=Juang2004>{{cite web|last=Juang|first=B.H.|title=Lecture 21: Block Convolution|url=https://users.ece.gatech.edu/~juang/4270/BHJ4270-21.pdf |archive-url=https://web.archive.org/web/20040729204137/https://users.ece.gatech.edu/~juang/4270/BHJ4270-21.pdf |archive-date=2004-07-29 |url-status=live|publisher=EECS at the Georgia Institute of Technology|access-date=17 May 2013}}</ref> A hybrid convolution method that combines block and [[finite impulse response|FIR]] algorithms allows for a zero input-output latency that is useful for real-time convolution computations.<ref name=Gardner1994>{{cite journal|last=Gardner|first=William G.|title=Efficient Convolution without Input/Output Delay|journal=Audio Engineering Society Convention 97|date=November 1994|series=Paper 3897|url=https://cs.ust.hk/mjg_lib/bibs/DPSu/DPSu.Files/Ga95.PDF |archive-url=https://web.archive.org/web/20150408211312/https://cs.ust.hk/mjg_lib/bibs/DPSu/DPSu.Files/Ga95.PDF |archive-date=2015-04-08 |url-status=live|access-date=17 May 2013}}</ref> | If one sequence is much longer than the other, zero-extension of the shorter sequence and fast circular convolution is not the most computationally efficient method available.<ref name=Madisetti1999>{{cite book|editor-last=Madisetti |editor-first=Vijay K. |chapter=Fast Convolution and Filtering |first1=Ivan W. |last1=Selesnick |first2=C. Sidney |last2=Burrus |title=Digital Signal Processing Handbook |year=1999 |publisher=CRC Press |isbn=978-1-4200-4563-5 |page=Section 8}}</ref> Instead, decomposing the longer sequence into blocks and convolving each block allows for faster algorithms such as the [[overlap–save method]] and [[overlap–add method]].<ref name=Juang2004>{{cite web|last=Juang|first=B.H.|title=Lecture 21: Block Convolution|url=https://users.ece.gatech.edu/~juang/4270/BHJ4270-21.pdf |archive-url=https://web.archive.org/web/20040729204137/https://users.ece.gatech.edu/~juang/4270/BHJ4270-21.pdf |archive-date=2004-07-29 |url-status=live|publisher=EECS at the Georgia Institute of Technology|access-date=17 May 2013}}</ref> A hybrid convolution method that combines block and [[finite impulse response|FIR]] algorithms allows for a zero input-output latency that is useful for real-time convolution computations.<ref name=Gardner1994>{{cite journal|last=Gardner|first=William G.|title=Efficient Convolution without Input/Output Delay|journal=Audio Engineering Society Convention 97|date=November 1994|series=Paper 3897|url=https://cs.ust.hk/mjg_lib/bibs/DPSu/DPSu.Files/Ga95.PDF |archive-url=https://web.archive.org/web/20150408211312/https://cs.ust.hk/mjg_lib/bibs/DPSu/DPSu.Files/Ga95.PDF |archive-date=2015-04-08 |url-status=live|access-date=17 May 2013}}</ref> | ||
| Line 325: | Line 325: | ||
; Complex conjugation: <math display="block">\overline{f * g} = \overline{f} * \overline{g}</math> | ; Complex conjugation: <math display="block">\overline{f * g} = \overline{f} * \overline{g}</math> | ||
; Time reversal: | ; Time reversal: If <math>q(t) = r(t)*s(t),</math> then <math>q(-t) = r(-t)*s(-t).</math> | ||
<blockquote> | <blockquote> | ||
| Line 469: | Line 469: | ||
:<math>\|\mu * \nu\| \le \left\|\mu\right\| \left\|\nu\right\|.</math> | :<math>\|\mu * \nu\| \le \left\|\mu\right\| \left\|\nu\right\|.</math> | ||
In the case when ''G'' is [[locally compact]] with (left-)[[Haar measure]] λ, and μ and ν are [[absolute continuity|absolutely continuous]] with respect to a λ, [[Radon–Nikodym theorem|so that each has a density function]], then the convolution μ∗ν is also absolutely continuous, and its density function is just the convolution of the two separate density functions. | In the case when ''G'' is [[locally compact]] with (left-)[[Haar measure]] λ, and μ and ν are [[absolute continuity|absolutely continuous]] with respect to a λ, [[Radon–Nikodym theorem|so that each has a density function]], then the convolution μ∗ν is also absolutely continuous, and its density function is just the convolution of the two separate density functions. In fact, if ''either'' measure is absolutely continuous with respect to the Haar measure, then so is their convolution.<ref>Hewitt and Ross (1979), Theorem 19.18, p 272.</ref> | ||
If μ and ν are [[probability measure]]s on the topological group {{nowrap|('''R''',+),}} then the convolution ''μ''∗''ν'' is the [[probability distribution]] of the sum ''X'' + ''Y'' of two [[statistical independence|independent]] [[random variable]]s ''X'' and ''Y'' whose respective distributions are μ and ν. | If μ and ν are [[probability measure]]s on the topological group {{nowrap|('''R''',+),}} then the convolution ''μ''∗''ν'' is the [[probability distribution]] of the sum ''X'' + ''Y'' of two [[statistical independence|independent]] [[random variable]]s ''X'' and ''Y'' whose respective distributions are μ and ν. | ||
| Line 493: | Line 493: | ||
Convolution and related operations are found in many applications in science, engineering and mathematics. | Convolution and related operations are found in many applications in science, engineering and mathematics. | ||
* [[Convolutional neural network]]s apply multiple cascaded ''convolution'' kernels with applications in [[machine vision]] and [[artificial intelligence]].<ref>{{Cite journal|last1=Zhang|first1=Yingjie|last2=Soon|first2=Hong Geok|last3=Ye|first3=Dongsen|last4=Fuh|first4=Jerry Ying Hsi|last5=Zhu|first5=Kunpeng|date=September 2020|title=Powder-Bed Fusion Process Monitoring by Machine Vision With Hybrid Convolutional Neural Networks | * [[Convolutional neural network]]s apply multiple cascaded ''convolution'' kernels with applications in [[machine vision]] and [[artificial intelligence]].<ref>{{Cite journal|last1=Zhang|first1=Yingjie|last2=Soon|first2=Hong Geok|last3=Ye|first3=Dongsen|last4=Fuh|first4=Jerry Ying Hsi|last5=Zhu|first5=Kunpeng|date=September 2020|title=Powder-Bed Fusion Process Monitoring by Machine Vision With Hybrid Convolutional Neural Networks|journal=IEEE Transactions on Industrial Informatics|volume=16|issue=9|pages=5769–5779|doi=10.1109/TII.2019.2956078|bibcode=2020ITII...16.5769Z |s2cid=213010088|issn=1941-0050}}</ref><ref>{{Cite journal|last1=Chervyakov|first1=N.I.|last2=Lyakhov|first2=P.A.|last3=Deryabin|first3=M.A.|last4=Nagornov|first4=N.N.|last5=Valueva|first5=M.V.|last6=Valuev|first6=G.V.|date=September 2020|title=Residue Number System-Based Solution for Reducing the Hardware Cost of a Convolutional Neural Network|url=https://linkinghub.elsevier.com/retrieve/pii/S092523122030583X|journal=Neurocomputing|language=en|volume=407|pages=439–453|doi=10.1016/j.neucom.2020.04.018|s2cid=219470398|quote=Convolutional neural networks represent deep learning architectures that are currently used in a wide range of applications, including computer vision, speech recognition, time series analysis in finance, and many others.|url-access=subscription}}</ref> Though these are actually '''cross-correlations''' rather than convolutions.<ref>{{Cite journal|last=Atlas, Homma, and Marks|title=An Artificial Neural Network for Spatio-Temporal Bipolar Patterns: Application to Phoneme Classification|url=https://papers.nips.cc/paper/1987/file/98f13708210194c475687be6106a3b84-Paper.pdf |archive-url=https://web.archive.org/web/20210414091306/https://papers.nips.cc/paper/1987/file/98f13708210194c475687be6106a3b84-Paper.pdf |archive-date=2021-04-14 |url-status=live|journal=Neural Information Processing Systems (NIPS 1987)|volume=1}}</ref> | ||
* In non-[[artificial neural network|neural-network]]-based [[image processing]] | * In non-[[artificial neural network|neural-network]]-based [[image processing]] | ||
** In [[digital image processing]] convolutional filtering plays an important role in many important [[algorithm]]s in [[edge detection]] and related processes (see [[Kernel (image processing)]]) | ** In [[digital image processing]] convolutional filtering plays an important role in many important [[algorithm]]s in [[edge detection]] and related processes (see [[Kernel (image processing)]]) | ||
| Line 525: | Line 525: | ||
* [[Deconvolution]] | * [[Deconvolution]] | ||
* [[Dirichlet convolution]] | * [[Dirichlet convolution]] | ||
* [[List of convolutions of probability distributions]] | * [[List of convolutions of probability distributions]] | ||
* [[LTI system theory#Impulse response and convolution]] | * [[LTI system theory#Impulse response and convolution]] | ||
| Line 570: | Line 569: | ||
{{Wiktionary|convolution}} | {{Wiktionary|convolution}} | ||
{{Commons category|Convolution}} | {{Commons category|Convolution}} | ||
* https://jhu.edu/~signals/convolve/index.html Visual convolution Java Applet | * https://jhu.edu/~signals/convolve/index.html Visual convolution Java Applet | ||
* https://jhu.edu/~signals/discreteconv2/index.html Visual convolution Java Applet for discrete-time functions | * https://jhu.edu/~signals/discreteconv2/index.html Visual convolution Java Applet for discrete-time functions | ||
* https://get-the-solution.net/projects/discret-convolution discret-convolution online calculator | * https://get-the-solution.net/projects/discret-convolution discret-convolution online calculator | ||
*https://lpsa.swarthmore.edu/Convolution/CI.html Convolution demo and visualization in JavaScript | * https://lpsa.swarthmore.edu/Convolution/CI.html Convolution demo and visualization in JavaScript | ||
*https://phiresky.github.io/convolution-demo/ Another convolution demo in JavaScript | * https://phiresky.github.io/convolution-demo/ Another convolution demo in JavaScript | ||
* [[iarchive:Lectures on Image Processing|Lectures on Image Processing: A collection of 18 lectures in pdf format from Vanderbilt University. Lecture 7 is on 2-D convolution.]], by Alan Peters | * [[iarchive:Lectures on Image Processing|Lectures on Image Processing: A collection of 18 lectures in pdf format from Vanderbilt University. Lecture 7 is on 2-D convolution.]], by Alan Peters | ||
* [https://micro.magnet.fsu.edu/primer/java/digitalimaging/processing/kernelmaskoperation/ Convolution Kernel Mask Operation Interactive tutorial] | * [https://micro.magnet.fsu.edu/primer/java/digitalimaging/processing/kernelmaskoperation/ Convolution Kernel Mask Operation Interactive tutorial] | ||
* [https://mathworld.wolfram.com/Convolution.html Convolution] at [[MathWorld]] | * [https://mathworld.wolfram.com/Convolution.html Convolution] at [[MathWorld]] | ||
| Line 585: | Line 581: | ||
* [https://youtube.com/watch?v=IW4Reburjpc A video lecture on the subject of convolution] given by [[Salman Khan (educator)|Salman Khan]] | * [https://youtube.com/watch?v=IW4Reburjpc A video lecture on the subject of convolution] given by [[Salman Khan (educator)|Salman Khan]] | ||
* [https://dspguide.com/ch24/6.htm Example of FFT convolution for pattern-recognition (image processing)] | * [https://dspguide.com/ch24/6.htm Example of FFT convolution for pattern-recognition (image processing)] | ||
*[https://betterexplained.com/articles/intuitive-convolution/ Intuitive Guide to Convolution] A blogpost about an intuitive interpretation of convolution. | * [https://betterexplained.com/articles/intuitive-convolution/ Intuitive Guide to Convolution] A blogpost about an intuitive interpretation of convolution. | ||
{{Artificial intelligence navbox}} | {{Artificial intelligence navbox}} | ||
[[Category:Bilinear maps]] | |||
[[Category:Feature detection (computer vision)]] | |||
[[Category:Functional analysis]] | [[Category:Functional analysis]] | ||
[[Category:Image processing]] | [[Category:Image processing]] | ||
[[Category:Fourier analysis]] | [[Category:Fourier analysis]] | ||