⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gethaar.m

📁 Sparse Signal Representation using Overlapping Frames (matlab toolbox)
💻 M
字号:
function F = GetHaar(N)
% GetHaar   Find the NxN Haar matrix
%
% F = GetHaar(N);% -----------------------------------------------------------------------------------
% Arguments:
%   N    - a positive power of 2, N=2^K  (K=1,2,..12)
%          if N is not a power of 2, the upper left part of a larger 
%          Haar matrix is returnd
%   F    - the Haar matrix. (normalized matrix)
% ----------------------------------------------

%----------------------------------------------------------------------
% Copyright (c) 2000.  Karl Skretting.  All rights reserved.
% Hogskolen in Stavanger (Stavanger University), Signal Processing Group
% Mail:  karl.skretting@tn.his.no   Homepage:  http://www.ux.his.no/~karlsk/
% 
% HISTORY:  dd.mm.yyyy
% Ver. 1.0  30.03.2000  KS: m-file made
% Ver. 1.1  15.12.2000  KS: sort vectors by frequency (zero crossings)
% Ver. 1.2  05.12.2002  KS: moved from ..\Frames to ..\FrameTools
%----------------------------------------------------------------------

if nargin<1
  error('GetHaar: there should be one integer argument.')
end

K=ceil(log2(N));
F=zeros(2^K);
F(1,1)=1/sqrt(N);

for k=1:K
   i1=1:(2^(k-1));
   i2=(2^(k-1)+1):(2^k);
   F(i1,i2)=F(i1,i1);
   F(i2,i1)=F(i1,i1);
   F(i2,i2)=-F(i1,i1);
end

F=F(1:N,1:N);

if N>2
   % sort columns in F by number of change in sign in each vector
   temp=F(1:(N-1),:).*F(2:N,:);
   % if sign has changed for vector number k, F(:,k), from F(n,k) to F(n+1,k) 
   % then temp(n,k)==(-1/N) < 0 else temp(n,k)==(1/N) > 0
   temp=sum(temp<0);
   [temp,I]=sort(temp);
   F=F(:,I);
end

return;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -