Professional Documents
Culture Documents
Thiết Kế Cấu Trúc Hệ Thống
Thiết Kế Cấu Trúc Hệ Thống
ELT-3144
Objective
Mục đích của bài thực hành là:
M
(bk z −k )
P
− − −
b0 + b1 z 1 + b2 z 2 + .. + bM z M k=0
H(z) = = ,
1 + a1 z − 1 + a2 z − 2 + .. + aN z − N N
P
(ak z −k )
k=0
trong đó a0 = 1. Các vector {ak }, {bk } là các hệ số đặc trưng cho hàm truyền.
Ta cũng có thể viết lại hệ thống dưới dạng phương trình sai phân:
N
X M
X
(ak y(n − k)) = (bk x(n − k)); a0 = 1
k=0 k=0
Từ phương trình sai phân, ta có thể viết công thức tính tín hiệu ra:
M
X N
X
y(n) = (bk x(n − k)) − (ak y(n − k))
k=0 k=1
Hình 1: Ví dụ sơ đồ cấu trúc của hệ thống, với các hệ số {ak }, {bk } xác định từ
hàm truyền hoặc phương trình sai phân. Lưu ý: phải chuẩn hoá a0 = 1
trước khi vẽ cấu trúc hệ thống.
b0 + b1 z −1 + ... + bM z −M
H(z) = với a0 = 1
a0 + a1 z −1 + ... + aN z −N
1
H(z) = (b0 + b1 z −1 + ... + bM z −M )
| {z } 1 + a1 z −1 + ... + aN z −N
H1 (z) | {z }
H2 (z)
hay hệ thống có thể viết dạng kết nối nối tiếp của 2 hệ thống H1 và H2. Trong
đó:
• Do đó, H1(z) có đáp ứng xung hữu hạn (Finite Impulse Response hay
FIR), nhân quả và ổn định
• Do đó, hệ thống này có đáp ứng xung vô hạn (Imfinite Impulse Re-
sponse hay IIR)
• Hệ thống chỉ có điểm cực nên còn được gọi là hệ thống toàn cực (all poles)
• Tuỳ thuộc vị trí điểm cực với đường tròn đơn vị ⇒ Hệ thống có thể ổn
định, có thể sẽ không ổn định
N
X
• Phương trình sai phân tương ứng: (H2): y(n) = − ak y(n − k) +x(n)
k=1
| {z }
Phản hồi, hồi quy
• Nếu hàm truyền H(z) có thể phân tách thành H(z) = H1 (z)H2 (z)...Hm (z)
thì ta có cấu trúc nối tiếp H1 (z) nối tiếp H2 (z) nối tiếp ...Hm (z).
• Ngược lại nếu H(z) = Ha (z) + Hb (z) + ... + Hg (z) thì ta sẽ có cấu trúc
ghép nối song song Ha (z) // Hb (z) // ...Hg (z).
Quá trình phân tích một hệ thống có hàm truyền bậc cao thành các hệ thống
có hàm truyền bậc 2 có thể thực hiện bằng Matlab. Chương này, chúng ta sẽ
học một vài công cụ để có thể thiết kế các hệ thống phức hợp dựa trên việc
phân tích phân thức H(z).
Trước hết, lưu ý, mọi đa thức bậc N hệ số thực, đều có N nghiệm. Nếu 1 nghiệm
là nghiệm phức, thì sẽ có 1 nghiệm khác đối xứng với nó qua trục thực. Từ đó
có thể rút ra kết luận một đa thức hệ số thực có bậc bất kỳ nếu có nghiệm
phức thì phải có các cặp nghiệm phức (a ± b.j). Từ đó ta thấy, một đa thức
bậc M, có M nghiệm; nếu ta nhóm các cặp nghiệm phức tương ứng với nhau,
ta luôn thu được đa thức bậc 2 hệ số thực. Do đó, một đa thức bất kỳ luôn có
thể phân tách thành tích của các đa thức bậc 1 hoặc bậc 2 có hệ số thực.
b0 + b1 z − 1 + b2 z − 2 + .. + bM z − M
H(z) =
1 + a1 z − 1 + a2 z − 2 + .. + aN z − N
hay
(B0,k + B1,k z −1 + B2,k z −2 )
Q
k
H(z) = b0 Q
(A0,p + A1,p z −1 + A2,p z −2 )
p
Nếu đa thức bậc nhất, các hệ số bậc 2, như B2,k hoặc A2,k sẽ bằng 0.
Lệnh cplxpair sẽ sắp xếp các cặp số phức lại thành từng cặp, đôi một, từ đầu
đến cuối. Các nghiệm thực, nếu có, sẽ nằm cuối cùng. Nhờ vậy ta có thể nhóm
các nghiệm từng đôi một để tạo đa thức có hệ số thực: Ví dụ:
Matlab code
cplxpair(roots([4 3 -2 1 -2 3]))
ans =
-0.3003 - 0.8325i
-0.3003 + 0.8325i
0.6731 - 0.4328i
0.6731 + 0.4328i
-1.4955 + 0.0000i
Để xác định hệ số của đa thức khi biết các nghiệm của nó, ta có thể sử dụng
lệnh poly của Matlab.
Ví dụ, để xác định hệ số của đa thức có nghiệm là (-0.3003 - 0.8325i) và (0.3003
+ 0.8325i) ta dùng lệnh:
Matlab code
ans =
ans =
1.0000 1.4955 0
• Thực hiện lần lượt cho tử số//mẫu số của H(z) sử dụng lệnh roots, poly
– Xác định nghiệm của đa thức
– Sắp xếp các nghiệm thành từng cặp: phức, thực => vector R
– Nếu số nghiệm là lẻ, bổ sung thêm nghiệm bằng 0 vào cuối vector
R: R=[R, 0]
– Nhóm từng cặp nghiệm lại với nhau để có đa thức bậc 2: poly([R(i),
R(i+1)])
• Viết lại công thức của H(z) thành dạng tích của các bộ thành phần có
bậc tối đa bằng 2 của tử số và mẫu số
Bài tập
1. Viết 1 chương trình (hàm thuật toán) thực hiện nhiệm vụ trên. Hàm số
có dạng:
• function [b0, B, A] = Cautrucnoitiep(b, a); trong đó, b,a là các vector
hệ số của H(z) (áp dụng ngay cả khi chưa chuẩn hoá hệ số a0 = 1)
• b0, B và A lần lượt là hệ số khuếch đại và các ma trận có 3 cột, k
hàng mô tả hàm tử số và mẫu số của các bộ thành phần Hi . Nói
cách khác, dựa trên kết quả ta có thể viết lại :
• r, p, k là các vector hệ số thu được khi thực hiện chia đa thức tử số cho
mẫu số. Nói cách khác.
b0 + b1 z −1 + ... + bM z −M
H(z) =
a0 + a1 z −1 + ... + aN z −N
r(1) r(N )
= −1
+...+ −1
+k(1)+k(2)z −1 +...+k(M −N +1)z −(M −N )
1 − p(1)z 1 − p(N )z
Như vậy, dựa trên hàm residuez ta có thể phân tích hàm truyền thành dạng
tổng của các phân thức bậc nhất và đa thức tự do. Dễ thấy, ở đây các p(k) là
các điểm cực của hệ thống, và có thể nhận giá trị phức. Ví dụ:
Matlab code
r =
-0.0245 + 0.0208i
-0.0245 - 0.0208i
0.5491 + 0.0000i
p =
0.8631 + 1.4173i
0.8631 - 1.4173i
-0.7263 + 0.0000i
k =
[]
Do đó, mặc dù dạng của H(z) đã được biểu diễn dạng tổng của các phân thức,
nhưng để thu được các phân thức hệ số thực, ta cần phải nhóm các thành phần
liên quan đến nghiệm phức lại với nhau, bằng cách quy đồng mẫu số để tạo
ra các phân thức mà hệ số là số thực. Giả sử nhóm 2 phân thức đầu với nhau:
Bài tập
3. Viết chương trình thực hiện quá trình phân tích một hệ thống thành
các cấu trúc tối giản theo kiểu song song. Hàm có dạng: function [Tuso,
Mauso] = cautrucsongsong[a, b] với Tuso, Mauso là ma trận, lưu hệ số
của đa thức của tử số và mẫu số của các hệ thống thành phần
5. Cho hệ thống dạng cấu trúc như hình dưới. Thiết kế cấu trúc nối tiếp và
song song, có các hệ thống thành phần bâc tối đa là 2, hệ số thực từ hệ
thống trên
Hình 3: Bài 5