%快速沃尔什变换程序
function xx=fwhtdya2d(data2);
xx=data2;
N=length(xx);
for i=1:N;
xx1(i,:)=fwhtdya1d(xx(i,:));
end
xx=zeros(N);
for j=1:N;
xx(:,j)=fwhtdya1d(xx1(:,j)')';
end
function x=fwhtdya1d(data1);
N=length(data1);
L=log2(N);
k1=N;k2=1;k3=N/2;
for i1=1:L
L1=1;
for i2=1:k2;
for i3=1:k3;
i=i3+L1-1;j=i+k3;
temp1=x(i);temp=x(j);
x(i)=temp1+temp2;
x(j)=temp1-temp2;
end
L1=L1+K1;
end
k1=k1/2;k2=k2*2;
k3=k3/2;
end
x=inv(N)*x;