P. 1
Thiet_ke_va_mo_phong_macch_loc_FIR_va_IIR_dung_Matlab

Thiet_ke_va_mo_phong_macch_loc_FIR_va_IIR_dung_Matlab

|Views: 1,392|Likes:
Được xuất bản bởiNguyen Ngoc Toan

More info:

Published by: Nguyen Ngoc Toan on Nov 22, 2011
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/02/2013

pdf

text

original

Mô phỏng mạch lọc số trên Matlab.

Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab

Chương 2: THIẾT KẾ MẠCH LỌC SỐ FIR VÀ IIR TRÊN MATLAB
Trong chương này chúng ta sẽ dùng phần mềm Matlab để thực hiện thiết kế và mô phỏng bộ lọc số FIR hoặc IIR. Chúng ta sẽ dựa vào toolbox với giao diện graphic để thiết kế mạch lọc số. Toolbox được dùng trong bài này là Signal Processing Tool. Để có thể thực hành tốt thì sinh viên cần có kiến thức cơ bản về Matlab. Trong chương 1 có trình bày một số vấn đề cơ bản về Matlab. Sinh viên cần tìm tài liệu để đọc thêm và thực hành các bài thực hành trước ở nhà trước khi thực hành trên lớp. Phần mềm Matlab 2009B ( khoảng 4.6GB ), một số ebook tham khảo về Matlab từ cơ bản đến nâng cao, tài liệu tham khảo thực hành về xử lý tín hiệu số (bao gồm một số code ) sinh viên có thể download tại link: http://huuhoangtech.tk . Tài liệu phục vụ cho thực hành : “Mô phỏng mạch lọc số trên Matlab” cũng có thể download ở trang trên. Chương 2 này bao gồm 3 phần với 2 bài thực hành cơ bản sau: Mở đầu: Giới thiệu về công cụ SPTool cho mô phỏng bộ lọc số. Bài 1: Thiết kế và mô phỏng bộ lọc số FIR bằng SPTool. Bài 2: Thiết kế và mô phỏng bộ lọc số IIR bằng SPTool.

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 1

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab

Mở đầu: GIỚI THIỆU CÔNG CỤ SPTOOL CHO MÔ PHỎNG MẠCH SỐ 1.1 Thiết kế bộ lọc số bằng công cụ SPTool: - SPTool là một công cụ có giao diện GUI cho xử lý tín hiệu. Công cụ này có thể được sử dụng phân tích tín hiệu, mô phỏng quá trình thiết kế bộ lọc, phân tích các bộ lọc, lọc tín hiệu và phân tích phổ của tín hiệu. - Để khởi động SPTool. Từ command gõ lệnh: >> sptool - Khi đó giao diện của SPTool sẽ như sau:

Hình 2.1: Giao diện của SPTOOL. Giao diện của SPTool có 3 cột bao gồm tập hợp các tín hiệu, bộ lọc và phổ mặc định tương ứng với : Signals, Filters và Spectra. Dưới mỗi cột có các button sử dụng cho cột đó. Các tín hiệu, bộ lọc hoặc phổ của Matlab có thể được được đưa vào SPTool bằng lệnh Import trong menu File của SPTool. Các tín hiệu, bộ lọc hoặc phổ được import vào SPTool tồn tại dưới dạng cấu trúc của MatLab. Để lưu lại tín hiệu, bộ lọc và phổ đã được tạo hoặc chỉnh sửa trong SPTool ta dùng lệnh Export trong menu File. Để thiết kế một bộ lọc mới. Sử dụng button New ngay dưới cột Filter. Khi đó giao diện Filter Designer dùng để thiết kế bộ lọc sẽ xuất hiện. Có thể gọi ra Filter Designer bằng lệnh >>fdatool Filter Designer cung cấp một môi trường đồ họa tương tác để thiết kế bộ lọc số IIR hoặc FIR dựa trên các thông số do người dùng lựa chọn. + Các loại bộ lọc có thể thiết kế: thông thấp, thông cao, thông dải, chắn dải.

-

-

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 2

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab + Các phương pháp thiết kế bộ lọc FIR: Equiripple, Least Squares, Window. + Các phương pháp thiết kế bộ lọc IIR: Butterworth, Chebyshev I, Chebyshev II. Elliptic.

