Sử dụng chương trình vẽ đồ thị Matlab để vẽ đồ thị giá trị đáp ứng xung của bộ lọc.. Chương trình Matlab vẽ đồ thị đáp ứng xung của bộ lọc... Sử dụng chương trình Matlab tính FFT của đáp
Trang 2Thực hiện ghi nhận lại: Tổng số giá trị là: 63
Ghi nhận lại giá trị đáp ứng xung của bộ lọc vào bảng sau:
Thực hiện bộ lọc trên Matlab
Để thực hiện việc tính toán ngõ ra của bộ lọc, ta có thể sử dụng định nghĩa y n( )h n x n với
h n là đáp ứng xung vừa tìm được sử dụng công cụ sptool ở trên và x n là mẫu tín hiệu ngõ
vào Do đó có thể sử dụng giải thuật xử lý mẫu để thực hiện bộ lọc
Chương trình Matlab thực hiện giải thuật xử lý mẫu cho bộ lọc này như sau:
Trang 3w(j) = w(j-1);
end
end
Đánh giá kết quả thực hiện
1 Sử dụng chương trình vẽ đồ thị Matlab để vẽ đồ thị giá trị đáp ứng xung của bộ lọc Chương trình Matlab vẽ đồ thị đáp ứng xung của bộ lọc
Trang 42 Sử dụng chương trình Matlab tính FFT của đáp ứng xung và vẽ đồ thị đáp ứng biên bộ và pha trong miền tần số của bộ lọc
Chương trình Matlab tính FFT và vẽ đồ thị đáp ứng tần số của bộ lọc
Trang 5x t từ chương trình Matlab và lưu vào biến giá trị xn, xn1, xn2 với các thông
số sau: tần số lấy mẫu fs = 8000 Hz, khoảng thời gian lấy mẫu t = 0 đến t = 0.05 s Sau đó xác định ngõ ra yn khi đưa xn qua bộ lọc trên Thực hiện các yêu cầu sau:
Vẽ đồ thị dạng sóng ngõ vào (x, x1, x2) và ngõ ra (y) của bộ lọc Nhận xét
Trang 82 Tạo một mẫu tín hiệu x(n) là tổng của các tín hiệu sine có tần số từ 100 Hz đến 3900 Hz có
bước nhảy 100Hz và tần số lấy mẫu fs = 8000 Hz, sau đó cho tín hiệu xn qua bộ lọc để tính giá trị ngõ ra y(n) Dùng chương trình Matlab để vẽ phổ biên độ của tín hiệu ngõ vào và ngõ
ra Giải thích tại sao có dạng phổ này?
Chương trình Matlab thực hiện yêu cầu:
Trang 9ylabel( 'Amp' );
subplot(1,2,2);
stem((0:Lya/2-1)*Fs/Lya,Ya_mag(1:Lya/2)/Lya); xlabel( 'Hz' );
ylabel( 'Amp' );
Phổ của tín hiệu ngõ vào và ngõ ra:
Trang 101.1.2 Bộ lọc FIR thông dải
Tương tự như phần trên, hãy thiết kế, thực hiện và kiểm tra bộ lọc FIR thông dải bằng phương pháp Kaiser Window với các thông số như sau:
Chiều dài đáp ứng xung: 63
Trang 122 Gía trị các hệ số đáp ứng xung của bộ lọc trên SPTool của Matlab:
-60 150 690
-130
205
-0
644
-0
236
-0 -2360
-0
312
-20
119
-80
748
-870
575
-80 -57580
-30
469
-90
312
-20
219
-0
400
Trang 144 Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 1000 Hz và 1700 Hz:
Trang 155 Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sine tần số từ 100 – 3900 Hz: Chương trình Matlab thực hiện yêu cầu:
Trang 16ylabel( 'Amp' );
subplot(1,2,2);
stem((0:Lya/2-1)*Fs/Lya,Ya_mag(1:Lya/2)/Lya); xlabel( 'Hz' );
ylabel( 'Amp' );
Phổ của tín hiệu ngõ vào và ngõ ra:
Trang 171.1.3 Bộ lọc FIR thông cao
Tương tự như trên, hãy thiết kế, thực hiện và kiểm tra bộ lọc FIR thông cao bằng phương pháp Kaiser Window với các thông số như sau::
Chiều dài đáp ứng xung: 63
Trang 182 Gía trị các hệ số đáp ứng xung của bộ lọc thực hiện trên kit DSP:
470 890
-11
30
97
-90
51
-00
393
0
1142
-0
1895
-0
2172
0
1723
0
3553
-0
1062
-0
5475
0
53
-60
8661
-0
4822
0
180
330
413
-0
8661
0
53
60
5475
-0
1062
0
3553
0
1723
-0
2172
-0
1895
0
1142
0
1777
-0
39
-60
149
20
104
-40
44
-50
30
-0
32
30
64
-0
20
Trang 194 Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 1000 Hz và 2500 Hz:
Trang 205 Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz: Chương trình Matlab thực hiện yêu cầu:
Trang 21ylabel( 'Amp' );
subplot(1,2,2);
stem((0:Lya/2-1)*Fs/Lya,Ya_mag(1:Lya/2)/Lya); xlabel( 'Hz' );
ylabel( 'Amp' );
Phổ của tín hiệu ngõ vào và ngõ ra:
Trang 221.1.4 Bộ lọc FIR multiband
Thiết kế, thực hiện và kiểm tra một bộ lọc FIR multiband gồm 63 hệ số, tần số lấy mẫu là 10 kHz, dải thông [500 1000] Hz và [1500 2000] Hz, độ rộng dải chuyển tiếp 100 Hz Bộ lọc cần thiết kế
có đáp ứng tần số như sau:
Trang 23Hình 1 Đáp ứng tần số của bộ lọc multiband FIR cần thiết kế
Thiết kế bộ lọc dùng MATLAB
Bộ lọc mong muốn có 2 dải thông, được biểu diễn bởi 5 dải như sau:
Dải Tần số (Hz) Tần số chuẩn hóa f/F N Biên độ
trong đó FN là tần số Nyquist, bằng ½ tần số lấy mẫu
Chúng ta viết một file m để thiết kế bộ lọc này, lưu lại với tên multibandfir63.m Nội dung của file này như sau:
%multibandfir63.m: Multiband FIR filter with 63 coefficients
0 0.2 0.4 0.6 0.8 1 1.2
Trang 24Trong đoạn chương trình trên, có một số lưu ý:
- Dòng lệnh cof = remez(n-1,f,m) trả về vector hệ số của bộ lọc FIR bậc n – 1, với f và m xác
định các dải tần số theo bảng ở trên
- Lệnh freqz để tính đáp ứng tần số của bộ lọc
- Lệnh plot thứ nhất vẽ đáp ứng tần số mong muốn dựa trên f và m
- Lệnh figure tạo ra một cửa sổ mới và lệnh plot thứ hai vẽ đáp ứng tần số của bộ lọc đã thiết
kế được lên cửa sổ mới này
Ở đây, kết quả của quá trình thiết kế mà ta cần nhận được chính là các hệ số chứa trong biến cof
Chúng được sử dụng để viết chương trình Matlab cho bộ lọc cần thực hiện
1 Đáp ứng tần số của bộ lọc thiết kế dùng MATLAB:
Trang 252 Gía trị các hệ số đáp ứng xung của bộ lọc thực hiện trên kit DSP:
3 Dạng sóng đáp ứng xung của bộ lọc:
Trang 264 Đáp ứng biên độ-tần số và pha-tần số của bộ lọc thực hiện trên kit DSP:
5 Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 500 Hz, 750 Hz
và 1750 Hz:
Trang 276 Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sine tần số từ 100 – 3900 Hz: Chương trình Matlab thực hiện yêu cầu:
% Matlab code
Phổ của tín hiệu ngõ vào và ngõ ra:
Trang 28Nhận xét/Giải thích: