Mercurial > hg > octave-nkf
annotate scripts/signal/fractdiff.m @ 19830:884e0c55d92c
Fix complex compare operation for issorted (bug #44071).
* Array-C.cc (nan_ascending_compare, nan_descending_compare): Fix typo where
comparison was made between x and x rather than between x and y.
author | Rik <rik@octave.org> |
---|---|
date | Mon, 26 Jan 2015 15:32:49 -0800 |
parents | d63878346099 |
children | 4197fc428c7d |
rev | line source |
---|---|
17744
d63878346099
maint: Update copyright notices for release.
John W. Eaton <jwe@octave.org>
parents:
17338
diff
changeset
|
1 ## Copyright (C) 1995-2013 Friedrich Leisch |
3426 | 2 ## |
3922 | 3 ## This file is part of Octave. |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
3426 | 9 ## |
3922 | 10 ## Octave is distributed in the hope that it will be useful, but |
3191 | 11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
3426 | 13 ## General Public License for more details. |
14 ## | |
3191 | 15 ## You should have received a copy of the GNU General Public License |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
3191 | 18 |
3449 | 19 ## -*- texinfo -*- |
20 ## @deftypefn {Function File} {} fractdiff (@var{x}, @var{d}) | |
3499 | 21 ## Compute the fractional differences @math{(1-L)^d x} where @math{L} |
22 ## denotes the lag-operator and @math{d} is greater than -1. | |
3449 | 23 ## @end deftypefn |
3426 | 24 |
3457 | 25 ## Author: FL <Friedrich.Leisch@ci.tuwien.ac.at> |
26 ## Description: Compute fractional differences | |
3426 | 27 |
3191 | 28 function retval = fractdiff (x, d) |
3426 | 29 |
7125 | 30 if (nargin != 2) |
31 print_usage (); | |
32 endif | |
33 | |
3191 | 34 N = 100; |
3426 | 35 |
4030 | 36 if (! isvector (x)) |
11472
1740012184f9
Use uppercase for variable names in error() strings to match Info documentation. Only m-files done.
Rik <octave@nomad.inbox5.com>
parents:
8920
diff
changeset
|
37 error ("fractdiff: X must be a vector"); |
3191 | 38 endif |
3426 | 39 |
4030 | 40 if (! isscalar (d)) |
11472
1740012184f9
Use uppercase for variable names in error() strings to match Info documentation. Only m-files done.
Rik <octave@nomad.inbox5.com>
parents:
8920
diff
changeset
|
41 error ("fractdiff: D must be a scalar"); |
3191 | 42 endif |
3426 | 43 |
44 | |
3191 | 45 if (d >= 1) |
46 for k = 1 : d | |
47 x = x(2 : length (x)) - x(1 : length (x) - 1); | |
48 endfor | |
49 endif | |
3426 | 50 |
3191 | 51 if (d > -1) |
3426 | 52 |
3191 | 53 d = rem (d, 1); |
3426 | 54 |
3191 | 55 if (d != 0) |
56 n = (0 : N)'; | |
57 w = real (gamma (-d+n) ./ gamma (-d) ./ gamma (n+1)); | |
58 retval = fftfilt (w, x); | |
59 retval = retval(1 : length (x)); | |
60 else | |
61 retval = x; | |
62 endif | |
3426 | 63 |
3191 | 64 else |
11472
1740012184f9
Use uppercase for variable names in error() strings to match Info documentation. Only m-files done.
Rik <octave@nomad.inbox5.com>
parents:
8920
diff
changeset
|
65 error ("fractdiff: D must be > -1"); |
3426 | 66 |
3191 | 67 endif |
3426 | 68 |
3191 | 69 endfunction |
17338
1c89599167a6
maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents:
14138
diff
changeset
|
70 |