Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 35 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
35
Dung lượng
11,01 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU BÀI BỘ LỌC FIR/IIR TRÊN KIT C6713 DSK Giảng viên hướng dẫn: Thầy Huỳnh Văn Phận Nhóm lớp:L10 Tiểu nhóm: 03 Họ tên SV báo cáo MSSV Nguyễn Thành An 2012561 Nguyễn Tiến Đạt 2011074 Nguyễn Minh Huy 2012505 Trần Ngọc Vũ 2015096 Ngày thí nghiệm: 4/12/2022 CBGD nhận xét ký tên Điểm đánh giá Chuẩn bị lý thuyết Báo cáo kết thí nghiệm 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 TIẾN TRÌNH THÍ NGHIỆM Trong phần thí nghiệm có u cầu cần phải thực hiện: Thiết kế lọc: Kết phần có đáp ứng xung h(n) lọc Thực lọc lên kit C6713 DSK: Sử dụng đáp ứng xung thu từ phần thiết kế, viết chương trình thực mạch lọc lên kit Chương trình đọc mẫu liệu vào tiến hành giải thuật xử lý mẫu để tính ngõ Kiểm tra lọc thực hiện: Trong phần này, lọc thực kit kiểm tra xem có đáp ứng yêu cầu đặt hay không Chúng ta sử dụng máy phát sóng để tạo tín hiệu ngõ vào quan sát tín hiệu ngõ lọc thay đổi tín hiệu ngõ vào 2.1 Các lọc FIR 2.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 pháp cửa sổ Kaiser với thông số sau: Chiều dài đáp ứng xung: N = 63 (MATLAB hiển thị bậc lọc 62) 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 Thiết kế lọc dùng 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 = FIR Window Specify Order: 62 Window: Kaiser, Beta: Frequency Specifications: Fs = 8000, Fc1 = 2500, Fc2 = 2900 c Nhấn Design Filter Khi đáp ứng tần số lọc thiết kế hiển thị 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 bs2700 cách chọn Edit Name…filt2 [design] Trong cửa sổ xuất hiện, nhập tên Ghi lại kết kiểm tra xem có phải lọc chắn dải mong muốn không? - Đây lọc chắn dải với tần số cắt 2500Hz 2900Hz mong muố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: 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 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, nhấn đúp 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 Các giá trị thu vector đáp ứng xung sử dụng để thực lọc số lên kit DSP Do chương trình khảo sát lọc số lên kit DSP sử dụng chế độ 16 bit có dấu chương trình thiết kế lọc MATLAB chuẩn hóa hệ số đáp ứng xung khoảng [-1 1] nên hệ số đáp ứng xung cần nhân với 215 làm tròn số nguyên trước đưa vào thực lọc số lên kit DSP sau: >> cof = round(h*2^15) Giá trị hệ số đáp ứng xung -631 481 163 -663 516 100 -540 410 32 -260 132 147 -320 44 623 -915 190 1097 -1588 442 1492 -2254 776 1748 -2818 1146 1829 -3196 1486 1732 29960 1732 1486 -3196 1829 1146 -2818 1748 776 -2254 1492 442 -1588 1097 190 -915 623 44 -320 147 132 -260 32 410 -540 100 516 -663 163 481 -631 Thực lọc kit DSP Bộ lọc thực kit chương trình sau (viết ngơn ngữ C) //Fir.c FIR filter Include coefficient file with length N #include "coefficients.h" //coefficient file #include "dsk6713_aic23.h" //codec-dsk support file Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate int yn = 0; //initialize filter's output short dly[N]; //delay samples interrupt void c_int11() //ISR { short i; dly[0]=input_sample(); //input newest sample yn = 0; //initialize filter's output for (i = 0; i< N; i++) yn += (h[i] * dly[i]); //y(n) += h(i)* x(n-i) for (i = N-1; i > 0; i ) //starting @ end of buffer dly[i] = dly[i-1]; //update delays with data move output_sample(yn >> 15); //scale output filter sample return; } void main() { comm_intr(); //init DSK, codec, McBSP while(1); //infinite loop } Trong chương trình này, N chiều dài đáp ứng xung lọc (bằng M + với M bậc lọc) đáp ứng xung lọc mảng h có kích thước N Giá trị N vector h khai báo tập tin coefficients.h Tập tin gộp vào nhờ dẫn #include Như vậy, muốn thay đổi lọc, cần thay đổi nội dung tập tin coefficients.h Chương trình có sử dụng ngắt Khi có có xung lấy mẫu (tần số chọn 8KHz), trình phục vụ ngắt c_int11 gọi, đọc mẫu vào thực giải thuật xử lý mẫu để tính ngõ (Hướng dẫn: nên chép thư mục FIR có thành thư mục với tên khác thực thư mục ứng với lọc) Tóm lại, bước để thực lọc FIR lên kit sau: Lấy hệ số đáp ứng xung cof lọc thiết kế định dạng 16 bit có dấu Mở CCS (nhớ mở nguồn DSK trước mở CCS) Kiểm tra kết nối Mở tập tin project (đã tạo sẵn) FIR.pjt C:\CCStudio_v3.1\ myprojects\FIR Trong cửa sổ Project View, tab File View, mở rộng phần Include, mở tập tin coeficients.h Đặt hệ số đáp ứng xung lọc vừa thiết kế vào tập tin (Có thể copy paste từ cửa sổ Array Editor trên) Điều chỉnh giá trị N cho với chiều dài đáp ứng xung Lưu ý giá trị đáp ứng xung cách dấu phẩy (,) Lưu tập tin sau sửa đổi Xác lập tùy chọn phù hợp (xem phần hướng dẫn sử dụng tài liệu này) tiến hành biên dịch chương trình Sau dịch thành cơng, nạp chương trình lên kit chạy chương trình Đánh giá kết thực Chọn View Graph Time/Frequency Thay đổi tùy chọn cửa sổ Graph Property Dialog để vẽ miền thời gian Địa bắt đầu đệm tên mảng h nhập vào Start Address Các tùy chọn khác để mặc định Ghi nhận dạng sóng đáp ứng xung lọc: Chọn View Graph Time/Frequency, sau chọn Display type FFT Magnitude địa bắt đầu (Start Address) h Chọn bậc FFT (FFT Order) cho FFT Framesize = 2order Ghi nhận đáp ứng biên độ-tần số pha-tần số lọc: Kiểm tra lọc: Mở nguồn máy phát sóng Tạo tín hiệu vào hình sine từ máy phát sóng, thay đổi tần số tín hiệu vào từ 100Hz đến 4KHz (mỗi lần 100Hz), ghi nhận biên độ dạng sóng biên độ phổ tín hiệu ngõ từ xác định đặc tính lọc Sóng vng 200Hz Sóng vng 350Hz 19 Sóng vng 600Hz fi (Hz) 100 200 350 600 fo (Hz) 1900 1500 1600 1600 Giải thích - Do sóng vng tổng vơ số tín hiệu tuần hồn sin (các hài), tần số hài hài bậc lẻ fk= kf0 (= 1,3,5… ) , biên độ hài (f0) có giá trị lớn biên độ hài sau giảm dần tần số cao - Đối với sóng vng có thành phần sóng hài nằm xa dải thơng (thành phần phía tần số thấp lọc thơng dải) thấy thành phần tần số sóng 2.1.3 Bộ lọc FIR thơng cao Tương tự trên, thiết kế, thực kiểm tra lọc FIR thông cao phương pháp Kaiser Window với thông số sau:: - Chiều dài đáp ứng xung: 63 - Tần số cắt: 2200 Hz - Giá trị của:β = - Tần số lấy mẫu: kHz 20 Đáp ứng tần số lọc thiết kế dùng MATLAB: Gía trị hệ số đáp ứng xung lọc thực kit DSP: 21 327 -351 379 -411 448 -492 546 -612 696 -804 953 -1166 1501 -2104 3509 -10530 16542 -10530 3509 -2104 1501 -1166 953 -804 696 -612 546 -492 448 -411 379 -351 327 Dạng sóng đáp ứng xung lọc thực kit DSP: 22 Đáp ứng biên độ-tần số pha-tần số lọc thực kit DSP: Kiểm tra lọc với ngõ vào tín hiệu sin: 23 Sóng sine 2KHz Sóng sine 2,2KHz 24 Sóng sine 2,5KHz • Đặc tính lọc: lọc có tính thơng cao, thành phần ngõ vào tần số thuộc khoảng từ 2200Hz trở lên giữ nguyên giá trị ban đầu (nếu có suy giảm không đáng kể), tần số 2200Hz điều bị chắn (biên độ nhỏ khơng có so với thành phần ngõ vào có tần số nằm dải thông) Kiểm tra lọc với ngõ vào tín hiệu xung vng: 25 Xung vng 500Hz Xung vuông 600Hz 26 Xung vuông 800Hz Xung vuông 1KHz fi (Hz) 500 600 800 27 1000 fo (Hz) Giải thích 2200 2500 2200 3000 - Do sóng vng tổng vơ số tín hiệu tuần hồn sin (các hài), tần số hài hài bậc lẻ fk= kf0 (= 1,3,5… ) , biên độ hài (f0) có giá trị lớn biên độ hài sau giảm dần tần số cao - Đối với sóng vng có thành phần sóng hài nằm xa dải thơng (thành phần phía tần số thấp lọc thơng dải) thấy thành phần tần số sóng 2.1.4 Bộ lọc FIR multiband Thiết kế, thực kiểm tra lọc FIR multiband gồm 63 hệ số, tần số lấy mẫu 10 kHz, dải thông [500 1000] Hz [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ố sau: 28 Thiết kế lọc dùng MATLAB Bộ lọc mong muốn có dải thơng, biểu diễn dải sau: FN tần số Nyquist, ½ tần số lấy mẫu 29 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: %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)); Đáp ứng tần số lọc thiết kế dùng MATLAB: 30 Gía trị hệ số đáp ứng xung lọc thực kit DSP: 2063 -1545 -762 -397 -239 -249 31 -216 -9 137 -199 -1027 -1666 -1345 -158 845 778 56 48 1384 2872 2566 20 -2867 -2015 -69 -38 -1575 -2139 29 3598 5351 3598 29 -2139 -1575 -38 -69 -2015 -2867 20 2566 2872 1384 48 56 778 845 -158 -1345 -1666 -1027 -199 137 -9 -216 -249 -239 -397 -762 -1545 2063 -3665 -3665 Dạng sóng đáp ứng xung lọc thực kit DSP: 32 Đáp ứng biên độ-tần số pha-tần số lọc thực kit 33 ... -34 -62 41 138 -208 -92 215 185 - 134 -180 23 -30 32 5 32 8 -612 -978 579 1 834 -2545 -1126 2711 25 03 -2094 -36 40 789 4081 789 -36 40 -2094 25 03 2711 -1126 -2545 1 834 579 -978 -612 32 8 32 5 -30 23. .. 1829 -31 96 1486 1 732 29960 1 732 1486 -31 96 1829 1146 -2818 1748 776 -2254 1492 442 -1588 1097 190 -915 6 23 44 -32 0 147 132 -260 32 410 -540 100 516 -6 63 1 63 481 - 631 Thực lọc kit DSP Bộ lọc thực... MATLAB: 30 Gía trị hệ số đáp ứng xung lọc thực kit DSP: 20 63 -1545 -762 -39 7 - 239 -249 31 -216 -9 137 -199 -1027 -1666 - 134 5 -158 845 778 56 48 138 4 2872 2566 20 -2867 -2015 -69 -38 -1575 -2 139 29 35 98