You are on page 1of 10

Digital Signal Processing Laboratory Manual

Lab5: System structure design


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à:

• Hiểu biết về cấu trúc hệ thống TTBB. Hệ thống FIR, IIR

• Thiết kế cấu trúc nối tiếp, song song tối ưu

1 Cấu trúc hệ thống


Một hệ thống tuyến tính bất biến rời rạc được mô tả bởi hàm truyền H(z). H(z)
có thể viết được dưới dạng phân thức của z:

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

Lab5 1 Signal and System Lab, UET-VNU


Digital Signal Processing Laboratory Manual

Do đó hệ thống có thể mô tả dưới dạng cấu trúc (Hình 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.

Bên cạnh đó:

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
đó:

• H1 (z) = b0 + b1 z −1 + ... + bM z −M nên h1 (n) = {bx0 , b1 , b2 ...., bM }



Lab5 2 Signal and System Lab, UET-VNU


Digital Signal Processing Laboratory Manual

• Do đó, H1(z) có đáp ứng xung hữu hạn (Finite Impulse Response hay
FIR), nhân quả và ổn định

• Hệ thống H1(z) chỉ có điểm không, không có điểm cực


M
X
• Phương trình sai phân tương ứng (H1): y(n) = bk x(n − k)
k=0
| {z }
Trung bình có trọng số

• ⇒ Hệ thống trung bình động (Moving Average) hay MA


1
Xét hệ thống H2(z): H2 (z) = 1+a1 z −1 +...+aN z −N

• nên h2 (n) = (Ai )n u(n) (giả sử hệ thống nhân quả)


P
i

• 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

• ⇒ Hệ thống hồi quy Auto Regressive hay AR

2 Cấu trúc nối tiếp và cấu trúc song song


Khi thiết kế các hệ thống thực tế, người ta thấy, các hệ thống tương ứng với
hàm truyền có bậc cao (bậc của đa thức ở tử hoặc mẫu số của hàm truyền) sẽ
gây ra sai số tích luỹ lớn. Do đó, thay vì thiết kế trực tiếp các hệ thống bậc
cao, người ta tìm cách chia nhỏ các hệ thống phức tạp thành các hệ thống đơn
giản bằng cách ghép nối nối tiếp hoặc song song hoặc kết hợp các hệ thống con
có hàm truyền có bậc bé hơn hoặc bằng 2 lại với nhau.

• 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).

Lab5 3 Signal and System Lab, UET-VNU


Digital Signal Processing Laboratory Manual

• 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.

2.1 Thiết kế cấu trúc tối ưu kiểu nối tiếp


Nhắc lại: Nghiệm của tử số của hàm truyền được gọi là điểm không. Nghiệm
của mẫu số của hàm truyền được gọi là điểm cực. Điểm không và điểm cực có
thể hiển thị trên đồ thị bằng cách dùng lệnh zplane(b, a) trong đó, b là vector
hệ số của tử số, a là vector hệ số của mẫu số.
Các giá trị cụ thể của điểm cực và điểm không có thể được xác định thông qua
lệnh roots trong đó đầu vào của roots là các hệ số của đa thức, sắp xếp theo
bậc từ cao xuống thấp.
Ví dụ: P (z) = 4 + 3z −1 − 2z −2 + 1z −3 − 2z −4 + 3z −5 thì nghiệm của nó sẽ được
xác định bởi lệnh: roots([4 3 -2 1 -2 3])

Lab5 4 Signal and System Lab, UET-VNU


Digital Signal Processing Laboratory Manual

Hình 2: Ví dụ sử dụng lệnh roots tính nghiệm của đa thức.

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:

Lab5 5 Signal and System Lab, UET-VNU


Digital Signal Processing Laboratory Manual

Matlab code

poly([ -0.3003 - 0.8325i, -0.3003 + 0.8325i])

ans =

1.0000 0.6006 0.7832

hay đa thức bậc 2 tương ứng sẽ là 1 + 0.6006z −1 + 0.7832z −2


