changeset 9954:6f51862ed0ed octave-forge

control-devel: touch up fft method
author paramaniac
date Wed, 04 Apr 2012 08:36:18 +0000
parents 5991a6dffe51
children 8b57648139ab
files extra/control-devel/inst/@iddata/fft.m
diffstat 1 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/extra/control-devel/inst/@iddata/fft.m	Tue Apr 03 20:53:27 2012 +0000
+++ b/extra/control-devel/inst/@iddata/fft.m	Wed Apr 04 08:36:18 2012 +0000
@@ -28,18 +28,27 @@
 ## Created: April 2012
 ## Version: 0.1
 
-function dat = fft (dat, n)
+function dat = fft (dat, n = [])
 
   if (nargin > 2)       # no need to test nargin == 0, this is handled by built-in fft
     print_usage ();
   endif
+  
+  if (isempty (n))
+    n = num2cell (size (dat, 1));
+  else
+  
+  endif
 
 %  if ((! is_real_scalar (ord) || fix (ord) != ord) && ! ischar (ord))   # chars are handled by built-in detrend
 %    error ("iddata: detrend: second argument must be a positve integer");
 %  endif
 
-  dat.y = cellfun (@fft, dat.y, "uniformoutput", false);
-  dat.u = cellfun (@fft, dat.u, "uniformoutput", false);
+%  dat.y = cellfun (@fft, dat.y, "uniformoutput", false);
+%  dat.u = cellfun (@fft, dat.u, "uniformoutput", false);
+
+  dat.y = cellfun (@(y, n) fft (y, n) / sqrt (n), dat.y, n, "uniformoutput", false);
+  dat.u = cellfun (@(u, n) fft (u, n) / sqrt (n), dat.u, n, "uniformoutput", false);
   
   dat.timedomain = false;