Použití dekonvoluce k "vyhlazení signálu"

Ze souboru data12.dat přečtem data do proměnné data.

data = << "d:\\user\\du\\vyuka\\four\\data\\data12.dat";

n = 512;

data = 
      Table[N[BesselJ[1, 10  i/n] + 0.2 (Random[] - 1/2)], {i, 1, n}];

ListPlot[data]

Nyní si definujeme funkci, pomocí které provedem dekonvoluci
                            2
                 -200 t
     k(t) = e

a = 400;

k = 
      Table[N[(Exp[-a ((((i/n)))^2)] + Exp[-a ((((i/n) - 1))^2)])
              /2], {i, n}];

ListPlot[k, PlotRange -> All]

Nyní vypočtem Fourierovu transformaci S(v)=F((s(t)) a K(v)=F(k(t)), potom provedem IFT na součin spekter S(v) . K(v).

Conv = InverseFourier[Fourier[data] Fourier[k]];

g1 = ListPlot[Chop[Conv]]

bes = Table[N[BesselJ[1, 10  i/n]], {i, 1, n}];

g2 = ListPlot[bes]

Show[g1, g2]

n = 1024;

data = 
      Table[N[BesselJ[1, 10  i/n] + 0.2 (Random[] - 1/2)], {i, 1, n}];

ListPlot[data]

a = 800;

k = 
      Table[N[(Exp[-a ((((i/n)))^2)] + Exp[-a ((((i/n) - 1))^2)])
              /2], {i, n}];

ListPlot[k, PlotRange -> All]

Conv = InverseFourier[Fourier[data] Fourier[k]];

g1 = ListPlot[Chop[Conv]]

bes = Table[N[BesselJ[1, 10  i/n]], {i, 1, n}];

g2 = ListPlot[bes]

Show[g1, g2]