Mercurial > hg > octave-nkf
diff scripts/signal/arma_rnd.m @ 5568:e9cde940b271
[project @ 2005-12-08 02:28:22 by jwe]
author | jwe |
---|---|
date | Thu, 08 Dec 2005 02:28:22 +0000 |
parents | 4c8a2e4e0717 |
children | 34f96dd5441b |
line wrap: on
line diff
--- a/scripts/signal/arma_rnd.m +++ b/scripts/signal/arma_rnd.m @@ -42,46 +42,38 @@ function x = arma_rnd (a, b, v, t, n) - save_warn_empty_list_elements = warn_empty_list_elements; - unwind_protect - warn_empty_list_elements = 0; - - if (nargin == 4) - n = 100; - elseif (nargin == 5) - if (!isscalar (t)) - error ("arma_rnd: n must be a scalar"); - endif - else - usage ("arma_rnd (a, b, v, t, n)"); - endif - - if ((min (size (a)) > 1) || (min (size (b)) > 1)) - error ("arma_rnd: a and b must not be matrices"); - endif - + if (nargin == 4) + n = 100; + elseif (nargin == 5) if (!isscalar (t)) - error ("arma_rnd: t must be a scalar"); + error ("arma_rnd: n must be a scalar"); endif - - ar = length (a); - br = length (b); + else + usage ("arma_rnd (a, b, v, t, n)"); + endif - a = reshape (a, ar, 1); - b = reshape (b, br, 1); + if ((min (size (a)) > 1) || (min (size (b)) > 1)) + error ("arma_rnd: a and b must not be matrices"); + endif - a = [1; -a]; # apply our notational convention - b = [1; b]; + if (!isscalar (t)) + error ("arma_rnd: t must be a scalar"); + endif - n = min (n, ar + br); + ar = length (a); + br = length (b); - e = sqrt (v) * randn (t + n, 1); + a = reshape (a, ar, 1); + b = reshape (b, br, 1); - x = filter (b, a, e); - x = x(n + 1 : t + n); + a = [1; -a]; # apply our notational convention + b = [1; b]; + + n = min (n, ar + br); - unwind_protect_cleanup - warn_empty_list_elements = save_warn_empty_list_elements; - end_unwind_protect + e = sqrt (v) * randn (t + n, 1); + + x = filter (b, a, e); + x = x(n + 1 : t + n); endfunction