1. Trang chủ
  2. » Giáo án - Bài giảng

B3 bộ lọc FIR và IIR

50 19 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Bài 3: Thiết kế và thực hiện các bộ lọc fir/iir trên matlab

  • 1. Mục đích thí nghiệm

  • 1. Thiết bị thí nghiệm

  • 2. Cơ sở lý thuyết

    • 2.1. Bộ lọc FIR

    • 2.2. Bộ lọc IIR

  • 3. Chuẩn bị lý thuyết thí nghiệm

    • 3.1. Bộ lọc FIR

    • 3.2. Bộ lọc IIR

  • 4. Tiến trình thí nghiệm

    • 4.1. Các bộ lọc FIR

      • 4.1.1. Bộ lọc FIR chắn dải

      • 4.1.2. Bộ lọc FIR thông dải

      • 4.1.3. Bộ lọc FIR thông cao

      • 4.1.4. Bộ lọc FIR multiband

    • 4.2. Các bộ lọc IIR

      • 4.2.1. Bộ lọc IIR chắn dải

      • 4.2.2. Bộ lọc IIR thông thấp

      • 4.2.3. Thực hiện bộ lọc IIR thông dải

      • 4.2.4. Thiết kế bộ lọc IIR multiband

  • 5. Câu hỏi ôn tập

Nội dung

Xử lý số tín hiệu online đại học Bách Khoa Thành phố Hồ Chí Minh (HCMUT) Bài 3: Hiểu rõ các bước từ thiết kế đến hiện thực bộ lọc FIRIIR lên trên một kit DSP. Quan sát đáp ứng xung và đáp ứng tần số của bộ lọc. Kiểm tra đặc tính (thông thấp, thông cao, thông dải, chắn dải) của bộ lọc. Khảo sát ngõ ra của bộ lọc khi ngõ vào là tín hiệu xung vuông. Hệ thống lại các lý thuyết đã học.

