Tín hiệu và hệ thống
101
freqz(b,a,256,2000)
Kết quả:
0
100
200
300
400
500
600
700
800
900
-800
-600
-400
-200
0
Frequency (Hz)
P
has
e (
d
egr
e
e
s
)
0
100
200
300
400
500
600
700
800
900
-400
-300
-200
-100
0
Frequency (Hz)
M
a
gn
it
ud
e
(dB
)
Hình 9.9.
9.7.2. TRONG MIEÀN ANALOG
Hàm freqs có thể thực hiện các chức năng tương tự như hàm freqz nhưng đối với các bộ lọc
analog.
>> [h,w] = freqs(b,a)
>> h = freqs(b,a,w)
9.7.3. ÑAÙP ÖÙNG BIEÂN ÑOÄ VAØ ÑAÙP ÖÙNG PHA
Muốn có đáp ứng biên độ và đáp ứng pha của một bộ lọc, ta chỉ cần xác định đáp ứng tần số
của nó bằng cách dùng hàm freqz hoặc freqs, sau đó dùng hàm abs để lấy đáp ứng biên độ
hoặc hàm angle để lấy đáp ứng pha.
MATLAB còn cung cấp hàm unwrap trả về đáp ứng pha liên tục tại các vị trí
±360° (thông
thường góc pha chỉ được tính trong phạm vi -360
° đến +360° nên tại các vị trí này đáp ứng
pha sẽ có bước nhảy) bằng cách thêm vào các bội số của
±360° nếu cần thiết.
Ngoài ra, ta cũng có thể sử dụng hàm phasez để có đáp ứng pha liên tục như trên. Cú pháp
của hàm phasez hoàn toàn tương tự như hàm freqz, chỉ khác là kết quả trả về là đáp ứng pha
thay vì đáp ứng tần số.
Ví dụ 9-5. Xác định và vẽ đáp ứng biên độ và đáp ứng pha của.bộ lọc FIR bậc 25.
h = fir1(25,0.4);
[H,f] = freqz(h,1,512,2);
subplot(3,1,1);
plot(f,abs(H)); grid