Голубь Дима
Как строить вейвлет на fup'ах
Для начала нам нужно построить непосредственно сам fup, мы это делали по аналитической
формуле:
4N N
2−i k
∞
1 k 2k x
fup N − 1 x = 1 2 ∑ sinc ∏ sinc cos
N k=1 N i =1 N N
function f=fup(N, x)
summ=0;
for k=1:20
proizv=1;
for i=1:40
proizv = proizv*sin(pi*k*2^(-i)/N)/( pi*k*2^(-i)/N );
end
summ = summ + proizv*cos(2*pi*k*x/N)*( sin(pi*k/N)/(pi*k/N) )^N;
end
if abs(x)>(N+2)/2
f = 0;
else
f = 1/N*(1+2*summ);
end
end
∑ fup N t n = 1
n ∈Z
r
a N2
fup N t = ∑ fup N
2
r tn
n = −r
∑ f t n = 0.5
n = −k
Используя это, находим коэффициент а , последнее уравнение для нашего случая будет
выглядеть так (подставили в качестве t = ):
r
∑
n = −r
fup N a
N 2
2
r n =
1
2
Получаем преобразование фурье искомого вейвлета следующим производя формальную
замену аргумента частичной суммы t , не забывая извлечь квадратный корень:
r
=
fup N = ∑
n = −r
fup N
a N2
2
r n
Приведу код который вычисляет заданное преобразование фурье отдавая массив координат
[X ,Y ] :
function fourier_transform(x, y)
h = x(2) - x(1);
for k=1:length(x)
sum = 0;
for p=1:length(x)
sum = sum + h*y(p)*exp(-j*x(p)*x(k));
end
res(k) = real(sum);
end
plot(x, res);
end