BÀI 3: THIẾT KẾ VÀ THỰC HIỆN CÁC BỘ LỌC FIR/IIR TRÊN MATLAB Họ tên SV báo cáo 1: …………………………………… MSSV: ………………… Họ tên SV báo cáo 2: …………………………………… MSSV: ………….……… Họ tên SV báo cáo 3: …………………………………… MSSV: …………….…… Họ tên SV báo cáo 4: …………………………………… MSSV: ……………….… Nhóm lớp: … ……….… Tiểu nhóm: … … … Ngày thí nghiệm: …….……………… Điểm đánh giá CBGD nhận xét ký tên Chuẩn bị Báo cáo lý thuyết kết TN Kiểm tra Kết Mục đích thí nghiệm - Hiểu rõ bước từ thiết thực lọc FIR/IIR lên kit DSP - Quan sát đáp ứng xung đáp ứng tần số lọc - Kiểm tra đặc tính (thơng thấp, thơng cao, thơng dải, chắn dải) lọc - Khảo sát ngõ lọc ngõ vào tín hiệu xung vng - Hệ thống lại lý thuyết học Thiết bị thí nghiệm STT Tên thiết bị/Phần mềm Số lượng 01 Máy vi tính cá nhân có cài đặt phần mềm Matlab® 01 Cơ sở lý thuyết Lọc hoạt động xử lý tín hiệu quan trọng Một lọc tương tự hoạt động tín hiệu liên tục thường thực với linh kiện khuếch đại thuật toán, điện trở tụ điện Một lọc số hoạt động tín hiệu thời gian rời rạc thực với xử lý số tín hiệu họ TMS320C6x Q trình lọc bao gồm sử dụng biến đổi A/D để nhận tín hiệu vào, xử lý mẫu vào gửi kết thông qua biến đổi D/A Các lọc số có nhiều ưu điểm so với lọc tương tự Các ưu điểm bao gồm độ tin cậy cao hơn, độ xác cao nhạy với nhiệt độ tuổi đời Các đặc tính lọc tần số trung tâm, băng thơng loại lọc thay đổi dễ dàng Một số cơng cụ có sẵn cho việc thiết kế thực lọc số cách nhanh chóng Matlab® cơng cụ SPTool 2.1 Bộ lọc FIR Bộ lọc FIR nhân bậc M có đáp ứng xung N = M + 1) Ngõ x  n y  n h  n    h0 , h1 ,�, h M  (chiều dài đáp ứng xung lọc xác định theo cơng thức tích chập: ngõ vào lọc Hàm truyền lọc xác định từ biến đổi Z h  n hệ số hàm truyền đáp ứng xung sau: h  n lọc Thiết kế lọc FIR thiết kế hệ số đáp ứng xung Việc thiết kế thực sử dụng nhiều phương pháp, phương pháp đơn giản phương pháp cửa sổ Trong môn học này, việc thiết kế hệ số đáp ứng xung thực cơng SPTool Matlab Bộ lọc thực dựa hai phương pháp gồm: i) Phương pháp xử lý khối và, ii) phương pháp xử lý mẫu Trong môn học này, sử dụng phương pháp xử lý mẫu cho thí nghiệm Đối với phương pháp xử lý mẫu, lọc FIR thực dạng trực tiếp sau: Hình Thực lọc FIR dạng trực tiếp w  n   x  n  i  , i  0,1, �, M Nếu đặt biến trạng thái trung gian sau i , giải thuật xử lý mẫu lọc thực lưu đồ sau: Trong biến trạng thái trung gian ban đầu khởi tạo wi  0, i  1, 2, �, M Câu hỏi chuẩn bị 1: Viết chương trình Matlab thực giải thuật xử lý mẫu để thực lọc FIR có bậc M có ngõ vào x đáp ứng xung h Lưu lại với tên Bai_3_NHOMx_CB_1_FIR.m / Câu hỏi chuẩn bị 2: Sử dụng chương trình Matlab viết để xác định ngõ lọc FIR có h  n    1, 2, 1,1 x  n    1,1, 2,1, 2, 2,1,1 đáp ứng xung ngõ vào Kiểm tra tính xác chương trình vừa thực cách so sánh kết vừa tìm với kết sử dụng hàm conv Matlab Lưu lại với tên Bai_3_NHOMx_CB_2_FIR.m / 2.2 Bộ lọc IIR Hãy xem xét phương trình I/O tổng qt có dạng: N M k 0 j 1 y (n)  �bk x(n  k )  �a j y (n  j )  b0 x(n)  b1 x(n  1)  b2 x(n  2)  L  b N x(n  N )  a1 y (n  1)  a y (n  2)  L  a M y (n  M ) Dạng phương trình đệ quy biểu diễn lọc IIR Ngõ phụ thuộc vào giá trị ngõ vào thuộc vào giá trị ngõ trước x  n khứ y  n  1 , �, y  n  M  y  n thời điểm n không x  n  1 , �, x  n  N  , mà phụ Nếu giả sử điều kiện ban đầu 0, biến đổi Z phương trình I/O cho Y ( z )  b0 X ( z )  b1 z 1 X ( z )  b2 z 2 X ( z )  L  b N z  N X ( z )  a1 z 1Y ( z )  a z 2Y ( z )  L  a M z  M Y ( z ) Khi N = M, hàm truyền H  z H ( z)  N  z D z viết thành Y ( z ) b b1 z 1  b2 z 2  L b N z  N N ( z )   X ( z )  a1 z 1  a z 2  L a N z  N D( z ) biểu diễn đa thức tử số đa thức mẫu số hàm truyền Nhân tử N H  z mẫu số cho z , trở thành: H ( z)  N b z N  b1 z N 1  b2 z N 2  L b N z  zi  C � z N  a1 z N 1  a z N   L a N i 1 z  p i a  0, j Đây hàm truyền với N zero N cực Nếu tất hệ số j , hàm truyền trở thành hàm truyền lọc FIR Chú ý để hệ thống ổn định, tất cực phải nằm p  1, j vòng tròn đơn vị j Một lọc IIR thực theo dạng cấu trúc sau: i) Dạng trực tiếp 1, ii) Dạng trực tiếp (chính tắc), iii) Dạng trực tiếp chuyển vị, iv) Dạng nối tiếp tầng bậc v) Dạng song song Dạng trực tiếp Sơ đồ khối dạng trực tiếp lọc IIR cho sau Hình Thực lọc IIR dạng trực tiếp v , i  1, 2,�, L w j , j  1, 2,�, M , giải thuật xử lý mẫu Khi đặt biến trạng thái trung gian i lọc IIR j(dạng trực tiếp) thực lưu đồ sau: Có thể thấy thực dạng này, lọc bậc M cần dùng 2M khối làm trễ Điều dẫn đến gia tăng chi phí, xem xét dạng khác lọc IIR tiểu mục sau Câu hỏi chuẩn bị 3: Viết chương trình Matlab thực giải thuật xử lý mẫu dạng trực tiếp để thực lọc IIR tổng quát có bậc M có tín hiệu ngõ vào x Lưu lại với tên Bai_3_NHOMx_CB_3_IIR_Direct.m / Câu hỏi chuẩn bị 4: Cho lọc IIR có hàm truyền H  z   z 1  z 3  0.2 z 1  0.3z 2  0.5 z 4 , Vẽ sơ đồ khối dạng trực tiếp lọc Vẽ đáp ứng tần số lọc (có thể sử dụng hàm freqz Matlab.) Tìm ngõ y(n) ngõ vào x(n) = [1, 2, -1, 1] Sử dụng chương trình Matlab viết câu hỏi chuẩn bị để xác định ngõ lọc x  n    1, 2, 1,1 ngõ vào Kiểm tra tính xác với kết tính ý Lưu lại với tên Bai_3_NHOMx_CB_4_IIR_Direct.m / Dạng trực tiếp (Dạng tắc) Đây cấu trúc thường sử dụng Ở dạng này, số khối trễ giảm nửa so với dạng trực tiếp Đặt viết thành D z mẫu số hàm truyền lọc IIR, biểu thức biến đổi Z ngõ Y  z  N  z X  z  N  z U  z D z  U  z   b0  b1 z 1  b2 z 2 L b N z  N  với N  z tử số hàm truyền Và X ( z )  U ( z ) D( z )  U ( z )(1  a1 z 1  a z 2 L a N z  N ) Thực phép biến đổi Z ngược đổi với U  z Y  z ta thu u (n)  x(n)  a1u (n  1)  a 2u (n  2)  L  a N u (n  N ), y (n)  b0u (n)  b1u (n  1)  b2u (n  2)  L  b N u (n  N ) Chúng ta sử dụng biến đổi để thực dạng sơ đồ khối: Hình Bộ lọc IIR bậc M dạng trực tiếp w , j  1, 2,�, M Khi đặt biến trạng thái trung gian j , giải thuật xử lý mẫu lọc IIR (dạng trực tiếp) thực lưu đồ sau: Câu hỏi chuẩn bị 5: Viết chương trình Matlab thực giải thuật xử lý mẫu dạng tắc để thực lọc IIR tổng quát có bậc M có ngõ vào x Sau tính ngõ với thông số lọc ngõ vào câu hỏi chuẩn bị Lưu lại với tên Bai_3_NHOMx_CB_5_IIR_Canonical.m / Dạng trực tiếp chuyển vị Dạng trực tiếp chuyển vị biến thể dạng trực tiếp cần số khối trễ Các bước sau chuyển lọc từ dạng trực tiếp sang dạng chuyển vị: i Đảo hướng tất nhánh ii Đổi đầu vào với đầu iii Vẽ lại sơ đồ cho đầu vào bên trái đầu bên phải Một ví dụ sơ đồ dạng trực tiếp chuyển vị hình sau Hình Một ví dụ lọc IIR dạng trực tiếp chuyển vị Dạng nối tiếp Hàm truyền phân tích thành tích hàm truyền bậc bậc sau: H ( z )  C �H ( z ) H ( z ) L H r ( z ) Cấu trúc nối tiếp (cascade) vẽ sau: Hình Cấu trúc cascade lọc IIR Hàm truyền tồn biểu diễn ghép nối tiếp hàm truyền Đối với tầng, dạng trực tiếp chuyển vị sử dụng Hàm truyền nối tiếp hàm truyền bậc hai viết sau: H  z dạng N /2 b  b z 1  b2i z 2 H ( z )  � 0i 1i 1  a i z 2 i 1  a1i z Sơ đồ khối lọc IIR bậc với dạng nối tiếp K = lọc IIR bậc cho sau b , i  0, �, L; j  0,1, a , m  0, �, L; n  1, Các hệ số lọc IIR dạng nối tiếp (gồm ij mn với L = K – K số tầng nối tiếp lọc) viết thành ma trận sos sau � � b00 b01 � b b11 sos  �10 � M M � b L b L1 � 44 � � @B b02 b12 M b 43L � a 02 � � a11 a12 � @ B A  M M M � � a L1 a L � 4 43 � @A � , a 01 ma trận biến trạng thái trung gian định nghĩa w00 w01 � � w w11 W  � 10 � M M � w L w L1 � w02 � w12 � � M � � wL2 � Nếu đặt biến trạng thái trung gian hình, giải thuật xử lý mẫu lọc IIR (dạng nối tiếp K tầng) thực lưu đồ sau: Câu hỏi chuẩn bị 6: Viết chương trình Matlab thực giải thuật xử lý mẫu (dạng nối tiếp) để thực lọc IIR dạng nối tiếp với K = tầng lọc IIR bậc với ma trận hệ số lọc sos ma trận trạng thái trung gian W có ký hiệu (Để thuận tiện sv cho ma trận sos, tín hiệu ngõ vào x(n) để kiểm tra chương trình.) Lưu lại với tên Bai_3_NHOMx_CB_6_IIR_Cascade.m / Câu hỏi chuẩn bị 7: Cho lọc IIR có hàm truyền dạng nối tiếp sau �  z 1  z 2 ��  z 1  z 2 � H  z  � �� �  0.4 z 1  0.5 z 2 ��  0.4 z 1  0.5 z 2 � �   z 2  z 4 ,  0.84 z 2  0.25 z 4 a Xác định ma trận hệ số lọc sos (A, B) ma trận biến trạng thái trung gian W lọc b Vẽ sơ đồ khối với lọc dạng nối tiếp với thông số c Viết lưu đồ giải thuật xử lý mẫu cho lọc d Viết lưu đồ giải thuật xử lý mẫu cho lọc e Viết chương trình Matlab thực giải thuật xử lý mẫu để tìm ngõ lọc ngõ vào x(n) = [1, 2, -1, 1] Lưu lại với tên Bai_3_NHOMx_CB_7_IIR_Canonical.m / Dạng song song Hàm truyền lọc IIR biểu diễn sau (bằng phương pháp khai triển phân số phần): Cấu trúc song song vẽ sau: Hình Cấu trúc song song lọc IIR  Thiết kế lọc dùng SPTool MATLAB: 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: a Trong text box Filter: Tên lọc tự đặt (ở filt2) Tên thay đổi sau b Nhập thông số thiết kế vào:  Response Type = Bandstop  Design Method = IIR Elliptic  Specify Order: 10  Frequency Specifications: Fs = 8000, Fc1 = 1700, Fc2 = 1800  Apass = 1, Astop = 60 c Nhấn Design Filter Khi đáp ứng tần số lọc thiết kế hiển thị Lưu lại kết kiểm tra xem có phải lọc chắn dải mong muốn không? Trở cửa sổ SPTool, cột Filters xuất thêm dịng filt2 [design] Đây lọc vừa thiết kế Thay đổi tên lọc thành bs1750 cách chọn Edit  Name…filt2 [design] Trong cửa sổ xuất hiện, nhập tên Từ cửa sổ SPTool, chọn File  Export… Trong Export list xuất hiện, chọn Filter: bs1750 [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 bs1750 Đâ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 bs1750 workspace, ta thấy field cấu trúc 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ố Để chuyển hệ số sang dạng tầng bậc hai (second-order section), MATLAB dùng lệnh sau: >> [z,p,k] = tf2zp(bs1750.tf.num, bs1750.tf.den) ; >> sos = zp2sos(z,p,k); Ma trận sos MATLAB sau: b00 b01 � � b b11 sos  �10 � M M � b L b L1 � b02 b12 a 01 a11 M M bL2 M a L1 a 02 � a12 � � M � � a L2 � b0i, b1i, b2i hệ số tử số hàm truyền phần bậc thứ i 1, a 1i, a2i hệ số mẫu số hàm truyền phần bậc thứ i Các phần tử ma trận sos sử dụng để thực lọc IIR Ghi nhận giá trị b a vào bảng sau  Thực lọc IIR Matlab Chương trình Matlab thực lọc sau:  Kiểm tra lọc Kiểm tra lọc với tín hiệu sine đa tần có thành phần tần số 1000 Hz 1750 Hz: Kiểm tra lọc với ngõ vào tín hiệu tổng tín hiệu sin tần số 100 – 3900 Hz: Chương trình Matlab thực yêu cầu: % Matlab code Phổ tín hiệu ngõ vào ngõ ra: Nhận xét/Giải thích: Lưu chương trình Matlab mục với tên Bai_2 _IIR_bs_1700_1800_NHOMx.m 4.2.2 Bộ lọc IIR thông thấp Tương tự phần II.2.1, thiết kế, thực kiểm tra lọc IIR thông thấp thuộc loại Chebyshev với thông số sau:     Bậc lọc: 10 Cạnh dải dải chắn: 1.6 KHz Độ gợn dải chắn: 60 dB Tần số lấy mẫu: kHz Đáp ứng tần số lọc thiết kế dùng MATLAB: Gía trị hệ số đáp ứng xung tầng bậc lọc thực kit DSP: Kiểm tra lọc với ngõ vào tín hiệu sin đa tần có thành phần tần số 1000 Hz 1700 Hz: Kiểm tra lọc với ngõ vào tín hiệu tổng tín hiệu sin tần số 100 – 3900 Hz: Chương trình Matlab thực yêu cầu: % Matlab code Phổ tín hiệu ngõ vào ngõ ra: Nhận xét/Giải thích: Lưu chương trình Matlab mục với tên Bai_2 _IIR_lp_1600_NHOMx.m 4.2.3 Thực lọc IIR thông dải Tương tự phần II.2.1, thiết kế, thực kiểm tra lọc IIR thông dải thuộc loại Chebyshev với thông số sau:     Bậc lọc: 36 Tần số cắt dải chắn: 1600 2400 Hz Độ gợn dải chắn 100 dB Tần số lấy mẫu: kHz Đáp ứng tần số lọc thiết kế dùng MATLAB: Gía trị hệ số đáp ứng xung tầng bậc lọc thực kit DSP: Kiểm tra lọc với ngõ vào tín hiệu sin đa tần có thành phần tần số 1000 Hz 2000 Hz: Kiểm tra lọc với ngõ vào tín hiệu tổng tín hiệu sin tần số 100 – 3900 Hz: Chương trình Matlab thực yêu cầu: % Matlab code Phổ tín hiệu ngõ vào ngõ ra: Nhận xét/Giải thích: Lưu chương trình Matlab mục với tên Bai_2 _IIR_bp_1600_2400_NHOMx.m 4.2.4 Thiết kế lọc IIR multiband Trong thí nghiệm này, thiết kế, thực kiểm tra lọc IIR multiband có đáp ứng mong muốn lọc phần II.1.4 Các bước thiết kế giống phần II.1.4 với nội dung file multibandiir63.m dùng để thiết kế sau: %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); % 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)); 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 Đáp ứng tần số lọc thiết kế dùng MATLAB: Gía trị hệ số đáp ứng xung tầng bậc lọc thực kit DSP: Kiểm tra lọc với ngõ vào tín hiệu sin đa tần có thành phần tần số 500 Hz, 750 Hz 1750 Hz: Kiểm tra lọc với ngõ vào tín hiệu tổng tín hiệu sin tần số 100 – 3900 Hz: Chương trình Matlab thực yêu cầu: % Matlab code Phổ tín hiệu ngõ vào ngõ ra: Nhận xét/Giải thích: Lưu chương trình Matlab mục với tên Bai_2 _IIR_mb_NHOMx.m So sánh kết với phần trước: Câu hỏi ôn tập Cho biết cách kiểm tra số đặc tính lọc tuyến tính bất biến Phân loại lọc tuyến tính bất biến dựa vào đáp ứng xung đáp ứng tần số Cho biết tên đầy đủ thuật ngữ viết tắt sau: FIR, IIR, LPF, HPF, BPF, BSF Cho biết cách kiểm tra ý nghĩa đặc tính nhân ổn định lọc Cho biết cách xác định ý nghĩa bậc lọc Trình bày tóm tắt bước thiết kế lọc FIR/IIR SPTool MATLAB Có phương pháp thiết kế lọc FIR/IIR SPTool? Hãy liệt kê Hãy phân biệt đặc điểm đáp ứng tần số loại lọc Butterworth, Chebyshev 1, Chebyshev Elliptic Thế lọc multiband? Thử phác họa đáp ứng tần số lọc multiband? Có thể dùng MATLAB để thiết kế lọc FIR/IIR multiband hay không? ... lời 1 Số lượng lọc cần phải thực thí nghiệm? Các phương pháp thiết kế lọc FIR/ IIR dùng MATLAB? Tóm tắt quy trình thiết kế lọc FIR/ IIR dùng MATLAB? Các hệ số đáp ứng xung lọc FIR/ IIR dùng chương... mẫu tín hiệu ngõ vào (sử dụng chương trình tạo mẫu 1) quan sát tín hiệu ngõ lọc thay đổi tín hiệu ngõ vào 4.1 Các lọc FIR 4.1.1 Bộ lọc FIR chắn dải Thiết kế, thực khảo sát lọc FIR chắn dải phương... đặc tính lọc tần số trung tâm, băng thơng loại lọc thay đổi dễ dàng Một số cơng cụ có sẵn cho việc thiết kế thực lọc số cách nhanh chóng Matlab® cơng cụ SPTool 2.1 Bộ lọc FIR Bộ lọc FIR nhân

Ngày đăng: 10/03/2022, 10:49

TỪ KHÓA LIÊN QUAN

w