%**********************************************************
%** Diskretni transformace **
%** Generování Walsh-Paleyove **
%** Leos Marsalek (c) 2002-2003 Leos.Marsalek@tiscali.cz **
%**********************************************************
function [baze]=walsh(n); % n udává velikost bázove matice
%--------------------- Generovani Rademacherovy báze ----------------------
plus=0;
N=2^n;
vysledek=-1.*ones(n+1,N);
vaha=zeros(n+1,N);
vysledek(1,:)=1;
for r=1:n
deleni=2^r;
for s=1:deleni:2^n
for q=1:round(deleni/2)
vysledek(n-r+2,s+q-1)=1;
vaha(n-r+1,s+q-1)=1;
end
end
end
%---------------------- Konec generovani Rademacherovy baze ---------------
rad=vysledek;
%---------------------- Vygenerovani Walshovy baze
baze=ones(N,N);
for k=1:N
for q=1:n+1
baze(k,:)=baze(k,:).*rad(q,:).^vaha(n-q+2,N-k+1);
end
end