Ошибка при построении разобраться с системой хаара? Есть функция f заданная дискретными значениями есть s[j] - слой вейвлета хаара, для нулевого слоя(уровня) суммы равенства парсеваля sum(f^2)=sum(s[j]^2)+sum(d[j]^2) сходятся , а для последующих нет в чем ошибка?
var f=[],N=8,sum=0;
for(var k=0;k<N;k++)
{
f[k] = Math.cos(k);
sum+=f[k]*f[k];
}
//alert(f);
var s=[],d=[],sumr=0;
s[0] = [];
d[0] = [];
for(var l=0;l<N/2;l++)
{
s[0][l] = (f[2*l]+f[2*l+1])/Math.sqrt(2);
d[0][l] = (f[2*l]-f[2*l+1])/Math.sqrt(2);
sumr+=s[0][l]*s[0][l]+d[0][l]*d[0][l];
}
document.write("sum="+sum+"");
document.write("sumr="+sumr+"");
for(var j=1;j<=N/4;j++)
{
s[j] = [];
d[j] = [];
sumr=0;
for(var l=0;l<N/Math.pow(2,j+1);l++)
{
s[j][l] = (s[j-1][2*l]+s[j-1][2*l+1])/Math.sqrt(2);
d[j][l] = (s[j-1][2*l]-s[j-1][2*l+1])/Math.sqrt(2);
sumr+=s[j][l]*s[j][l]+d[j][l]*d[j][l];
}
document.write("sumr="+sumr+"");
}
//alert(s);
//alert(d);

21 Авг 2019 в 06:06
202 +1
0
Ответы
1

Ошибка заключается в неправильной формуле для вычисления коэффициентов вейвлета Хаара на последующих уровнях.

На первом уровне (j=1) формула должна выглядеть следующим образом:

s[j][l] = (s[j-1][2l]+s[j-1][2l+1])/Math.sqrt(2);
d[j][l] = (s[j-1][2l]-s[j-1][2l+1])/Math.sqrt(2);

Однако на последующих уровнях (j>1) формула для вычисления коэффициентов должна быть изменена:

s[j][l] = (s[j-1][2l]+s[j-1][2l+1])/Math.sqrt(2);
d[j][l] = (d[j-1][2l]+d[j-1][2l+1])/Math.sqrt(2);

Правильное исправление кода:

for(var j=1;j<=N/4;j++)
{
s[j] = [];
d[j] = [];
sumr=0;
for(var l=0;l<N/Math.pow(2,j+1);l++)
{
s[j][l] = (s[j-1][2*l]+s[j-1][2*l+1])/Math.sqrt(2);
d[j][l] = (d[j-1][2*l]+d[j-1][2*l+1])/Math.sqrt(2);
sumr+=s[j][l]*s[j][l]+d[j][l]*d[j][l];
}
document.write("sumr="+sumr+"<br>");
}

После внесения данного изменения код должен правильно вычислять коэффициенты на последующих уровнях и соблюдать равенство Парсеваля.

20 Апр 2024 в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир