📄 fwht.m
字号:
%----------------------------------------------------------------------
% y=fwht(x)
% ----------
% - fast Hadamard-ordered Walsh-Hadamard Transform (fwht)
% - input:
% x --- a real or complex matrix with m by n elements
% - output:
% y --- fwht coeficients of x column by column
%-------------------------------------------------------------------------
%----------------------------------------------------------------
%$ fast Hadamard-ordered Walsh-Hadamard Transform (fwht)
% Dependencies:
% none
% Compatability:
% Matlab Ver 3.5g, Ver 4.1a
% Notes:
% References: N. Ahmed and K.R. Rao:"Orthogonal transforms for
% digital signal processing",(springer-verlag, New
% York, 1975)
%
%-----------------------------------------------------------------
function y=fwht(x)
[m,n]=size(x);
k=ceil(log2(m));
K=2^k;
z=[x;zeros(K-m,n)];
up=zeros(1,K/2);
down=up;
for l=1:k
GN=2^(l-1);
G=2^(k-l+1);
up0=1:G/2;
down0=up0+G/2;
d=(0:GN-1)*G;
up=reshape((ones(GN,1)*up0)'+ones(G/2,1)*d,1,K/2);
down=reshape((ones(GN,1)*down0)'+ones(G/2,1)*d,1,K/2);
reorder=reshape([up;down]',1,K);
z(reorder,:) =[z(up,:)+z(down,:);z(up,:)-z(down,:)];
end
y=z/K;
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -