MATLAB ỨNG DỤNG TRONG VIỄN THÔNG - Trang 145

Thiết kế các bộ lọc

124

Trong ví dụ 10.2, ta có thể rời rạc hoá bộ lọc tạo được bằng cách dùng hàm bilinear với tần
số lấy mẫu 2Hz:

[Ad,Bd,Cd,Dd] = bilinear(At,Bt,Ct,Dt,2,0.1);

[bz,az] = ss2tf(Ad,Bd,Cd,Dd); % chuyển về mô hình hàm truyền đạt.

Đáp ứng tần số của bộ lọc mới như sau:

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

-300

-240

-180

-120

-60

0

Normalized Frequency (

×π rad/sample)

Magni

tude (

d

B

)

Magnitude (dB) and Phase Responses

-900

-700

-500

-300

-100

100

P

h

as

e (

degr

ees

)

Hình 10.4.

Ta thấy rằng tần số cạnh trên của dải thông nhỏ hơn 0,5Hz mặc dù, đối với bộ lọc tương tự giá
trị này đúng bằng 0,5Hz. Nguyên nhân là do tính phi tuyến của bản thân phép biến đổi song
tuyến tính. Để khắc phục hiện tượng này, khi xây dựng bộ lọc tương tự, ta phải tính lại các tần
số ngưỡng của dải thông sao cho qua phép biến đổi song tuyến tính, nó chuyển một cách
chính xác thành các tần số mong muốn như trong ví dụ sau:

Ví dụ 10-3. Hiệu chỉnh lại ví dụ 10-2 đồng thời áp dụng phép biến đổi song tuyến tính để
thiết kế bộ lọc số Chebychev loại I, bậc 10, dải thông 0,1 – 0,5Hz, tần số lấy mẫu 2Hz.

[z,p,k] = cheb1ap(5,3); % Bộ lọc Chebychev loại I bậc 5, Rs = 3dB

[A,B,C,D] = zp2ss(z,p,k); % Chuyển sang dạng không gian trạng thái.

fs = 2; % Tần số lấy mẫu (hertz)

u1 = 2*fs*tan(0.1*(2*pi/fs)/2); % Tần số cắt thấp (rad/s)

u2 = 2*fs*tan(0.5*(2*pi/fs)/2); % Tần số cắt cao (rad/s)

Bw = u2 - u1; % Băng thông

Wo = sqrt(u1*u2); % Tần số trung tâm

[At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw);

[Ad,Bd,Cd,Dd] = bilinear(At,Bt,Ct,Dt,2,0.1);

[bz,az] = ss2tf(Ad,Bd,Cd,Dd); % chuyển về mô hình hàm truyền đạt.

[h,f] = freqz(bz,az,256,2); % Tính đáp ứng tần số.

semilogy(f,abs(h)), grid % Vẽ đáp ứng biên độ.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.