Giáo Trình Thực Hành Dsp Bài 4 Sử Dụng Matlab Để Thiết Kế Bộ Lọc Số.pdf

9 16 0
Giáo Trình Thực Hành Dsp Bài 4 Sử Dụng Matlab Để Thiết Kế Bộ Lọc Số.pdf

Đang tải... (xem toàn văn)

Thông tin tài liệu

Giáo trình thực hành DSP Giáo trình thực hành DSP Biên soan Ths Trần Thị Điểm Trang 1 BÀI 4 SỬ DỤNG MATLAB ĐỂ THIẾT KẾ BỘ LỌC SỐ 1 SỬ DỤNG MATLAB ĐỂ THIẾT KẾ BỘ LỌC SỐ 1 1 Thiết kế bộ lọc số bằng công[.]

Giáo trình thực hành DSP BÀI 4: SỬ DỤNG MATLAB ĐỂ THIẾT KẾ BỘ LỌC SỐ SỬ DỤNG MATLAB ĐỂ THIẾT KẾ BỘ LỌC SỐ 1.1 Thiết kế lọc số công cụ SPTool SPTool công cụ có giao diện tương tác dùng cho xử lý số tín hiệu Cơng cụ sử dụng để phân tích tín hiệu, thiết kế lọc, phân tích lọc, lọc tín hiệu phân tích phổ tín hiệu Để khởi động SPTool, từ dấu nhắc lệnh MATLAB, nhập lệnh >> sptool Khi đó, giao diện SPTool xuất sau: Hình – Giao diện SPTool Khi mở SPTool, chứa tập hợp tín hiệu, lọc phổ mặc định Trên giao diện SPTool, có cột: Signals, Filters Spectra Dưới cột có nút sử dụng cho cột Cột Signals hiển thị tín hiệu, cột Filters hiển thị lọc cột Spectra hiển thị phổ workspace (vùng làm việc) SPTool Các tín hiệu, lọc phổ workspace MATLAB đưa vào SPTool lệnh Import menu File SPTool Các tín hiệu, lọc phổ tạo import vào SPTool tồn dạng cấu trúc MATLAB Để lưu lại tín hiệu, lọc phổ tạo chỉnh sửa SPTool, sử dụng lệnh Export menu File, chúng lưu lại dạng cấu trúc MATLAB Để bắt đầu thiết kế lọc mới, bạn nhấn vào nút New cột Filter Khi đó, giao diện Filter Designer dùng để thiết kế lọc sau xuất Biên soan: Ths Trần Thị Điểm Trang Giáo trình thực hành DSP Filter Designer cung cấp môi trường đồ họa tương tác để thiết kế lọc số IIR FIR dựa tiêu chuẩn người dùng xác định - Các loại lọc thiết kế: Thông thấp, thông cao, thông dải, chắn dải - Các phương pháp thiết kế lọc FIR: Equiripple, Least squares, Window - Các phương pháp thiết kế lọc IIR: Butterworth, Chebyshev loại I, Chebyshev loại II, Elliptic Hình – Giao diện Filter Designer Ví dụ 1: Thiết kế lọc FIR chắn dải SPTool Bộ lọc, thiết kế phương pháp cửa sổ Kaiser, với thông số sau: Chiều dài đáp ứng xung: N = 89 (MATLAB hiển thị bậc lọc 88) Tần số trung tâm: 2700 Hz Tần số cắt: 2500 Hz 2900 Hz Giá trị  = Tần số lấy mẫu 8000 Hz Các bước thiết kế sau: Khởi động SPTool Dưới cột Filters, nhấn nút New để mở cửa sổ Filter Designer Trong giao diện Filter Designer: Biên soan: Ths Trần Thị Điểm Trang Giáo trình thực hành DSP a Trong text box Filter: Tên lọc tự đặt (ở filt1) Tên thay đổi sau b Nhập thông số thiết kế vào: i Design method  FIR  Windows ii Option  Windows  Kaiser iii Bỏ chọn check box Minimum Order (nếu chọn thiết kế lọc có bậc tối thiểu) iv Filter Order = 88, Respone Type = Bandstop, Fc1 = 2500, Fc2 = 2900, Fs = 8000, Beta = c Nhấn Design Filter Khi đáp ứng tần số lọc thiết kế hiển thị Hình – Đáp ứng tần số lọc thiết kế Trở cửa sổ SPTool, cột Filters xuất thêm dịng filt1 [design] Đây lọc vừa thiết kế Sau này, muốn sửa đổi thiết kế, chọn lại tên lọc nhấn nút Edit phía Để dễ nhớ, ta thay đổi tên lọc thành bs2700 cách chọn Edit  Name…filt1 [design] Trong cửa sổ xuất hiện, nhập tên Khi thiết kế lọc FIR trên, kết mà ta cần nhận sau thiết kế giá trị vector đáp ứng xung h lọc thiết kế Để lấy giá trị vector đáp ứng xung, ta thực sau: Biên soan: Ths Trần Thị Điểm Trang Giáo trình thực hành DSP Từ cửa sổ SPTool, chọn File  Export… Trong Export list xuất hiện, chọn Filter: bs2700 [design] nhấn nút Export to workspace Đóng cửa sổ SPTool lại Một thơng báo xuất hỏi có muốn lưu lại phiên làm việc hay không Nếu muốn lưu lại, chọn Save Mở cửa sổ Workspace MATLAB, ta thấy workspace xuất biến bs2700 Đây lọc mà ta thiết kế SPTool xuất workspace MATLAB Biến lưu dạng cấu trúc mô tả lọc thiết kế Nhấn đúp chuột vào tên biến bs2700 workspace, ta thấy field cấu trúc sau: Hình – Các field bs2700 Trong field này, field tf thể hàm truyền lọc Field cấu trúc gồm field: tf.num tf.den thể tương ứng hệ số đa thức tử số đa thức mẫu số Đối với lọc FIR, hàm truyền có tử số hệ số tử số đáp ứng xung lọc Do đó, với lọc trên, giá trị vector đáp ứng xung lưu bs2700.tf.num Trong cửa sổ Array Editor trên, double click vào field tf nhấn đúp vào num, ta thấy hệ số đáp ứng xung lọc Để gán hệ số vào vector h, MATLAB dùng lệnh sau: >> h = bs2700.tf.num Biên soan: Ths Trần Thị Điểm Trang Giáo trình thực hành DSP Hình – Vector đáp ứng xung lọc thiết kế Các giá trị thu vector đáp ứng xung sử dụng để thực lọc số lên kit DSP Ví dụ 2: Thiết kế lọc IIR chắn dải SPTool Sử dụng phương pháp Elliptic để thiết kế lọc IIR chắn dải bậc 10, tần số trung tâm 1750Hz Chú ý MATLAB hiển thị bậc lọc 5, biểu diễn số phần bậc lọc (Điều với lọc IIR thông dải chắn dải) Các thông số lọc sau Tần số cắt: 1700 Hz 1800 Hz Độ gợn dải thông dải chắn tương ứng dB 60 dB Tần số lấy mẫu: 8000 Hz Thực tương tự ví dụ trên, lưu lọc thiết kế với tên bs1750 xuất workspace Trong workspace có cấu trúc tên bs1750 Các hệ số tử số mẫu số hàm truyền lưu tương ứng biến bs1750.tf.num bs1750.tf.den Biên soan: Ths Trần Thị Điểm Trang Giáo trình thực hành DSP Hình – Đáp ứng tần số lọc IIR thiết kế Dạng cực – zero hàm truyền H(z) sau: z  z1 z  z2  z  z n  H ( z)  k z  p1 z  p2  z  pm  Hàm truyền viết lại sau: b0 k  b1k z 1  b2 k z 2 1  a2 k z 2 k 1  a1k z L L H ( z )  g  H k z   g  k 1 Với L số nguyên gần lớn cực đại n/2 m/2 Trong MATLAB, phần bậc H(z) lưu ma trận sau:  b01 b sos   02    b0 L a21  a22         b1L b2 L a1L a2 L  Từ hệ số tử mẫu trên, ta chuyển thành dạng phần bậc hai lệnh sau: Biên soan: Ths Trần Thị Điểm b11 b12 b21 a11 b22 a12 Trang Giáo trình thực hành DSP >> [z, p, k] = tf2zp(bs1750.tf.num, bs1750.tf.den) >> sos = zp2sos(z,p,k) Các phần tử ma trận sos sử dụng để thực lọc IIR lên kit DSP 1.2 Thiết kế lọc lệnh MATLAB Bên cạnh việc sử dụng công cụ SPTool để thiết kế lọc trên, MATLAB có số lệnh sử dụng để thiết kế lọc Các lệnh sử dụng thiết kế số loại lọc mà SPTool khơng có sẵn, ví dụ lọc multiband Ví dụ 1: Thiết kế lọc FIR multiband lệnh MATLAB Trong ví dụ này, thiết kế lọc FIR multiband gồm 63 hệ số Tần số lấy mẫu 10 kHz Chúng ta sử dụng hàm remez MATLAB Hàm remez sử dụng giải thuật Parks – McClellan dựa giải thuật Remez lý thuyết xấp xỉ Chebyshev Bộ lọc cần thiết kế có đáp ứng tần số sau: 1.2 0.8 0.6 0.4 0.2 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 Hình – Đáp ứng tần số lọc multiband FIR cần thiết kế Bộ lọc mong muốn có dải thơng, biểu diễn dải sau: Dải Tần số (Hz) Tần số chuẩn hóa f/FN Biên độ – 500 – 0.1 600 – 900 0.12 – 0.18 1000 – 1500 0.2 – 0.3 1600 – 1900 0.32 – 0.38 2000 – 5000 0.4 – Biên soan: Ths Trần Thị Điểm Trang Giáo trình thực hành DSP Trong FN tần số Nyquist, ½ tần số lấy mẫu Chúng ta viết file m để thiết kế lọc này, lưu lại với tên multibandfir63.m Nội dung file sau: 10 11 12 13 14 15 16 17 function lab4_part1 %multibandfir63.m: Multiband FIR filter with 63 coefficients f = [0 0.1 0.12 0.18 0.2 0.3 0.32 0.38 0.4 1]; m = [0 1 0 1 0]; n = 63; cof = remez(n-1, f, m); % frequency response with 256 points [h w] = freqz(cof, 1, 256); % plot magnitude of the filter plot(5000 * f, m); figure; plot(w / pi, abs(h)); end Trong đoạn chương trình trên, có số lưu ý: - Dòng lệnh cof = remez(n-1, f, m) trả vector hệ số lọc FIR bậc n – 1, với f m xác định dải tần số theo bảng - Lệnh freqz để tính đáp ứng tần số lọc - Lệnh plot thứ vẽ đáp ứng tần số mong muốn dựa f m - Lệnh figure tạo cửa sổ lệnh plot thứ hai vẽ đáp ứng tần số lọc thiết kế lên cửa sổ Ở đây, kết q trình thiết kế mà ta cần nhận hệ số chứa biến cof Chúng sử dụng thực lọc lên kit DSP Ví dụ 2: Thiết kế lọc IIR multiband lệnh MATLAB Trong thí nghiệm này, thiết kế lọc IIR multiband có đáp ứng mong muốn lọc ví dụ Tần số lấy mẫu 10 kHz Các bước thiết kế giống với nội dung file multibandiir63.m dùng để thiết kế sau: function lab4_part2 %multibandiir63.m: Multiband IIR filter with 63 coefficients f = [0 0.1 0.12 0.18 0.2 0.3 0.32 0.38 0.4 1]; m = [0 1 0 1 0]; n = 63; [num, den] = yulewalk(n - 1, f, m); Biên soan: Ths Trần Thị Điểm Trang Giáo trình thực hành DSP 10 11 12 13 14 15 16 17 % frequency response with 256 points [h w] = freqz(num, den, 256); % plot magnitude of the filter plot(5000 * f, m); figure; plot(w / pi, abs(h)); end Trong đoạn chương trình trên, lưu ý: - Lệnh remez thay lệnh yulewalk dùng để thiết kế lọc IIR Lệnh trả hệ số tử số mẫu số hàm truyền lọc, chứa tương ứng biến num den - Lệnh freqz sửa đổi để vẽ đáp ứng tần số lọc IIR thiết kế Các giá trị num den sử dụng cần thực lọc lên kit DSP Biên soan: Ths Trần Thị Điểm Trang ... sos sử dụng để thực lọc IIR lên kit DSP 1.2 Thiết kế lọc lệnh MATLAB Bên cạnh việc sử dụng công cụ SPTool để thiết kế lọc trên, MATLAB có số lệnh sử dụng để thiết kế lọc Các lệnh sử dụng thiết kế. .. ứng xung sử dụng để thực lọc số lên kit DSP Ví dụ 2: Thiết kế lọc IIR chắn dải SPTool Sử dụng phương pháp Elliptic để thiết kế lọc IIR chắn dải bậc 10, tần số trung tâm 1750Hz Chú ý MATLAB hiển... tần số mong muốn dựa f m - Lệnh figure tạo cửa sổ lệnh plot thứ hai vẽ đáp ứng tần số lọc thiết kế lên cửa sổ Ở đây, kết trình thiết kế mà ta cần nhận hệ số chứa biến cof Chúng sử dụng thực lọc

Ngày đăng: 14/03/2023, 16:45

Tài liệu cùng người dùng

Tài liệu liên quan