Hình 2.2: Giao diện của Filter Designer ( >>fdatool). Response Type: Lựa chọn kiểu bộ lọc thông thấp, thông cao, thông dải, chắn dải. Design Method: Các phương pháp dùng để thiết kế bộ lọc IIR hoặc FIR. Filter Order: Bậc của bộ lọc (Độ dài của đáp ứng xung). Apass/2: Độ gợn sóng trong dải thông (dB). Astop: Độ suy giảm trong dải chắn (dB). Fs: Tần số lấy mẫu. Fpass: Tần số giới hạn của dải thông. Fstop: Tần số giới hạn của dải chắn. Click vào vị trí trên đồ thị để thể hiện Đáp ứng biên độ (dB) như hình dưới:

1.2 Phân tích bộ lọc: - Sau khi thiết kế xong bộ lọc, Chúng ta có thể thể hiện nhưng đáp ứng của bộ lọc trong thanh hiển thị trên thanh công cụ của Filter Designer bằng cách click vào những icon trên thanh công cụ này hoặc lựa chọn từ menu Analysis. Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 3

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab

1.3 Thiết kế những bộ lọc bổ sung: - Chúng ta có thể thiết kế một dãy các bộ lọc. Phần này thể hiện như thế nào bạn có thể thiết kế và lưu lại với các bộ lọc khác nhau. Bản bên dưới định nghĩa cho những thông số cho các bộ lọc. Chú ý rằng tất cả các dãy đều có thông số như sau: Bandpass, IIR-Butterworth, order = 6, Fs =48000Hz. Fc1 Fc2 Filter Name 22 45 Bandpass Butterworth-1 45 89 Bandpass Butterworth-2 89 178 Bandpass Butterworth-3 178 355 708 1413 2818 355 708 1413 2818 5623 Bandpass Butterworth-4 Bandpass Butterworth-5 Bandpass Butterworth-6 Bandpass Butterworth-7 Bandpass Butterworth-8

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 4

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab 5623 11220 Bandpass Butterworth-9 11220 22387 Bandpass Butterworth-10 Bảng T2.1: Bảng định nghĩa thông số của 10 bộ lọc thông dải. Từ command windown. >>fdatool Giao diện Filter Designer hiện ra: + Trong Respontype: Chọn bandpass. + Trong Design Method: Chọn IIR – Butterworth.

+ Trong Filter Order

-

Trong Frequency Specifications:

-

Click vào button Design Filter, sẽ hiển thị đáp ứng biên độ (dB) của mạch loc.

-

Click vào Store Filter

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 5

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab

-

Trong hộp thoại Store Filter, Đặt tên là Bandpass Butterworth-1.

Dùng những danh sách những thông số ở trên bảng T2.1. Cho mỗi thông số ở mỗi hàng, thiết lập những thông số đó bằng cách thay đổi giá trị của Fc1 và Fc2. - Ứng với mỗi thông số trên một hàng của bảng T2.1, thực hiện Design Filter và save chúng với Store Filter. Thay đổi name như bảng trên. 1.4 Thể hiện những bộ lọc trên trong FVtool( Filter Visualization Tool ): - Click vào button Filter Manager cho hiển thị hộp thoại Filter Manager, với danh sách những bộ lọc mà bạn đã lưu. - Bấm Ctrl + click cho lựa chọn tên của mỗi bộ lọc cho việc lựa chọn toàn bộ hay một phần các bộ thọc muốn thể hiện trong FVTool. Và sau đó click vào button FVTool. -

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 6

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab

-

-

Nếu bạn muốn thể hiện một bộ lọc đơn trong FVTool, click the Full View Analysis button khi bộ lọc được thể hiện trong thanh hiển thị của FDATool hoặc chọn View >Filter Visualization Tool) Để thay đổi tỷ lệ trục đo x(x-axis) theo log ta chọn Analysis > Analysis Parameter. Rồi thay đổi Frequence Scale : Log -> OK.

-

Click icon Legend cho hiển thị chú thích cho các bộ lọc. Click icon Zoom cho điều chỉnh kích thước hiển thị.

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 7

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab

1.5 Export bộ lọc từ FDATool: - FDATool hổ trợ một phương pháp đơn giản cho tạo các đối tượng bộ lọc (dfilts) từ những bộ lọc mà bạn thiết kế. Điều này đặc biệt hữu ích cho những bộ lọc bạn thiết kế trong Matlab workspace cho việc dùng với những hàng command line functions.Bạn có thể lưu bộ lọc của bạn như là code Matlab bằng việc dùng File>Generate MatLab code cho chay trong scripts hoặc batch files. - Trong FDATool, click Filter Manager and chỉ chọn Bandpass Butterworth – 1. - Seclec File > Export. - Trong Discrete Filter: Hd1

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 8

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab

-

Click button Export

