Deconvolution/1D: Difference between revisions

→‎{{header|Java}}: fixed error in deconv method where input parameters were reversed; changed array types from double[] to int[]; updated output; removed "untested" banner.
(→‎{{header|Java}}: fixed error in deconv method where input parameters were reversed; changed array types from double[] to int[]; updated output; removed "untested" banner.)
Line 555:
 
=={{header|Java}}==
{{untested|Java}}{{trans|Go}}
<lang java>import java.util.Arrays;
 
public class Deconvolution1D {
public static doubleint[] deconv(doubleint[] fg, doubleint[] gf) {
doubleint[] h = new doubleint[g.length - f.length + 1];
for (int n = 0; n < h.length; n++) {
h[n] = g[n];
int lower = Math.max(n - f.length + 1, 0);
for (int i = lower; i < n; i++)
h[n] -= h[i] * f[n - i];
h[n] /= f[0];
}
Line 572:
 
public static void main(String[] args) {
doubleint[] h = { -8, -9, -3, -1, -6, 7 };
doubleint[] f = { -3, -6, -1, 8, -6, 3, -1, -9, -9, 3, -2, 5, 2, -2, -7, -1 };
doubleint[] g = { 24, 75, 71, -34, 3, 22, -45, 23, 245, 25, 52, 25, -67, -96,
96, 31, 55, 36, 29, -43, -7 };
 
System.out.println(Arrays.toString(h));
StringBuilder sb = new StringBuilder();
System.out.println(Arrays.toString(deconv(g, f)));
Systemsb.out.printlnappend("h = " + Arrays.toString(fh) + "\n");
Systemsb.out.printlnappend("deconv(g, f) = " + Arrays.toString(deconv(g, hf)) + "\n");
sb.append("f = " + Arrays.toString(f) + "\n");
Systemsb.out.printlnappend("deconv(g, h) = " + Arrays.toString(deconv(g, fh)) + "\n");
System.out.println(Arrayssb.toString(h));
}
}</lang>
Output:
<pre>
h = [-8.0, -9.0, -3.0, -1.0, -6.0, 7.0]
deconv(g, f) = [-8.0, -9.0, -3.0, -1.0, -6.0, 7.0]
f = [-3.0, -6.0, -1.0, 8.0, -6.0, 3.0, -1.0, -9.0, -9.0, 3.0, -2.0, 5.0, 2.0, -2.0, -7.0, -1.0]
deconv(g, h) = [-3.0, -6.0, -1.0, 8.0, -6.0, 3.0, -1.0, -9.0, -9.0, 3.0, -2.0, 5.0, 2.0, -2.0, -7.0, -1.0]
</pre>
 
Anonymous user