The DSP
package contains some routines very vital and basic to Fourier analysis. However the simple deconvultion operation is not working. Consider the following simple code
using DSP;
a = zeros( Float64, 5); a[3]=10;
b = zeros( Float64, 5); b[3]=0.1;
c = conv(a,b);
d = deconv(c,a); display(d');
Thus a, b represent the Fourier basis of simple Fourier functions and the coefficients are inverses of each other. The vector c is thus all zeros with one 1. Deconvoluting against c however doesnt give b. It gives the error :
ERROR: ArgumentError: filter vector a[1] must be nonzero
Stacktrace:
[1] filt!(::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}) at C:\Users\iamsu\.julia\packages\DSP\RUXAo\src\dspbase.jl:34
[2] deconv(::Array{Float64,1}, ::Array{Float64,1}) at C:\Users\iamsu\.julia\packages\DSP\RUXAo\src\dspbase.jl:18
[3] top-level scope at none:0
Since the mathematics is simple and correct, this reveals a bug in the routine.