Multidimensional discrete convolution: Difference between revisions

Content deleted Content added
GreenC bot (talk | contribs)
Remove 2 stray access-date. (GreenC bot job #5)
adding links to references using Google Scholar
Line 117:
 
===Row-Column Decomposition===
The row-column method can be applied when one of the signals in the convolution is separable. The method exploits the properties of separability in order to achieve a method of calculating the convolution of two multidimensional signals that is more computationally efficient than direct computation of each sample (given that one of the signals are separable).<ref>{{cite journal|last1=Sihvo|first1=Tero|last2=Niittylahti|first2=Jarkko|title=Row-Column Decomposition Based 2D Transform Optimization on Subword Parallel Processors|date=5 June 2005|url=https://ieeexplore.ieee.org/abstract/document/1509860/}}</ref> The following shows the mathematical reasoning behind the row-column decomposition approach (typically <math>h(n_1,n_2)</math> is the separable signal):
 
<math>y(n_1,n_2)=\sum_{k_1=-\infty}^{\infty} \sum_{k_2=-\infty}^{\infty} h(k_1,k_2)x(n_1-k_1,n_2-k_2)</math>
Line 195:
==Overlap and Add==
 
Another method to perform multidimensional convolution is the '''overlap and add''' approach. This method helps reduce the computational complexity often associated with multidimensional convolutions due to the vast amounts of data inherent in modern-day digital systems.<ref>{{cite journal|last1 = Fernandez|first1 = Joseph|last2 = Kumar|first2 = Vijaya|title = Multidimensional Overlap-Add and Overlap-Save for Correlation and Convolution|journal = IEEE|date = |issue = Image Processing (ICIP)|pages = 509–513|url=https://ieeexplore.ieee.org/abstract/document/6738105/}}</ref> For sake of brevity, the two-dimensional case is used as an example, but the same concepts can be extended to multiple dimensions.
 
Consider a two-dimensional convolution using a direct computation:
Line 302:
<math>l_{Z''} =</math> <math>l_{Y''} +</math><math>l_{X''}</math> <math>= (M+K-1)</math><math>\times</math><math>(N+L-1)</math>
 
This vector length is equivalent to the dimensions of the original matrix output <math>Z</math>, making converting back to a matrix a direct transformation. Thus, the vector, <math>Z''</math>, is converted back to matrix form, which produces the output of the two-dimensional discrete convolution.<ref name=":1">{{Cite journal|url = https://www.researchgate.net/profile/Mostafa_Naghizadeh/publication/274360447_Multidimensional_convolution_via_a_1D_convolution_algorithm/links/584ed2ff08aecb6bd8d02227/Multidimensional-convolution-via-a-1D-convolution-algorithm.pdf|title = Multidimensional convolution via a 1D convolution algorithm|last = Naghizadeh|first = Mostafa|date = November 2009|journal = The Leading Edge|doi = |pmid = |access-date = |last2 = Sacchi|first2 = Mauricio}}</ref>
 
===Filtering on a Helix===
Line 332:
 
===Applications===
Helix transformations to implement recursive filters via convolution are used in various areas of signal processing. Although frequency ___domain Fourier analysis is effective when systems are stationary, with constant coefficients and periodically-sampled data, it becomes more difficult in unstable systems. The helix transform enables three-dimensional post-stack migration processes that can process data for three-dimensional variations in velocity.<ref name=":2" /> In addition, it can be applied to assist with the problem of implicit three-dimensional wavefield extrapolation.<ref>{{Cite journal|url = |title = Exploring three-dimensional implicit wavefield extrapolation with the helix transform|last = Fomel|first = Sergey|date = 1997|journal = SEP report|doi = |pmid = |access-date = |last2 = Claerbout|first2 = Jon|pages = 43–60|url=https://pdfs.semanticscholar.org/5993/a76fdb37d3b1a3dfba795d6ed596c608cec9.pdf#page=179}}</ref> Other applications include helpful algorithms in seismic data regularization, prediction error filters, and noise attenuation in geophysical digital systems.<ref name=":1" />
 
==Gaussian Convolution==
Line 378:
 
===Applications===
Gaussian convolutions are used extensively in signal and image processing. For example, image-blurring can be accomplished with Gaussian convolution where the <math>\sigma</math> parameter will control the strength of the blurring. Higher values would thus correspond to a more blurry end result.<ref>{{Cite web|title = Gaussian Blur - Image processing for scientists and engineers, Part 4|url = http://patrick-fuller.com/gaussian-blur-image-processing-for-scientists-and-engineers-part-4/|website = patrick-fuller.com|accessdate = 2015-11-12}}</ref> It is also commonly used in [[Computer vision]] applications such as [[Scale-invariant feature transform]] (SIFT) feature detection.<ref>{{cite journal|last1=Lowe|first1=D.G.|title=Object recognition from local scale-invariant features|journal=Proceedings of the International Conference on Computer Vision|date=1999|volume=2|pages=1150–1157|url=http://www.cs.ubc.ca/~lowe/papers/iccv99.pdf}}</ref>
 
==See also==