summaryrefslogtreecommitdiff
path: root/macros/invimpinvar.sci
diff options
context:
space:
mode:
Diffstat (limited to 'macros/invimpinvar.sci')
-rw-r--r--macros/invimpinvar.sci42
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