equal
deleted
inserted
replaced
|
1 #!/usr/bin/python |
|
2 # 9.8 |
|
3 import os, sys |
|
4 sys.path += [os.getcwdu() + os.sep + ".." + os.sep + "python"] |
|
5 |
|
6 import scipy as sp |
|
7 from polyfuncs import polmul |
|
8 from zpowk import zpowk |
|
9 from xdync import xdync |
|
10 |
|
11 def pp_pid(B, A, k, phi, Delta): |
|
12 Delta = sp.atleast_1d(Delta) |
|
13 B = sp.atleast_1d(B) |
|
14 # Setting up and solving Aryabhatta identity |
|
15 dA = len(A) - 1 |
|
16 dB = len(B) - 1 |
|
17 |
|
18 zk, dzk = zpowk(k) |
|
19 |
|
20 N, dN = polmul(B, dB, zk, dzk) |
|
21 dDelta = len(Delta)-1 |
|
22 D, dD = polmul(A, dA, Delta, dDelta) |
|
23 dphi = len(phi)-1 |
|
24 |
|
25 Sc, dSc, R, dR = xdync(N, dN, D, dD, phi, dphi)[:4] |
|
26 |
|
27 R = sp.squeeze(R) |
|
28 Rc = sp.convolve(R, Delta) |
|
29 |
|
30 return Rc, Sc |
|
31 |
|
32 if __name__ == "__main__": |
|
33 Ts = 1 |
|
34 B = 0.63 |
|
35 A = sp.array([1, -0.37]) |
|
36 k = 1 |
|
37 |
|
38 zk, dzk = zpowk(k) |
|
39 |
|
40 phi = sp.array([1, -0.5]) |
|
41 delta = 1 |
|
42 |
|
43 print pp_pid(B, A, k, phi, delta) |