Talk:Deconvolution/2D+: Difference between revisions

m
added a section header to the 1st topic so that the table of contents (TOC) is in the correct place.
m (link fixed)
m (added a section header to the 1st topic so that the table of contents (TOC) is in the correct place.)
 
(4 intermediate revisions by 2 users not shown)
Line 1:
== higher dimensional deconvolution ==
I got interested in higher dimensional deconvolution when contacted by someone about using it as a way of looking for trading indicators in financial time series. I set this task as an example of something that I'm speculating can be done well with functional and array processing languages, but only with difficulty otherwise, which I hope someone will weigh in to confirm or refute. In case anyone wants to know, consistent [[http://wwwdrop.filedropper.comio/tdatyatxacy test data]] were generated partly by this higher dimensional convolution function,
<lang Ursala>conv = +^|(~&x+,*DrlDSNiCK9xxSNiCK9K7iFS+ *)=>times+ **+ *K7|\x+ iota; * ! plus:-0</lang>
invoked as <code>(conv d)(h,f)</code> with dimension <code>d &gt; 0</code> and conforming <code>h</code> and <code>f</code>. (This function essentially subsumes the [[Image convolution]] task as a special case with <code>d = 2</code> and <code>|h| = 3</code>.) I suggest a development methodology based on warming up with [[Deconvolution/1D]], then hand coding the solutions for the next few dimensions, and then looking for the pattern.
 
--[[User:Sluggo|Sluggo]] 03:24, 23 February 2010 (UTC)
 
 
I am new here, but I think the definition of convolution is wrong and should be
:<math>G(n_0, \dots, n_{d-1})=\sum_{m_0=-\infty}^{\infty}\dots\sum_{m_{d-1}=-\infty}^{\infty}F(m_0, \dots, m_{d-1})H(n_0-m_0, \dots, n_{d-1}-m_{d-1})</math>
 
in accordance with [[http://en.wikipedia.org/wiki/Convolution#Definition|Wiki convolution]]
 
--[[User:R.E. Boss|R.E. Boss]] 08:45, 3 march 2010
 
My bad. It's fixed now.
 
--[[User:Sluggo|Sluggo]] 09:21, 3 March 2010 (UTC)
 
== Help ==
Line 58 ⟶ 71:
Next, pair up each row of the matrix-of-vectors <math>A</math> with the corresponding member of
<math>g</math>. Since <math>A</math> is a matrix of vectors, each row of it can be considered a matrix
of scalars on its own. For each <math>i</math> ranging from 0 to <math>|g|-1</math>, the pair <math>(g_i,A_i)</math> of the <math>i</math>-th member of <math>g</math> and the <math>i</math>-th row of <math>A</math> will consist of a vector <math>g_i</math> and a matrix <math>A_{i}</math>. Pair up a copy of <math>g_i</math> with each row of <math>A_{i}</math> and apply the 1 dimensional <code>band</code> function to each member of the list of all such pairs. This step will yield a list of matrices (of scalars) each with <math>|g_i|</math> rows. Flatten this list of matrices into a single matrix with <math>|g_i|</math> rows by concatenating them row-wise (i.e., horizontally). Having done so for all <math>(g_i,A_i)</math> pairs, flatten the resulting list of <math>|g|</math> matrices into a one largesingle matrix having <math>|g|*|g_0|</math> rows by concatenating them column-wise (i.e., vertically). This matrix should then be fed to the linear equation solver along with a flattened copy of <math>g</math>.
 
The result returned by the linear equation solver will be a list of