Tài liệu Thí nghiệm xử lý tín hiệu số - Bài 3: Thực hiện các bộ lọc thích nghi trên KIT C6713 DSK
Tín hiệu mong muốn d, đã bị sửa đổi bởi nhiễu cộng n, không tương quan. Nhiễu n’ có thể đến từ vài nguồn giống như n nhưng đã bị thay đổi bởi điều kiện môi trường. Ngỏ ra y được thích ứng với nhiễu n, khi điều này xảy ra, tín hiệu sai số e tiến đến gần tín hiệu mong muốn d, toàn bộ ngỏ ra là tín hiệu sai số e này.
- Hai kiểu lọc chủ yếu chung nhất được dùng cho khử nhiễu là các bộ lọc FIR và các bộ lọc IIR.
BÀI 3 : THỰC HIỆN CÁC BỘ LỌC THÍCH NGHI TRÊN KIT C6713 DSK I – Bộ lọc thích nghi dùng để lọc nhiễu hình sine: Cơ sở lý thuyết: 2 Cấu trúc bộ lọc thích nghi cho khử nhiễu : 1 Tín hiệu mong muốn d, đã bị sửa đổi bởi nhiễu cộng n, không tương quan. Nhiễu n’ có thể đến từ vài nguồn giống như n nhưng đã bị thay đổi bởi điều kiện môi trường. Ngỏ ra y được thích ứng với nhiễu n, khi điều này xảy ra, tín hiệu sai số e tiến đến gần tín hiệu mong muốn d, toàn bộ ngỏ ra là tín hiệu sai số e này. Hai kiểu lọc chủ yếu chung nhất được dùng cho khử nhiễu là các bộ lọc FIR và các bộ lọc IIR. Đối với các bộ lọc FIR: + Có độ ổn định cao. Nó cũng tốt cho việc loại bỏ các tần số nào đó. Đây là ưu điểm để nó được chọn trước cho các ứng dụng để thiết kế các loại khác nhau của các hệ thống tuyến tính bất biến theo thời gian. + Bất lợi chính của kiểu lọc này là đáp ứng xung bị giới hạn trong thời gian bằng các số nhịp hệ số tác động trong bộ lọc. Đối với các bộ lọc IIR: + Ưu điểm chính của các bộ lọc IIR là chọn lựa rất tốt cho lọc các đỉnh tần số hẹp, chúng có cả các điểm cực và các điểm 0 ở trong hàm truyền của nó. Vì vậy đáp ứng xung của nó là vô hạn, nó không phụ thuộc nhiều vào các thông số bộ lọc cho sự thực hiện kéo dài đáp ứng xung. + Bất lợi chính của các kiểu lọc này là tính không ổn định của chúng trong ứng dụng. Vì chúng có các điểm cực ở trong hàm truyền của chúng. Thực hiện bộ lọc FIR thích nghi triệt nhiễu Yêu cầu: Tín hiệu mong muốn d: cosine tần số 2000Hz. Nhiễu xâm lấn n : cosine tần số 125Hz. Tương quan với nhiễu n’ : sine tần số 125Hz. Tạo các giá trị dữ liệu cho tín hiệu: cosine(2000Hz), cosine(125Hz) + cosine(312Hz) và sine(312Hz). Mở file Adaptnoise.m (trong C:\Program Files\CCStudio_v3.1\MyProjects\Adaptnoise bằng MATLAB) chỉnh sửa như sau : %Adaptnoise.M Generates: dplusn.h (c125+c2000), refnoise.h sin(125),and cos2000.h for i=1:128 desired(i) = round(100*cos(2*pi*(i-1)*2000/8000)); %cos(2000) addnoise(i) = round(100*cos(2*pi*(i-1)*125/8000)); %cos(125) refnoise(i) = round(100*sin(2*pi*(i-1)*125/8000)); %sin(125) end dplusn = addnoise + desired; %cos(125)+cos(2000) fid=fopen('dplusn.h','w'); %desired + noise fprintf(fid,'short dplusn[128]={'); fprintf(fid,'%d, ' ,dplusn(1:127)); fprintf(fid,'%d' ,dplusn(128)); fprintf(fid,'};\n'); fclose(fid); fid=fopen('refnoise.h','w'); %reference noise fprintf(fid,'short refnoise[128]={'); fprintf(fid,'%d, ' ,refnoise(1:127)); fprintf(fid,'%d' ,refnoise(128)); fprintf(fid,'};\n'); fclose(fid); fid=fopen('cos2000.h','w'); %desired cos(2000) fprintf(fid,'short cos2000[128]={'); fprintf(fid,'%d, ' ,desired(1:127)); fprintf(fid,'%d' ,desired(128)); fprintf(fid,'};\n'); fclose(fid); Chạy chương trình (nhấn F5), sẽ xuất hiện 3 tập tin trong thư mục làm việc hiện hành của MATLAB: dplusn.h: chứa một bảng 128 – điểm để tạo tín hiệu cosine tần số 2000Hz cộng với nhiễu cosine tần số 125Hz. refnoise.h: chứa một bảng 128 – điểm để tạo tín hiệu cosine tham khảo có tần số 125Hz. cos2000.h: chứa một bảng 128 – điểm để tạo tín hiệu cosine mong muốn có tần số 2000Hz Mở CCS, connect với KIT và mở project Adaptnoise.pjt. Biên dịch và chạy chương trình. Mở file out_type.gel (File à Load GEL). Sau đó chọn GELàOutputTypeà Output-signal. Quan sát trên DSP_Tool tương ứng với vị trí thanh trượt (1&2) 1 2 : Tín hiệu sai lệch (e). : Tín hiệu mong muốn + nhiễu (d+n). Tín hiệu mong muốn + nhiễu: Tín hiệu sai lệch: Nhận xét: Ở vị trí 2 tín hiệu 2Khz lẫn nhiễu 125Hz nhấp nhô, sau khi cho qua bộ lọc thích nghi khử nhiễu, quan sát ở vị trí 1 thì nhiễu 125Hz không còn nữa. Kết quả thực hiện đúng với yêu cầu. II – Bộ lọc thích nghi dùng để nhận dạng một bộ lọc chưa biết: Cơ sở lý thuyết: Cấu trúc thích nghi được dùng cho ứng dụng nhận dạng hay mô hình mẫu: 2 1 Cùng một tín hiệu vào, được đưa đến hai hệ thống song song là hệ thống chưa xác định và bộ lọc thích nghi. Tín hiệu sai số e là sự khác nhau giữa đáp ứng của hệ thống chưa biết d và đáp ứng của bộ lọc thích nghi y. Tín hiệu sai số này được phản hồi về bộ lọc thích nghi và được dùng để cập nhật các hệ số cho bộ lọc cho đến khi toàn bộ ngỏ ra y = d. Khi điều này xảy ra, hoạt động xử lý thích nghi được kết thúc, và e tiến gần đến 0. Trong sự kết hợp này, bộ lọc thích nghi làm mẫu cho hệ thống chưa xác định. Sử dụng bộ lọc FIR thích nghi để nhận dạng một bộ lọc FIR cố định chưa biết: Hệ thống chưa biết là bộ lọc FIR chắn dải 55 hệ số(tần số trung tâm 2Khz) Mở CCS, connect với KIT và mở project AdapIDFIR.pjt. Sửa tập tin AdapIDFIR.c (trong nhánh Source) như ở phần khoanh tròn sau: Với tập tin bs55.cof có nội dung như sau: //bs55.cof Coefficients file for bandstop FIR filter centered @ Fs/4 #define N 55 //number of coefficients float h[N] = {-1.7619E-017,-7.0567E-003,-2.2150E-018, 1.0962E-002,-4.0310E-017, -1.3946E-002,-7.1787E-018, 1.4588E-002,-3.9928E-017,-1.1474E-002, -5.9881E-018, 3.5159E-003, 6.6174E-018, 9.7476E-003, 1.7919E-017, -2.7932E-002, 9.4329E-017, 4.9740E-002,-3.3834E-017,-7.3066E-002, 3.6228E-017, 9.5284E-002,-3.2194E-017,-1.1365E-001, 2.2165E-017, 1.2576E-001,-7.8980E-018, 8.6999E-001,-7.8980E-018, 1.2576E-001, 2.2165E-017,-1.1365E-001,-3.2194E-017, 9.5284E-002, 3.6228E-017, -7.3066E-002,-3.3834E-017, 4.9740E-002, 9.4329E-017,-2.7932E-002, 1.7919E-017, 9.7476E-003, 6.6174E-018, 3.5159E-003,-5.9881E-018, -1.1474E-002,-3.9928E-017, 1.4588E-002,-7.1787E-018,-1.3946E-002, -4.0310E-017, 1.0962E-002,-2.2150E-018,-7.0567E-003,-1.7619E-017}; Biên dịch và chạy chương trình. Mở file AdaptIDFIR.gel (File à Load GEL). Sau đó chọn GELàOutputTypeà Output-signal . 1 2 Quan sát trên DSP_Tool tương ứng với vị trí thanh trượt (1&2) : Tín hiệu đầu ra bộ lọc thích nghi. : Tín hiệu ngõ ra bộ lọc chưa biết. Đầu ra của bộ lọc thích nghi: Đầu ra của bộ lọc cố định chưa biết: Nhận xét: Bộ lọc thích nghi có phổ tần số giống của bộ lọc chưa biết chắn dải với tần số trung tâm 2Khz, và biên độ qua bộ lọc thích nghi bị suy giảm một phần. Bộ lọc thích nghi đã mô hình hóa thành công bộ lọc FIR chưa biết. Hệ thống chưa biết là bộ lọc FIR thông thấp 55 hệ số Halt chương trình lại. Sửa tập tin AdapIDFIR.c (trong nhánh Source) như ở phần khoanh tròn sau: Với tập tin lp55.cof có nội dung như sau: //LP55.COF Coefficients for FIR lowpass filter. Cutoff frequency Fs/4 = 2 kHz #define N 55 float h[N]={3.6353E-003,-1.1901E-003,-4.5219E-003, 2.6882E-003, 5.1775E-003, -4.7252E-003,-5.4097E-003, 7.2940E-003, 4.9986E-003,-1.0343E-002, -3.6979E-003, 1.3778E-002, 1.2276E-003,-1.7460E-002, 2.7529E-003, 2.1222E-002,-8.7185E-003,-2.4870E-002, 1.7465E-002, 2.8205E-002, -3.0642E-002,-3.1035E-002, 5.2556E-002, 3.3190E-002,-9.9226E-002, -3.4540E-002, 3.1598E-001, 5.3500E-001, 3.1598E-001,-3.4540E-002, -9.9226E-002, 3.3190E-002, 5.2556E-002,-3.1035E-002,-3.0642E-002, 2.8205E-002, 1.7465E-002,-2.4870E-002,-8.7185E-003, 2.1222E-002, 2.7529E-003,-1.7460E-002, 1.2276E-003, 1.3778E-002,-3.6979E-003, -1.0343E-002, 4.9986E-003, 7.2940E-003,-5.4097E-003,-4.7252E-003, 5.1775E-003, 2.6882E-003,-4.5219E-003,-1.1901E-003, 3.6353E-003}; Biên dịch và chạy lại chương trình. Mở file AdaptIDFIR.gel (File à Load GEL). Sau đó chọn GELàOutputTypeà Output-signal . Quan sát trên DSP_Tool tương ứng với vị trí thanh trượt (1&2) Đầu ra của bộ lọc thích nghi: Đầu ra của bộ lọc cố định chưa biết: Nhận xét: Bộ lọc thích nghi có phổ tần số giống của bộ lọc chưa biết thông thấp với tần số cắt 2Khz, và biên độ qua bộ lọc thích nghi bị suy giảm một phần. Bộ lọc thích nghi đã mô hình hóa thành công bộ lọc FIR chưa biết. Sử dụng bộ lọc FIR thích nghi để nhận dạng một hệ thống chưa biết, biết ban đầu bộ lọc thích nghi được khởi tạo là một bộ lọc FIR thống dải: Trong thí nghiệm này, ban đầu, các hệ số của bộ lọc FIR thích nghi được khởi tạo bằng với các hệ số của một bộ lọc FIR thông dải có 55 hệ số, tần số trung tâm 3Khz chứa trong tập tin bp3000.cof. Bộ lọc cần nhận dạng ở đây là một bộ lọc FIR thông dải 55 hệ số với tần số trung tâm là 2KHz. Chúng ta sẽ thấy bộ lọc thích nghi sẽ thay đổi dần từ một bộ lọc thông dải tần số trung tâm 3KHz thành một bộ lọc thông dải tần số trung tâm 2KHz. Mở CCS, connect với KIT và mở project AdapIDFIRW.pjt. Sửa tập tin AdapIDFIRW.c (trong nhánh Source) như ở phần khoanh tròn sau: Biên dịch và chạy chương trình. Mở file AdaptIDFIR.gel (File à Load GEL). Sau đó chọn GELàOutputTypeà Output-signal . Quan sát trên DSP_Tool để thấy quá trình thích nghi của bộ lọc: Bộ lọc cần nhận dạng: (vị trí 2) Sau đây là 5 hình quan sát sự thích nghi dần dần của bộ lọc (vị trí 1): Nhận xét: Từ một bộ lọc thông dải tần số trung tâm 3Khz, sau 1 thời gian, bộ lọc dần chuyển thành bộ lọc thông thấp tần số cắt 2Khz.
File đính kèm:
- tai_lieu_thi_nghiem_xu_ly_tin_hieu_so_bai_3_thuc_hien_cac_bo.doc