Bài tập Xử lý số - Bài 1: Thực hiện các bộ lọc Fir trên KIT C6713DSK
II - Thiết kế bộ lọc thông dải bằng phương pháp Kaiser Window:
• N=81
• Fc1=1500
• Fc2=2000 Hz.
• β= 5.
• Fs=8000Hz
Thực hiện tương tự phần 1. Kết quả thu được như sau :
Đáp ứng thu được khi thiết kế bằng Matlab:
BÀI 1: THỰC HIỆN CÁC BỘ LỌC FIR TRÊN KIT C6713DSK . Thiết kế bộ lọc thông chắn dải bằng phương pháp Kaiser Window Các thông số cần thiết kế: N=89. Fc1 =2500 Fc2=2900 Hz . β = 4. Fs=8000 Hz. Tìm đáp ứng xung h Mở MATLAB trong cửa sổ Command gõ lệnh : >>sptool Xuất hiện hộp thoại SPTool , nhấp chọn New Nhập các thông số như yêu cầu thiết kế và nhấp vào Design Filter : Đổi tên : startup.spt àeditànameàfilt1 , đặt lại tên: bandstop Xuất ra workspace : Từ cửa sổ SPTool, chọn FileàEportTrong Export list xuất hiện chọn Filter :bandstop [ design] rồi nhấn Export to Workspace. Sang cửa sổ chính của chương trình MATLAB, double click vào bandstop trong tab Workspace để xem các hệ số trên tử của hàm truyền (num): Ta quan sát thấy có 89 hệ số với giá trị rất nhỏ. Để thực hiện bộ lọc thông qua phần mềm CCS ta chuyển lên giá trị lớn hơn bằng dòng lệnh sau : (Sau đó nhấp đúp vào biến cof trong workspace để quan sát) >>cof=round(bandstop.tf.num*2^15); Mục đích của việc này là giảm sai số trong quá trình lượng tử hóa .Sau quá trình lượng tử hóa thi ta chuyển về giá tri ban đầu bằng cách dịch qua phải 15 bits qua dòng lệnh trong CCS là : output_sample(yn>>15); Thực hiện bộ lọc : Mở c6713dsk: Kết nối CCS với KIT: Debug à Connect Mở tập tin project có tên FIR.pjt trong C:\Program Files\CCStudio_v3.1\myproject\FIR. Mở tập tin coeficients.h trong phần include mở rộng thuộc project view. Nhập số liệu : N=89, copy ma trận cof từ Array Editor ở MatLab và thay khoảng trắng bằng dấu “,” (Bằng lệnh “Ctr + H”) Thiết lập các thông số trong ProjectàBuild Options Trong thẻ Compiler Trong thẻ Linker Lúc này trong thư mục C:\Program Files\CCStudio_v3.1\MyProjects\FIR\Debug Sẽ xuất hiện tập tin FIR.out , đây là tập tin ta dung để nạp lên KIT. Biên dịch: Project à Rebuild All Sau khi CCS chạy xong : Vào File à Load Program dẫn tới file FIR.out Chạy chương trình Debug à Run : Quan sát đáp ứng của bộ lọc Graph à Time/Frequency Thiết lập thông số trong Graph Property Dialog như sau: Đáp ứng như sau: Kiểm tra bộ lọc vừa thiêt kế: Mở DSP_Tools.exe : Từ File mở: Oscillocope, Spectrum Analyzer, Get real time signal from soundcard để quan sát tín hiệu ra trên KIT : Điều chỉnh dao động ký với tần số vào là: 2700 Hz Nhận xét: fi nằm trong khoảng chắn nên tín hiệu bị triệt tiêu. 2Khz 3.4Khz Nhận xét: Với ngõ vào là 2000 Hz và 3400 Hz thì ta thu được tín hiệu giống tín hiệu vào. II - Thiết kế bộ lọc thông dải bằng phương pháp Kaiser Window: N=81 Fc1=1500 Fc2=2000 Hz. β= 5. Fs=8000Hz Thực hiện tương tự phần 1. Kết quả thu được như sau : Đáp ứng thu được khi thiết kế bằng Matlab: Đáp ứng quan sát sau khi đã nạp các giá trị cof trên CCS: Kiểm tra kết quả với tần số vào điều chỉnh từ dao động ký: 1 Khz 1.7 Khz 2.4 Khz Nhận xét: Với tần số ngõ vào là 1 Khz, 2.4 Khz thì ngõ ra bị triệt tiêu. Và tần số 1.7 Khz thuộc khoảng 1.5Khz ÷ 2 Khz nên tín hiệu không bị triệt tiêu. III - Thiết kế bộ lọc thông cao bằng phương pháp Kaiser Window: Các thông số cần thiết kế: N=81 . Fc =2200 β = 4. Fs=8000 Hz. Đáp ứng thu được trên Matlab: Đáp thu được ứng trên CCS: Kiểm tra đáp ứng với tín hiệu vào là sóng vuông 1 Khz : Nhận xét: Phổ thu được gần như là 1 vạch phổ ở 3Khz. Ta biết sóng vuông khi phân tích Fourier là tổng của các hài lẻ, và biên độ các hài này giảm dần theo chiều tăng của tần số. Với tín hiệu vào là 1Khz thì ta phân tích ra được các hài là 1Khz, 3Khz, 5Khz, Khi cho qua bộ lọc thông cao tần số cắt 2.2Khz thì ta chỉ cho qua các hài từ 3Khz trở lên qua, do biên độ các hài 5Khz, 7Khz, quá nhỏ nên ta hầu như không quan sát thấy trên Spectrum Analyzer. IV - Thiết kế bộ lọc FIR Multiband: Các thông số cần thiết kế: Tần số trung tâm lần lượt là 2500Hz, 3500Hz. Băng thông mỗi dải là 500Hz. Tần số lấy mẫu là 8000Hz Độ lên xuống (giả sử) là 100Hz Bảng chỉ số của bộ lọc: Dải Tần sồ (Hz) Tần số chuẩn hóa f/FN Biên độ 1 0 -- 2150 0 – 0.5375 0 2 2250 -- 2750 0.5625 – 0.6875 1 3 2850 – 3150 0.7125 – 0.7875 0 4 3250 – 3750 0.8125 – 0.9375 1 5 3850 -- 4000 0.9625 -- 1 0 Thực hiện M-file với code như sau : Chạy file này ta thu được 2 Figure là đáp ứng của bộ lọc như sau : Đáp ứng thu được trên CCS : Kiểm tra với tín hiệu ngõ vào là 800Hz : Dạng sóng : Phổ : Giải thích dạng phổ : Ta thấy có 2 vạch phổ là 800Hz, 2400Hz Sóng vuông 800Hz khi phân tích Fourier ta thu được các hài có tần số 800Hz, 2400Hz, 4000Hz, ,(2k+1)*800Hz. Khi cho qua bộ lọc Multiband ở trên (dựa theo đáp ứng của CCS) thì chỉ cho qua tần số 2400Hz, các tần số còn lại bị suy hao, nhưng do hài cơ bản là 800Hz có biên độ lớn nên tuy bị suy hao nhưng ta vẫn quan sát được. Thay đổi tần số ngõ vào (tín hiệu sin) : 0.5Khz : 1Khz : 2.3Khz : 3Khz: 3.3Khz Nhận xét: Tăng dần tần số tín hiệu vào, các tần số nằm ngoài 2 dãi thông bị suy hao đáng kể.
File đính kèm:
- bai_tap_xu_ly_so_bai_1_thuc_hien_cac_bo_loc_fir_tren_kit_c67.doc