Mercurial > forge
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;