diff options
Diffstat (limited to 'macros/invimpinvar.sci')
-rw-r--r-- | macros/invimpinvar.sci | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/macros/invimpinvar.sci b/macros/invimpinvar.sci new file mode 100644 index 0000000..4e8bd7b --- /dev/null +++ b/macros/invimpinvar.sci @@ -0,0 +1,42 @@ +function [b_out, a_out] = invimpinvar (b, a, fs, tol) +//This function converts digital filter with coefficients b and a to analog, conserving impulse response. +//Calling Sequence +//[b, a] = impinvar (b, a) +//[b, a] = impinvar (b, a, fs) +//[b, a] = impinvar (b, a, fs, tol) +//Parameters +//b: real or complex valued scalar or vector +//a: real or complex valued scalar or vector, order should be greater than b +//fs: real or complex value, default value 1Hz +//tol: real or complex value, default value 0.0001 +//Description +//This is an Octave function. +//This function converts digital filter with coefficients b and a to analog, conserving impulse response. +//This function does the inverse of impinvar. +//Examples +//b = 0.0081000 +//a = [2.0000000, 0.56435378, 0.4572792, 0.00705544, 0.091000] +//[ay, by] = invimpinvar(b,a,10) +//ay = +// -1.6940e-16 4.6223e+00 -4.5210e+00 7.2880e+02 +//by = +// Columns 1 through 4: +// 1.0000e+00 3.0900e+01 9.6532e+02 1.2232e+04 +// Column 5: +// 1.1038e+05 +funcprot(0); +rhs = argn(2) +if(rhs<2) +error("Wrong number of input arguments.") +end + + + select(rhs) + case 2 then + [b_out,a_out] = callOctave("invimpinvar",b,a) + case 3 then + [b_out,a_out] = callOctave("invimpinvar",b,a,fs) + case 4 then + [b_out,a_out] = callOctave("invimpinvar",b,a,fs,tol) + end +endfunction |