Skip to content

Commit

Permalink
large patch: converted all files to Unix lineendings
Browse files Browse the repository at this point in the history
  • Loading branch information
psoenderg committed May 2, 2013
1 parent 34e4dbc commit 6dfb833
Show file tree
Hide file tree
Showing 121 changed files with 11,060 additions and 11,060 deletions.
64 changes: 32 additions & 32 deletions comp/assert_classname.m
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
function classname = assert_classname(varargin)
% ASSERT_CLASSNAME
%
% Returns name of the "simplest" data type.

% Array of data types to be checked. Ordered from the "simplest" to the
% most "complex".
typesToTest = {'single','double'};

if nargin==0 || isempty(varargin)
classname = 'double';
return;
end

if ~all(cellfun(@(vEl) isnumeric(vEl),varargin))
error('%s: Parameters are not numeric types. ',upper(mfilename));
end

% Shortcut to double
if all(cellfun(@(vEl) isa(vEl,'double'),varargin))
classname = 'double';
return;
end

% Go trough all the types, halt if any of the inputs is of the specified
% type.
for ii=1:numel(typesToTest)
if any(cellfun(@(vEl) isa(vEl,typesToTest{ii}),varargin))
classname = typesToTest{ii};
return;
end
end
function classname = assert_classname(varargin)
% ASSERT_CLASSNAME
%
% Returns name of the "simplest" data type.

% Array of data types to be checked. Ordered from the "simplest" to the
% most "complex".
typesToTest = {'single','double'};

if nargin==0 || isempty(varargin)
classname = 'double';
return;
end

if ~all(cellfun(@(vEl) isnumeric(vEl),varargin))
error('%s: Parameters are not numeric types. ',upper(mfilename));
end

% Shortcut to double
if all(cellfun(@(vEl) isa(vEl,'double'),varargin))
classname = 'double';
return;
end

% Go trough all the types, halt if any of the inputs is of the specified
% type.
for ii=1:numel(typesToTest)
if any(cellfun(@(vEl) isa(vEl,typesToTest{ii}),varargin))
classname = typesToTest{ii};
return;
end
end
52 changes: 26 additions & 26 deletions comp/comp_col2diag.m
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
function cout=comp_col2diag(cin);
%COMP_COL2DIAG transforms columns to diagonals (in a special way)
%
% This function transforms the first column to the main diagonal. The
% second column to the first side-diagonal below the main diagonal and so
% on.
%
% This way fits well the connection of matrix and spreading function, see
% spreadfun.
%
% This function is its own inverse.

% AUTHOR : Peter L. Søndergaard.
% TESTING: OK
% REFERENCE: OK

L=size(cin,1);
cout=zeros(L,assert_classname(cin));

jj=(0:L-1).';
for ii=0:L-1
cout(ii+1,:)=cin(ii+1,mod(ii-jj,L)+1);
end;



function cout=comp_col2diag(cin);
%COMP_COL2DIAG transforms columns to diagonals (in a special way)
%
% This function transforms the first column to the main diagonal. The
% second column to the first side-diagonal below the main diagonal and so
% on.
%
% This way fits well the connection of matrix and spreading function, see
% spreadfun.
%
% This function is its own inverse.

% AUTHOR : Peter L. Søndergaard.
% TESTING: OK
% REFERENCE: OK

L=size(cin,1);
cout=zeros(L,assert_classname(cin));

jj=(0:L-1).';
for ii=0:L-1
cout(ii+1,:)=cin(ii+1,mod(ii-jj,L)+1);
end;



184 changes: 92 additions & 92 deletions comp/comp_dgt_fb.m
Original file line number Diff line number Diff line change
@@ -1,92 +1,92 @@
function [coef]=comp_dgt_fb(f,g,a,M)
%COMP_DGT_FB Filter bank DGT
% Usage: c=comp_dgt_fb(f,g,a,M);
%
% This is a computational routine. Do not call it directly.
%
% See help on DGT.

% AUTHOR : Peter L. Søndergaard.

% Calculate the parameters that was not specified.
L=size(f,1);
N=L/a;
gl=length(g);
W=size(f,2); % Number of columns to apply the transform to.
glh=floor(gl/2); % gl-half


% Conjugate the window here.
g=conj(fftshift(g));

coef=zeros(M,N,W,assert_classname(f,g));

% ----- Handle the first boundary using periodic boundary conditions. ---
for n=0:ceil(glh/a)-1

% Periodic boundary condition.
fpart=[f(L-(glh-n*a)+1:L,:);...
f(1:gl-(glh-n*a),:)];

fg=bsxfun(@times,fpart,g);

% Do the sum (decimation in frequency, Poisson summation)
coef(:,n+1,:)=sum(reshape(fg,M,gl/M,W),2);

end;

% ----- Handle the middle case. ---------------------
for n=ceil(glh/a):floor((L-ceil(gl/2))/a)

fg=bsxfun(@times,f(n*a-glh+1:n*a-glh+gl,:),g);

% Do the sum (decimation in frequency, Poisson summation)
coef(:,n+1,:)=sum(reshape(fg,M,gl/M,W),2);
end;

% ----- Handle the last boundary using periodic boundary conditions. ---
for n=floor((L-ceil(gl/2))/a)+1:N-1

% Periodic boundary condition.
fpart=[f((n*a-glh)+1:L,:);... % L-n*a+glh elements
f(1:n*a-glh+gl-L,:)]; % gl-L+n*a-glh elements

fg=bsxfun(@times,fpart,g);

% Do the sum (decimation in frequency, Poisson summation)
coef(:,n+1,:)=sum(reshape(fg,M,gl/M,W),2);
end;

% --- Shift back again to make it a frequency-invariant system. ---
for n=0:N-1
coef(:,n+1,:)=circshift(coef(:,n+1,:),n*a-glh);
end;


coef=fft(coef);



% Simple code using a lot of circshifts.
% Move f initially so it lines up with the initial fftshift of the
% window
%f=circshift(f,glh);
%for n=0:N-1
% Do the inner product.
%fg=circshift(f,-n*a)(1:gl,:).*gw;

% Periodize it.
%fpp=zeros(M,W);
%for ii=0:gl/M-1
% fpp=fpp+fg(ii*M+1:(ii+1)*M,:);
%end;
% fpp=sum(reshape(fg,M,gl/M,W),2);

% Shift back again.
% coef(:,n+1,:)=circshift(fpp,n*a-glh); %),M,1,W);

%end;




function [coef]=comp_dgt_fb(f,g,a,M)
%COMP_DGT_FB Filter bank DGT
% Usage: c=comp_dgt_fb(f,g,a,M);
%
% This is a computational routine. Do not call it directly.
%
% See help on DGT.

% AUTHOR : Peter L. Søndergaard.

% Calculate the parameters that was not specified.
L=size(f,1);
N=L/a;
gl=length(g);
W=size(f,2); % Number of columns to apply the transform to.
glh=floor(gl/2); % gl-half


% Conjugate the window here.
g=conj(fftshift(g));

coef=zeros(M,N,W,assert_classname(f,g));

% ----- Handle the first boundary using periodic boundary conditions. ---
for n=0:ceil(glh/a)-1

% Periodic boundary condition.
fpart=[f(L-(glh-n*a)+1:L,:);...
f(1:gl-(glh-n*a),:)];

fg=bsxfun(@times,fpart,g);

% Do the sum (decimation in frequency, Poisson summation)
coef(:,n+1,:)=sum(reshape(fg,M,gl/M,W),2);

end;

% ----- Handle the middle case. ---------------------
for n=ceil(glh/a):floor((L-ceil(gl/2))/a)

fg=bsxfun(@times,f(n*a-glh+1:n*a-glh+gl,:),g);

% Do the sum (decimation in frequency, Poisson summation)
coef(:,n+1,:)=sum(reshape(fg,M,gl/M,W),2);
end;

% ----- Handle the last boundary using periodic boundary conditions. ---
for n=floor((L-ceil(gl/2))/a)+1:N-1

% Periodic boundary condition.
fpart=[f((n*a-glh)+1:L,:);... % L-n*a+glh elements
f(1:n*a-glh+gl-L,:)]; % gl-L+n*a-glh elements

fg=bsxfun(@times,fpart,g);

% Do the sum (decimation in frequency, Poisson summation)
coef(:,n+1,:)=sum(reshape(fg,M,gl/M,W),2);
end;

% --- Shift back again to make it a frequency-invariant system. ---
for n=0:N-1
coef(:,n+1,:)=circshift(coef(:,n+1,:),n*a-glh);
end;


coef=fft(coef);



% Simple code using a lot of circshifts.
% Move f initially so it lines up with the initial fftshift of the
% window
%f=circshift(f,glh);
%for n=0:N-1
% Do the inner product.
%fg=circshift(f,-n*a)(1:gl,:).*gw;

% Periodize it.
%fpp=zeros(M,W);
%for ii=0:gl/M-1
% fpp=fpp+fg(ii*M+1:(ii+1)*M,:);
%end;
% fpp=sum(reshape(fg,M,gl/M,W),2);

% Shift back again.
% coef(:,n+1,:)=circshift(fpp,n*a-glh); %),M,1,W);

%end;




Loading

0 comments on commit 6dfb833

Please sign in to comment.