--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/python/pp_pid.py Fri May 27 14:24:59 2011 +0530
@@ -0,0 +1,43 @@
+#!/usr/bin/python
+# 9.8
+import os, sys
+sys.path += [os.getcwdu() + os.sep + ".." + os.sep + "python"]
+
+import scipy as sp
+from polyfuncs import polmul
+from zpowk import zpowk
+from xdync import xdync
+
+def pp_pid(B, A, k, phi, Delta):
+ Delta = sp.atleast_1d(Delta)
+ B = sp.atleast_1d(B)
+ # Setting up and solving Aryabhatta identity
+ dA = len(A) - 1
+ dB = len(B) - 1
+
+ zk, dzk = zpowk(k)
+
+ N, dN = polmul(B, dB, zk, dzk)
+ dDelta = len(Delta)-1
+ D, dD = polmul(A, dA, Delta, dDelta)
+ dphi = len(phi)-1
+
+ Sc, dSc, R, dR = xdync(N, dN, D, dD, phi, dphi)[:4]
+
+ R = sp.squeeze(R)
+ Rc = sp.convolve(R, Delta)
+
+ return Rc, Sc
+
+if __name__ == "__main__":
+ Ts = 1
+ B = 0.63
+ A = sp.array([1, -0.37])
+ k = 1
+
+ zk, dzk = zpowk(k)
+
+ phi = sp.array([1, -0.5])
+ delta = 1
+
+ print pp_pid(B, A, k, phi, delta)