Như vậy, để thiết kế cấu trúc của hệ thống H(z) theo kiểu nối tiếp tối ưu, ta
có thể thực hiện dựa trên việc tìm nghiệm của tử số và mẫu số của H(z); sau
đó ghép các cặp nghiệm với nhau để tạo các đa thức bậc 2. Chú ý, để hệ số đa
thức bậc 2 là hệ số thực, ta phải ghép các nghiệm phức theo cặp tương ứng.
Các nghiệm thực còn lại sẽ được ghép đôi một với nhau. Trường hợp thừa ra
một nghiệm thực, ta có thể thêm nghiệm bằng 0 vào. Khi đó đa thức kết quả
không thay đổi:
Matlab code

poly([ -1.4955 + 0.0000i, 0])

ans =

1.0000 1.4955 0

đa thức kết quả sẽ là : 1 + 1.4955z −1 + 0z −2 = 1 + 1.4955z −1 là đa thức bậc


nhất cần tìm.
Dựa trên các ví dụ trên, việc phân tích thiết kế cấu trúc nối tiếp có thể thực
hiện như sau:

• 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)])

Lab5 6 Signal and System Lab, UET-VNU


Digital Signal Processing Laboratory Manual

– Lưu kết quả các hệ số của đa thức bậc 2 lại

• 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ố

• Gợi ý: Có thể viết hàm con function [he-so-dathuc]=Phantichbac2(v) để


thực hiện phân tích đa thức bậc cao thành tích các đa thức bậc 2 có hệ
số thực; và sử dụng hàm đó cho tử số và mẫu số của hàm truyền.

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 :

Y B0,k + B1,k z −1 + B2,k z −2


H(z) =
k A0,k + A1,k z −1 + A2,k z −2

2. Áp dụng hàm vừa viết được cho các ví dụ sau:

• y(n) - 2y(n-1) + 4y(n-2)- 3y(n-3)= x(n) + 5x(n-1) - 4x(n-2) +2x(n-3)


• 16y(n)+ 12y(n-1) + 2y(n-2)- 4y(n-3)-y(n-4) = x(n) - 3x(n-1) +11x(n-
2) -27x(n-3)+ 18x(n-4)

2.2 Thiết kế cấu trúc tối ưu kiểu song song


Bây giờ giả sử cần thiết kế cấu trúc song song tối ưu. Về nguyên tắc, ta phải
phân tích H(z) thành tổng của các phân thức có bậc tối đa bằng 2. Để thực hiện
ta có thể sử dụng lệnh residuez, thực hiện việc chia đa thức trong Matlab.
Cấu trúc của lệnh như sau: [r,p,k] = residuez(b,a) trong đó:

Lab5 7 Signal and System Lab, UET-VNU


Digital Signal Processing Laboratory Manual

• b, a: là các vector hệ số của hàm truyền H(z)

• 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,p,k] = residuez([1 -2 3],[2 -2 3 4])

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:

Lab5 8 Signal and System Lab, UET-VNU


Digital Signal Processing Laboratory Manual

r(1) r(2) r(1)(1 − p(2)z −1 ) + r(2)(1 − p(1)z −1 )


+ =
1 − p(1)z −1 1 − p(2)z −1 (1 − p(1)z −1 )(1 − p(2)z −1 )
(r(1) + r(2)) + z −1 [r(1)p(2) + r(2)p(1)]
=
(1 − p(1)z −1 )(1 − p(2)z −1 )
Mẫu số có 2 nghiệm p(1), p(2) nên hệ số đa thức bậc 2 có thể xác định bởi
hàm poly như bài trước Đa thức ở tử số có hệ số là [(r(1)+ r(2)) và r(1)p(2)+
r(2)p(1)] đều là các số thực. Như vậy dựa vào nhóm và quy đồng mẫu số ta
đã tính được phân thức bậc 2 tương ứng tương ứng với cặp điểm cực phức của
hàm truyền.

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

4. Áp dụng với hệ thống cho trong bài tập trước.

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

Lab5 9 Signal and System Lab, UET-VNU


Digital Signal Processing Laboratory Manual

Hình 3: Bài 5

Lab5 10 Signal and System Lab, UET-VNU

You might also like