Použití FFT (iFFT) při rekonstrukci zašuměného signálu - lze vynechat

> N:=8:f:=2:
sumy:=stats[random,normald]:
vzorky_re:=array([evalf(seq(sin(x*2*Pi*f/2^N)+0.1*sumy(),x=1..2^N))]):
vzorky_im:=array([seq(0,x=1..2^N)]):
kernel_re:=array([seq(exp(-100.0*(k/2^N)^2),k=1..2^N)]):
kernel_im:=array([seq(0,x=1..2^N)]):

> pl:=[seq([i*2*Pi*f/2^N,vzorky_re[i]],i=1..2^N)]:
plot(pl,style=POINT);

[Maple Plot]

> FFT(N,vzorky_re,vzorky_im):
FFT(N,kernel_re,kernel_im):

> vystup:=[seq(vzorky_re[i]+I*vzorky_im[i],i=1..2^N)]:
kernel:=[seq(kernel_re[i]+I*kernel_im[i],i=1..2^N)]:
vystup_novy:=[seq(vystup[i]*kernel[i],i=1..2^N)]:
vystup_abs:=map(2/2^N*abs, vystup):
vystup_novy_re:=convert(map(Re, vystup_novy),vector):
vystup_novy_im:=convert(map(Im, vystup_novy),vector):

> pl:=[seq([i-1,vystup_abs[i]],i=1..2^N)]:
plot(pl);

[Maple Plot]

> iFFT(N,vystup_novy_re,vystup_novy_im):
pl_zpet:=[seq([i*2*Pi*f/2^N,vystup_novy_re[i]],i=1..2^N)]:
plot(pl_zpet,style=POINT);

[Maple Plot]