0
|
1 |
#!/usr/bin/env python
|
|
2 |
# 12.1
|
|
3 |
# Camacho and Bordon's GPC example; model formation
|
|
4 |
import os, sys
|
|
5 |
sys.path += [os.getcwdu() + os.sep + ".." + os.sep + "python"]
|
|
6 |
|
|
7 |
import pylab as pl
|
|
8 |
from xdync import xdync
|
|
9 |
from polyfuncs import polmul
|
|
10 |
|
|
11 |
A, dA = pl.array([1, -0.8]), 1
|
|
12 |
B, dB = pl.array([0.4, 0.6]), 1
|
|
13 |
N=3
|
|
14 |
k=1
|
|
15 |
D, dD = pl.array([1, -1]), 1
|
|
16 |
AD, dAD = pl.convolve(A,D), dA+1
|
|
17 |
Nu = N+k
|
|
18 |
zj, dzj = 1, 0
|
|
19 |
G = pl.zeros((Nu, 1))
|
|
20 |
H1 = pl.zeros((Nu, k-1+dB))
|
|
21 |
H2 = pl.zeros((Nu, dA+1))
|
|
22 |
|
|
23 |
for j in range(Nu):
|
|
24 |
zj = pl.convolve(zj, [0,1])
|
|
25 |
dzj = dzj + 1
|
|
26 |
Fj, dFj, Ej, dEj = xdync(zj, dzj, AD, dAD, 1, 0)[:4]
|
|
27 |
Gj, dGj = polmul(B, dB, Ej, dEj)
|
|
28 |
m, n = G.shape
|
|
29 |
G = pl.column_stack((G, pl.zeros((m, dGj-n))))
|
|
30 |
G[j, :dGj] = Gj[dGj-1::-1]
|
|
31 |
H1[j,:k-1+dB] = Gj[dGj:dGj+k-1+dB]
|
|
32 |
H2[j,0:dA+1] = Fj
|
|
33 |
|
|
34 |
print "G"
|
|
35 |
print G
|
|
36 |
print "H1"
|
|
37 |
print H1
|
|
38 |
print "H2"
|
|
39 |
print H2
|