Tín hiệu và hệ thống
95
Chiều dài của vector y bằng
length(x) + length(h) – 1
.
Ngoài ra, ta cũng có thể lấy tích chập của hai ma trận bằng cách dùng hàm tích chập hai chiều
conv2
.
Ví dụ:
>> x = rand(5,1) % tín hiệu ngẫu nhiên chiều dài 5
>> h = [1 1 1 1]/4 % bộ lọc trung bình chiều dài bằng 4
>> y = conv(h,x)
y =
0.2375
0.2953
0.4470
0.5685
0.5538
0.4960
0.3443
0.2228
Hàm truyền đạt của bộ lọc: nếu X(z) là biến đổi – z của tín hiệu vào x(k), Y(z) là biến đổi
– z của tín hiệu ra y(k) và H(z) là biến đổi – z của h(k) thì:
)
(
)
1
(
)
2
(
)
1
(
)
1
(
)
2
(
)
1
(
)
(
).
(
)
(
1
1
z
X
z
m
a
z
a
a
z
n
b
z
b
b
z
X
z
H
z
Y
m
n
−
−
−
−
+
+
+
+
+
+
+
+
=
=
…
…
(9.4)
H(z) được gọi là hàm truyền đạt của bộ lọc. Các hằng số a(i), b(i) là các hệ số của bộ lọc và
bậc của bộ lọc bằng max{m,n}.
Để biểu diễn một bộ lọc, MATLAB sử dụng hai vector hàng: vector a biểu diễn các hệ số của
tử số và vector b biểu diễn các hệ số của mẫu số.
Tuỳ theo các vector a và b mà mỗi bộ lọc có thể có các tên gọi khác nhau. Cụ thể là:
Nếu n = 0 (b là một vô hướng) thì bộ lọc trên gọi là bộ lọc đáp ứng xung vô hạn (IIR –
Infinite Impulse Response), bộ lọc toàn cực, bộ lọc hồi quy hoặc bộ lọc AR (autoregressive).
Nếu m = 0 (a là một vô hướng) thì bộ lọc trên gọi là bộ lọc đáp ứng xung hữu hạn (FIR –
Finite Impulse Response), bộ lọc toàn zero, bộ lọc không hồi quy hoặc bộ lọc trung bình thay
đổi (MA – Moving Average).
Nếu cả m và n đều lớn hơn 0, bộ lọc trên gọi là bộ lọc đáp ứng xung vô hạn (IIR – Infinite
Impulse Response), bộ lọc cực-zero, bộ lọc hồi quy hoặc bộ lọc ARMA (autoregressive
moving-average)
Từ phương trình (9.4) có thể xây dựng một quá trình để xác định các mẫu dữ liệu ra. Giả
sử a(1) = 1. Chuyển mẫu số sang vế trái rồi lấy biến đổi – z ngược cả hai vế, ta được phương
trình sai phân:
y(k) + a(2)y(k-1) + ... + a(m-1)y(k-m) = b(1)x(k) + b(2)x(k-1) + ... + b(n+1)x(k-n)
Vậy:
y(k) = b(1)x(k) + b(2)x(k-1) + ... + b(n+1)x(k-n) - a(2)y(k-1) - ... - a(m-1)y(k-m) (9.5)