Mercurial > hg > octave-nkf
comparison scripts/signal/yulewalker.m @ 3426:f8dde1807dee
[project @ 2000-01-13 08:40:00 by jwe]
author | jwe |
---|---|
date | Thu, 13 Jan 2000 08:40:53 +0000 |
parents | e4f4b2d26ee9 |
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: [a, v] = yulewalker (c) | 17 ## usage: [a, v] = yulewalker (c) |
18 ## | 18 ## |
19 ## fits an AR (p)-model with Yule-Walker estimates. | 19 ## fits an AR (p)-model with Yule-Walker estimates. |
20 ## c = [gamma_0, ..., gamma_p] autocovariances | 20 ## c = [gamma_0, ..., gamma_p] autocovariances |
21 ## a .... AR coefficients | 21 ## a .... AR coefficients |
22 ## v .... variance of white noise | 22 ## v .... variance of white noise |
23 | 23 |
24 ## Author: FL <Friedrich.Leisch@ci.tuwien.ac.at> | 24 ## Author: FL <Friedrich.Leisch@ci.tuwien.ac.at> |
25 ## Description: Fit AR model by Yule-Walker method | 25 ## Description: Fit AR model by Yule-Walker method |
26 | 26 |
27 function [a, v] = yulewalker (c) | 27 function [a, v] = yulewalker (c) |
28 | 28 |
29 p = length (c) - 1; | 29 p = length (c) - 1; |
30 | 30 |
31 if (columns (c) > 1) | 31 if (columns (c) > 1) |
32 c = c'; | 32 c = c'; |
33 endif | 33 endif |
34 | 34 |
35 cp = c(2 : p+1); | 35 cp = c(2 : p+1); |
36 CP = zeros(p, p); | 36 CP = zeros(p, p); |
37 | 37 |
38 for i = 1:p | 38 for i = 1:p |
39 for j = 1:p | 39 for j = 1:p |
40 CP (i, j) = c (abs (i-j) + 1); | 40 CP (i, j) = c (abs (i-j) + 1); |
41 endfor | 41 endfor |
42 endfor | 42 endfor |
43 | 43 |
44 a = inv (CP) * cp; | 44 a = inv (CP) * cp; |
45 v = c(1) - a' * cp; | 45 v = c(1) - a' * cp; |
46 | 46 |
47 endfunction | 47 endfunction |
48 | |
49 | |
50 | |
51 | 48 |
52 | 49 |
50 | |
51 | |
52 |