comparison scripts/signal/spencer.m @ 3426:f8dde1807dee

[project @ 2000-01-13 08:40:00 by jwe]
author jwe
date Thu, 13 Jan 2000 08:40:53 +0000
parents 041ea33fbbf4
children 858695b3ed62
comparison
equal deleted inserted replaced
3425:8625164a0a39 3426:f8dde1807dee
1 ## Copyright (C) 1995, 1996, 1997 Friedrich Leisch 1 ## Copyright (C) 1995, 1996, 1997 Friedrich Leisch
2 ## 2 ##
3 ## This program is free software; you can redistribute it and/or modify 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 4 ## it under the terms of the GNU General Public License as published by
5 ## the Free Software Foundation; either version 2, or (at your option) 5 ## the Free Software Foundation; either version 2, or (at your option)
6 ## any later version. 6 ## any later version.
7 ## 7 ##
8 ## This program is distributed in the hope that it will be useful, but 8 ## This program is distributed in the hope that it will be useful, but
9 ## WITHOUT ANY WARRANTY; without even the implied warranty of 9 ## WITHOUT ANY WARRANTY; without even the implied warranty of
10 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 ## General Public License for more details. 11 ## General Public License for more details.
12 ## 12 ##
13 ## You should have received a copy of the GNU General Public License 13 ## You should have received a copy of the GNU General Public License
14 ## along with this file. If not, write to the Free Software Foundation, 14 ## along with this file. If not, write to the Free Software Foundation,
15 ## 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 15 ## 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16 16
17 ## usage: spencer (X) 17 ## usage: spencer (X)
18 ## 18 ##
19 ## returns Spencer's 15 point moving average of every single column of X 19 ## returns Spencer's 15 point moving average of every single column of X
20 20
21 ## Author: FL <Friedrich.Leisch@ci.tuwien.ac.at> 21 ## Author: FL <Friedrich.Leisch@ci.tuwien.ac.at>
22 ## Description: Apply Spencer's 15-point MA filter 22 ## Description: Apply Spencer's 15-point MA filter
23 23
24 function retval = spencer (X) 24 function retval = spencer (X)
25 25
26 if (nargin != 1) 26 if (nargin != 1)
27 usage ("spencer (X)"); 27 usage ("spencer (X)");
28 endif 28 endif
29 29
30 [xr, xc] = size(X); 30 [xr, xc] = size(X);
31 31
32 n = xr; 32 n = xr;
33 c = xc; 33 c = xc;
34 34
35 if (is_vector(X)) 35 if (is_vector(X))
36 n = length(X); 36 n = length(X);
37 c = 1; 37 c = 1;
38 X = reshape(X, n, 1); 38 X = reshape(X, n, 1);
39 endif 39 endif
40 40
41 W = [-3, -6, -5, 3, 21, 46, 67, 74, 67, 46, 21, 3, -5, -6, -3] / 320; 41 W = [-3, -6, -5, 3, 21, 46, 67, 74, 67, 46, 21, 3, -5, -6, -3] / 320;
42 42
43 retval = fftfilt (W, X); 43 retval = fftfilt (W, X);
44 retval = [zeros(7,c); retval(15:n,:); zeros(7,c);]; 44 retval = [zeros(7,c); retval(15:n,:); zeros(7,c);];
45 45
46 retval = reshape(retval, xr, xc); 46 retval = reshape(retval, xr, xc);
47 47
48 endfunction 48 endfunction
49 49
50 50
51 51
52 52