1.6 Thể hiện đối tượng export trong matlab command: - Để xác nhận lại đối tượng ta dùng lênh >> whos. - Cho thể hiện bộ lọc dùng lệnh >>Hd1 - Hiển thị thông tin bộ lọc >> info (Hd1) - Mở FVTool bằng lệnh >> F= fvtool(HD1, ‘Analysis’, ‘magnitude’) >> set(F,’FrequencyScale’, ‘Log’) - Bây giờ dùng Matlab command line, tạo dữ liệu nhiễu Gause Sau đó lọc tín hiệu nhiễu này bằng những bộ lọc đã thiết kế ở trên rand % khoi tao mot so ngau nhien Nx = 100000; % So diem du lieu nhieu xw = randn(Nx, 1) % Tao nhieu Gause for i =1:10, yw(:,i) = filter(Hdi,xw); %Loc nhieu khi nhieu di qua bo loc end %(:,i) Nghia la tat ca cac rows cua column i plot(yw); %Bieu dien tin hieu sau khi loc

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 9

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab Bài 1: THIẾT KẾ VÀ MÔ PHỎNG BỘ LỌC SỐ FIR 1.1 Bài toán: Thiết kế một bộ lọc FIR chắn dải. Bộ lọc thiết kế bằng phương pháp cửa sổ Hamming, với các thông số sau: - Chiều dài của đáp ứng xung: N = 88. - Tần số trung tâm: 2700Hz. - Tần số cắt là 2500Hz và 2900 Hz. - Tần số lấy mẫu 48000 1.2 Các bước thiết kế: - Khởi động Matlab. Sau đó nhập lệnh : - Nhập các thông số thiết kế: + Response type : bandstop

>> fdatool

-

Designed Method : FIR - Window Filter order : Specify order : 88 Option : Window : Hamming

-

Frequency Specification: + Fs: 48000 + Fc1: 2500 +Fc2 : 2900

-

Click button Design Filter:

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 10

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab

1.3 Yêu cầu: 1. Sinh viên thay đổi tần số lấy mẫu, độ dài đáp ứng xung, các hàm cửa sổ(tam giác Bartlett – Bartlett, Cửa sổ Hannung – Bartlett, cửa sổ chữ nhật – Rectangular, của sổ tam giác Triagular) thiết kế để so sánh các bộ lọc được tạo ra. 2. Sinh viên export ra file object của Matlab. Tạo ra một tín hiệu nhiễu và đưa qua bộ lọc. Hiển thị kết quả.

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 11

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab Bài 2: THIẾT KẾ VÀ MÔ PHỎNG BỘ LỌC SỐ IIR 1.1 Bài toán: Thiết kế một bộ lọc IIR thông dải. Bộ lọc thiết kế bằng phương pháp Elliptic, với các thông số sau: - Bậc : N = 10 - Tần số trung tâm: 175Hz. - Tần số cắt là 1700Hz và 1800 Hz. - Độ gợn thông dải Apass = 3dB và thông chắn tương ứng Astop = 80 dB, - Tần số lấy mẫu 8000Hz 1.2 Các bước thiết kế: - Khởi động Matlab. Sau đó nhập lệnh : - Nhập các thông số thiết kế: + Response type : bandpass

>> fdatool

-

Designed Method : IIR - Elliptic Filter order : Specify order :10

-

Frequency Specification: + Fs: 8000 + Fpass1: 1700 +Fpass2 : 1800

-

Click button Design Filter:

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 12

Mô phỏng mạch lọc số trên Matlab. Chương 2: Thiết kế mạch lọc FIR và IIR trên Matlab

1.3 Yêu cầu: 1. Sinh viên tạo ra thêm 3 bộ lọc thông dải IIR như trên với các tần số cắt là BandPass2(1900, 2100); BandPass 3(2100, 2400), BandPass4(2400, 2500) dùng các phương pháp khác như: Butterworth, chebyshev loại 1 và loại 2. Lưu lại và thể hiện chúng trên cùng FVTool. 2. Mô phỏng và biểu diễn bằng đồ thị đáp ứng biên độ, đáp ứng pha và đáp ứng tần số, đáp ứng xung, đáp ứng bước, biểu diễn điểm cực và zero trên mặt phẳng phức, Hiển thị thông tin và thông số bộ lọc của bộ lọc BP3. 3. Thực hiện export 4 bô lọc trên ra object trong Matlab workspaces. Tạo ra tín hiệu nhiễu Gause, cho tín hiệu nhiễu qua 4 bộ lọc trên. So sánh và đánh giá.

Biên soạn : Nguyễn Lương Nhật - Nguyễn Hữu Hoàng – PTITHCM – 09/2011 13

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->