Mercurial > hg > octave-lyh
annotate scripts/signal/ifftshift.m @ 10793:be55736a0783
Grammarcheck the documentation from m-files.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Sun, 18 Jul 2010 20:35:16 -0700 |
parents | eb63fbe60fab |
children | c776f063fefe |
rev | line source |
---|---|
8920 | 1 ## Copyright (C) 1997, 2006, 2007, 2009 by Vincent Cautaerts |
5820 | 2 ## |
7016 | 3 ## This file is part of Octave. |
4 ## | |
5820 | 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. | |
5820 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
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/>. | |
5820 | 18 |
19 ## -*- texinfo -*- | |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
8920
diff
changeset
|
20 ## @deftypefn {Function File} {} ifftshift (@var{v}) |
5820 | 21 ## @deftypefnx {Function File} {} ifftshift (@var{v}, @var{dim}) |
22 ## Undo the action of the @code{fftshift} function. For even length | |
23 ## @var{v}, @code{fftshift} is its own inverse, but odd lengths differ | |
24 ## slightly. | |
25 ## @end deftypefn | |
26 | |
27 ## Author: Vincent Cautaerts <vincent@comf5.comm.eng.osaka-u.ac.jp> | |
28 ## Created: July 1997 | |
29 ## Adapted-By: jwe | |
30 ## Modified-By: Paul Kienzle, converted from fftshift | |
31 ## Modified-By: David Bateman, add NDArray capability and option dim arg | |
32 | |
33 function retval = ifftshift (V, dim) | |
34 | |
35 retval = 0; | |
36 | |
37 if (nargin != 1 && nargin != 2) | |
6046 | 38 print_usage (); |
5820 | 39 endif |
40 | |
41 if (nargin == 2) | |
7208 | 42 if (! isscalar (dim)) |
5820 | 43 error ("ifftshift: dimension must be an integer scalar"); |
44 endif | |
45 nd = ndims (V); | |
46 sz = size (V); | |
47 sz2 = floor (sz(dim) / 2); | |
48 idx = cell (); | |
8507 | 49 for i = 1:nd |
7208 | 50 idx{i} = 1:sz(i); |
5820 | 51 endfor |
7208 | 52 idx{dim} = [sz2+1:sz(dim), 1:sz2]; |
5820 | 53 retval = V (idx{:}); |
54 else | |
55 if (isvector (V)) | |
56 x = length (V); | |
57 xx = floor (x/2); | |
58 retval = V([xx+1:x, 1:xx]); | |
59 elseif (ismatrix (V)) | |
60 nd = ndims (V); | |
61 sz = size (V); | |
62 sz2 = floor (sz ./ 2); | |
63 idx = cell (); | |
8507 | 64 for i = 1:nd |
5820 | 65 idx{i} = [sz2(i)+1:sz(i), 1:sz2(i)]; |
66 endfor | |
67 retval = V (idx{:}); | |
68 else | |
69 error ("ifftshift: expecting vector or matrix argument"); | |
70 endif | |
71 endif | |
72 | |
73 endfunction |