Mercurial > hg > smallbox
diff util/classes/dictionaryMatrices/dctmatrix.m @ 160:e3035d45d014 danieleb
Added support classes
author | Daniele Barchiesi <daniele.barchiesi@eecs.qmul.ac.uk> |
---|---|
date | Wed, 31 Aug 2011 10:53:10 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/util/classes/dictionaryMatrices/dctmatrix.m Wed Aug 31 10:53:10 2011 +0100 @@ -0,0 +1,24 @@ +function D = dctmatrix(N,K,type) + +error(nargchk(1,3,nargin,'struct')); +if ~exist('type','var') || isempty(type), type='II'; end +if ~exist('K','var') || isempty(K), K=N; end + +[c r] = meshgrid(0:K-1,0:N-1); +switch type + case 'I' + D = cos(pi*c.*r/(K-1)); + D(1,:) = D(1,:)/sqrt(2); + D(end,:) = D(end,:)/sqrt(2); + case 'II' + D = cos(pi*(2*c+1).*r/(2*K)); + D(1,:) = D(1,:)/sqrt(2); + case 'III' + D = cos(pi*(2*r+1).*c/(2*K)); + D(:,1) = D(:,1)/sqrt(2); + case 'IV' + D = cos(pi*(2*r+1+2*c+4*c.*r)/(4*K)); + otherwise + error('unsupported dct type'); +end +D = normcol(D); \ No newline at end of file