[e2c226]: comp / comp_dgt.m  Maximize  Restore  History

Download this file

78 lines (58 with data), 1.8 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
function c=comp_dgt(f,g,a,M,lt,phasetype,algfir,algns)
%COMP_DGT Compute a DGT
% Usage: c=comp_dgt(f,g,a,M,L,phasetype);
%
% Input parameters:
% f : Input data
% g : Window function.
% a : Length of time shift.
% M : Number of modulations.
% L : Length of transform to do.
% lt : Lattice type
% phasetype : Type of phase
% algtype : Select algorithm
% Output parameters:
% c : M*N*W array of coefficients.
%
% If phasetype is zero, a freq-invariant transform is computed. If
% phase-type is one, a time-invariant transform is computed.
%
% The algorithm chooser do the following:
%
% * $algfir=0$ : Default value, automatically choose the fastest
% algorithm.
%
% * $algfir=1$ : Choose the algorithm depending on the input.
%
% * $algns=0$ : Default value, automatically choose the fastest
% algorithm.
%
% * $algns=1$ : Always choose multiwindow.
%
% * $algns=2$ : Always choose shear
% AUTHOR : Peter L. S��ndergaard.
% TESTING: OK
% REFERENCE: OK
L=size(f,1);
Lwindow=size(g,1);
if lt(2)==1
if Lwindow<L
% Do the filter bank algorithm
c=comp_dgt_fb(f,g,a,M);
else
% Do the factorization algorithm
c=comp_dgt_long(f,g,a,M);
end;
else
g=fir2long(g,L);
if (algns==0 && lt(2)<=2) || (algns==1)
c=comp_nonsepdgt_multi(f,g,a,M,lt);
else
[s0,s1,br] = shearfind(L,a,M,lt);
c=comp_nonsepdgt_shear(f,g,a,M,s0,s1,br);
end;
end;
% FIXME : Calls non-comp function
if phasetype==1
c=phaselock(c,a,'lt',lt);
end;

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks