Mercurial > hg > octave-nkf
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 |