comparison main/signal/idct2.m @ 0:6b33357c7561 octave-forge

Initial revision
author pkienzle
date Wed, 10 Oct 2001 19:54:49 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:6b33357c7561
1 ## Copyright (C) 2001 Paul Kienzle
2 ##
3 ## This program is free software; you can redistribute it and/or modify
4 ## it under the terms of the GNU General Public License as published by
5 ## the Free Software Foundation; either version 2 of the License, or
6 ## (at your option) any later version.
7 ##
8 ## This program is distributed in the hope that it will be useful,
9 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 ## GNU General Public License for more details.
12 ##
13 ## You should have received a copy of the GNU General Public License
14 ## along with this program; if not, write to the Free Software
15 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
17 ## y = idct2 (x)
18 ## Computes the inverse 2-D discrete cosine transform of matrix x
19 ##
20 ## y = idct2 (x, m, n) or y = idct2 (x, [m n])
21 ## Computes the 2-D inverse DCT of x after padding or trimming rows to m and
22 ## columns to n.
23
24 ## Author: Paul Kienzle
25 ## 2001-02-08
26 ## * initial revision
27
28 function y = idct2 (x, m, n)
29
30 if (nargin < 1 || nargin > 3)
31 usage("idct (x) or idct (x, m, n) or idct (x, [m n])");
32 endif
33
34 if nargin == 1
35 [m, n] = size (x);
36 elseif (nargin == 2)
37 n = m (2);
38 m = m (1);
39 endif
40
41 if m == 1
42 y = idct (x.', n).';
43 elseif n == 1
44 y = idct (x, m);
45 else
46 y = idct (idct (x, m).', n).';
47 endif
48
49 endfunction