bao cao xu ly so tin hieu(Đai học ĐàLạt)

80 203 0
bao cao xu ly so tin hieu(Đai học ĐàLạt)

Đ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

giúp các bạn sinh viện đại học đà lạt có thêm tài liệu tham khảo về chuyên ngành, chúc các bạn viết báo cáo thật tốt nhé MATLAB là một công cụ tính toán toán học.MATLAB có thể được sử dụng để tính toán, nó cũng cho phép chúng ta vẽ các biểu đồ, đồ thị theo nhiều cách khác nhau, giống như một chương trình phần mền, chúng ta có thể tạo, thực thi và lưu một dãy các lệnh để máy tính có thể chạy tự động. Cuối cùng MATLAB cũng có thể được coi như một ngôn ngữ lập trình, là một môi trường dùng để lập trình hay tính toán. MATLAB được thiết kế để làm việc với những tập dữ liệu đặc biệt chẳng hạn như ma trận, vector, hình ảnh.

THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên THỰC HÀNH XỬ LÝ SỐ TÍN HIỆU MATLAB cơng cụ tính tốn tốn học.MATLAB sử dụng để tính tốn, cho phép vẽ biểu đồ, đồ thị theo nhiều cách khác nhau, giống chương trình phần mền, tạo, thực thi lưu dãy lệnh để máy tính chạy tự động Cuối MATLAB coi ngơn ngữ lập trình, mơi trường dùng để lập trình hay tính tốn MATLAB thiết kế để làm việc với tập liệu đặc biệt chẳng hạn ma trận, vector, hình ảnh BÀI 1: LÀM QUEN VỚI MATLAB Mở hàm m-file thực yêu cầu sau: a tạo hai ma trận có chiều dài n*m ,n m tùy ý v= [2 4; 3; 6] % tạo ma trận v  v= u= [1 8; 4; 5] % tạo ma trận u  u= b cộng, trừ, nhân, chia hai ma trận vừa tạo (đưa kết quả) v+u % cộng hai ma trận  ans = 12 10 12 11 v-u % trừ hai ma trận  ans = 1 -4 -2 -1 Trang SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU -6 v.*u  ans = 21 35 v./u  ans = 2.0000 2.3333 GV: Dương Thị Thanh Hiên % nhân hai ma trận 32 12 30 % chia hai ma trận 1.5000 0.5000 0.7143 0.7500 1.0000 1.2000 c Trích đường chéo hai ma trận ban đầu, sau ghép lại thành ma trận g=diag(v) % trích đường chéo ma trận v  g= t=diag(u) % trích đường chéo ma trận u  t= h=[g t] % ma trận hai đường chéo  h= d, trích hai dịng ma trận v, cột ma trận thứ u sau ghép với ma trận v để tạo thành ma trận r=v(1:2,:) % trích hai dịng đầu ma trận v  r= e=u(2:3,:)  e= % trích hai dịng cuối ma trận u Trang SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU y=[r e]  y= i=v(:,3)  i= GV: Dương Thị Thanh Hiên % ghép ma trận trích dịng 3 % trích cột cuối ma trận v j=u(:,1) % trích cột đầu ma trận u  j= k=[i j v] % ghép hai ma trận trích cột  k= 4 3 6 Nhận xét: Các toán tử điều toán tử thông dụng dễ dàng thao tác Đồ họa: 2.1 Trong không gian 2D: Mở hàm m-file vẽ đồ thị hàm ( vẽ cửa sổ ) x= linspace(-10,10,1000); y1= -x.*sin(x); subplot(2,2,1) plot(x,y1,'b'); title('do thi y1') xlabel('x'); ylabel('y1'); grid; y2=-x.*cos(x)-sin(x); subplot(2,2,2) plot(x,y2,'g'); title('do thi y2'); xlabel('x'); ylabel('y2'); grid; y3=diff(y1./(x(2))-x(1)); subplot(2,2,3) plot(x(1:999),y3(1:999),'b'); Trang SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên title('do thi y3') xlabel('x'); ylabel('y3'); grid; y4=(y3-y2(1:999))./norm(y3); subplot(2,2,4) plot(x(1:999),y4(1:999),'black'); title('do thi y4') xlabel('x'); ylabel('y4'); grid;  kết thu chạy chương trình (hình 1.1) Trang SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên Nhận xét : Chương trình nhằm mơ cách sử dụng hàm vẽ đồ thị plot, hàm tạo nhãn đồ thị title, hàm tạo đường kẻ gird, hàm tạo nhiều cửa sổ cửa sổ subplot Qua chương trình mơ ta biết cách thức thực chương trình chức câu lệnh chương trình Để định màu kiểu đường nét vể ta dùng lệnh plot(x,y,’r ‘) 2.2 Trong không gian 3D: Mở hàm m-file vẽ đồ thị hàm % hàm x1= 0:0.05:pi; y1= 0:0.05:pi; [x1,y1]= meshgrid(x1,y1); z1=sin(x1).*sin(y1); mesh(z1) title('Ham f(x,y) = sinx siny, voi x,y = [0, π ]') xlabel('trucx') ylabel('trucy') zlabel('trucz') figure  Kết thu không gian 3D: Trang SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên % hàm x2= -3:0.05:3; y2= -3:0.05:3; [x2,y2]= meshgrid(x2,y2); z2= x2-x2.^3+y2.^2+1; mesh(z2) title('Ham f(x,y) = x- x3 + y2 +1, voi x,y= [-3,3]') xlabel('trucx') ylabel('trucy') zlabel('trucz') figure  Kết khơng gian 3D: Trang SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên % hàm x3= -8:0.05:8; y3= -8:0.05:8; [x3,y3]= meshgrid(x3,y3); z3= sin(sqrt(x3.^2+y3.^2))./sqrt((x3.^2+y3.^2).*x3); mesh(z3) legend(‘Bieu dien thi 3D') xlabel('trucx') ylabel('trucy') zlabel('trucz')  Kết không gian 3D: Trang SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên Nhận xét: - Từ chương trình ta thấy hình thức lệnh sử dụng hàm 3D giống với 2D, nhiên với việc sử dụng hàm plot3 hàm 3D mở rộng thêm cho trục tọa độ thứ Trong khơng gian 2D ta định màu kiểu đường nét vẻ khơng gian 3D màu sắc đồ thị thực lệnh mesh thay cho lệnh plot3 Nhận xét chung: -Với thực hành làm quen với phần mềm MATLAB Ta thực phép tính tốn ma trận, tạo ma trận Cách vẽ không gian 2D, 3D, mục đích để làm với tốn đơn giản trước sau đến tốn phức tạp Trang SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên BÀI 2:MƠ PHỎNG VÀ TẠO TÍN HIỆU Tóm tắt lý thuyết Với N ≥ N1 Dãy có chiều dài N = N2 – N1 + mẫu (2.1) Một tín hiệu thời gian rời rạc biểu diễn dãy số hay gọi dãy mẫu, ký hiệu {x[n]}; đối số số nguyên chạy từ −∞ đến +∞ , đặc trưng cho thời gian Giá trị dãy mẫu thời điểm n x[n] Vì thế, để tiện lợi, tín hiệu thời gian rời rạc thường ký hiệu x[n] • Tín hiệu thời gian rời rạc dãy mẫu có chiều dài vơ hạn hữu hạn Dãy có chiều dài hữu hạn dãy có giá trị khác không khoảng thời gian hữu hạn từ thời điểm N1 đến N2: N1 ≤ n ≤ N • Dãy thỏa mãn điều kiện: x%[ n ] = x%[ n + kN ] gọi dãy tuần hoàn với chu kỳ N số nguyên dương k số nguyên • Năng lượng dãy x[n] xác định công thức: ∞ ∑ x [ n] ε= • n =−∞ K ∑ x [ n] • 1 K ε K = lim x [ n] ∑ K →∞ K + K +1 n =− K (2.4) Cơng suất trung bình dãy tuần hồn x[n] với chu kỳ N cho N x%[ n ] ∑ N n =0 (2.5) Dãy xung đơn vị đựơc ký hiệu δ [ n ] xác định từ biểu 1, n = δ[ n] =  0, n ≠ (2.6) Dãy nhảy bậc đơn vị ký hiệu u[n] xác định từ biểu thức: 1, n ≥ u [ n] =  0, n < • • (2.3) Cơng suất trung bình dãy khơng tuần hồn x[n] xác cơng thức: Pav = • thức: n =− K định cơng thức: Pav = Klim →∞ • (2.2) Năng lượng dãy khoảng xác định từ −K ≤ n ≤ K xác định biểu thức: ε = • (2.7) Dãy sine phức biểu thị hệ thức: x [ n ] = A α e jω n +φ (2.8) Dãy sine thực có biên độ số biểu thị bằng: x [ n ] = A cos ( ω0 n + Φ ) (2.9) n Trang SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên Trong A, ω0 Φ số thực gọi biên độ, tần số góc pha ban đầu dãy hàm số sine x[n], f0 = ω0 tần số 2π Dãy sin phức sin thực dãy tuần hoàn với chu kỳ N nếu: ω0 N = 2πr Trong N số nguyên dương r số nguyên Giá trị N nhỏ thỏa mãn điều kiện chu kỳ dãy x[n] • Tích hai dãy liệu x[n] h[n] có chiều dài n thu dãy liệu y[n] có chiều dài N thực hệ thức: y[n] = x[n].h[n] (2.10) • Cộng hai dãy liệu x[n] với h[n] có chiều dài n thu liệu y[n] có chiều dài N thực hệ thức: y[n] = x[n] + h[n] (2.11) • Nhân dãy x[n] với số a thực hệ thức: y[n] = a.x[n] (2.12) • Ngược thời gian hay cịn gọi đổi chiều tín hiệu dãy có chiều dài vô hạn thực hệ thức: y[n] = x[-n] (2.13) • Làm trễ dãy x[n] có chiều dài vô hạn lượng M thu dãy y[n] có chiều dài vơ hạn thực nhờ biểu thức: y[n] = x[n - M] (2.14) Trong m số nguyên dương Đây phép dịch dãy x[n] phía phải trục thời gian M mẫu ký hiệu z –M Trường hợp M = gọi trễ đơn vị ký hiệu z – Nếu M lấy dấu âm gọi sớm, tương đương với việc dịch dãy phía trái M mẫu trục thời gian Thực hành: 2.1 Dãy xung đơn vị δ [ n ] a Tạo dãy xung đơn vị δ [ n ] có chiều dài N mẫu N=10; % Chieu dai mau x= [1,zeros(1,N-1)]; stem(x) title('tao day xung don vi co chieu dai N mau') Trang 10 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên zplane(num,den) zeros=[0.7 0.3]; poles=[0.2+j*.1 -0.4-j*.5]; zplane('zeros,poles') [num,den]=zp2tf(z,p,k) Kết quả: num = 0.9000 0.7000 -0.5000 0.3000 1.0000 den = 1.0000 0.3000 -0.5000 0.7000 0.9000 Hãy viết chương trình MATLAB để tính hiển thị biến đổi z điểm không: z1 = 0,3; z2 = 2,5; z3 = -0,2 + j0,4; z4 = -0,2 – j0,4 điểm cực: p1 = 0,5; p2 = -0,75; p3 = 0,6 + j0,7; p4 = 0,6 – j0,7 với k = 3,9 %Chuong Trinh z =[0.3;2.5;-0.2+j.*0.4;-0.2-j.*0.4]; p =[0.5;-0.75;0.6+j.*0.7;0.6-j.*0.7]; k =3.9; [num,den]=zp2tf(z,p,k) Kết quả: num = 3.9000 -9.3600 -0.6630 -1.0140 0.5850 den = 1.0 -0.9500 0.1750 0.6625 -0.3187 Nhận xét chung: Qua thực hành biến đổi Z nắm cách phân tích biến đổi Z, giản đồ điểm cực điểm không, biến đổi Z ngược Thông qua thực hành học giúp ta nắm rõ, sâu lí thuyết, từ kiểm chứng lại kết thực hành lí thuyết giống Trang 66 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên Bài 6: THIẾT KẾ CÁC BỘ LỌC Tóm tắt lý thuyết 1.1 Các tiêu thiết kế lọc Thiết kế chặt chẽ đòi hỏi lọc phải thỏa mãn yêu cầu đáp ứng tần số bao gồm: dải thơng, dải chắn, độ gợn sóng dải thơng, suy hao dải chắn, độ rộng vùng chuyển tiếp Những yêu cầu chi tiết là: chọn lọc có bậc tối thiểu, chọn dạng đáp ứng biên độ yêu cầu sử dụng lọc FIR Trong miền tần số, lọc đặc trưng đáp ứng tần số Dựa vào đáp ứng tần số lọc, tồn dải tần số chia thành ba vùng: dải thông, dải chắn dải chuyển tiếp Trong thực tế, đáp ứng biên độ dải thông số mà biến thiên khoảng (1 ±δ1 ) H0 với H0 đáp ứng biên độ trung bình δ1 gọi gợn sóng dải thơng Tương tự, đáp ứng biên độ dải chắn mà biến thiên khoảng từ đến δ2 H0 với δ2 độ gợn sóng dải chắn Bộ lọc có chất lượng tốt phải có dải chuyển tiếp hẹp độ gợn sóng nhỏ Hình 20 biểu diễn thơng số nói đáp ứng tần số: H( f ) 1+ δ1 1− δ1 : gợn sóng dải thơng : gợn sóng dải chắn : tần số tới hạn dải thông : tần số tới hạn dải chắn δ2 ωp ωs f Hình 22 Đáp ứng biên độ lọc số Trong MATLAB, tiêu độ gợn sóng dải chắn thay tiêu tương tự, suy hao dải chắn Với tiêu đáp ứng tần số chọn, phương pháp thiết kế phụ thuộc vào chất lượng mong muốn lọc Nếu cần chất lượng thấp, ta dùng thiết kế đơn giản; địi hỏi chất lượng cao phải dùng phương pháp phức tạp Tất hàm thiết kế lọc MATLAB sử dụng tần số chuẩn hóa (theo tần đơn vị tần số Nyquist, tức ½ tần số lấy mẫu), khơng cần phải cung cấp thêm thông số tần số lấy mẫu gọi hàm Muốn chuyển từ Trang 67 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên tần số chuẩn hóa sang tần số góc, ta nhân với π ; muốn chuyển sang tần số Herzt, ta nhân với ½ tần số lấy mẫu Các phương pháp thiết kế lọc số phân thành hai nhóm: thiết kế lọc IIR thiết kế lọc FIR 1.2 Thiết kế lọc IIR Ưu điểm: Bộ lọc IIR có khả thỏa mãn tiêu thiết kế với bậc lọc thấp so với lọc FIR tương ứng Nhược điểm: Bộ lọc IIR có tính chất pha phi tuyến Khắc phục: Do đặc điểm trình xử lý liệu MATLAB toàn chuỗi liệu vào xác định trước thực lọc, xây dựng lọc khơng nhân quả, có pha (thơng qua hàm filtfilt) để loại bỏ méo pha phi tuyến Các phương pháp thiết kế lọc IIR sử dụng MATLAB gồm có: • Phương pháp thiết kế cổ điển dựa nguyên mẫu analog Bao gồm lọc: Butterworth, Chebychev loại I, Chebychev loại II, Elliptic Bessel • Phương pháp thiết kế trực tiếp tìm lọc có đáp ứng biên độ xấp xỉ hàm mà người thiết kế mong muốn Đây phương pháp để xây dựng lọc thông dải nhiều băng • Phương pháp mơ hình thơng số • Phương pháp thiết kế Butterworth tổng quát Sử dụng phương pháp biến đổi song tuyến tính a Bộ lọc Butterworth: dùng hàm butter: >> [b, a] = butter (n, Wn, form) >> [z, p, k] = butter (n, Wn, form) >> [A, B, C, D] = butter (n, Wn, form) Trong đó: Wn vector gồm hai phần tử xác định tần số cắt (với lọc thông thấp, thông cao, Wn trở thành vô hướng) Wn chuẩn hố theo ½ tần số lấy mẫu form chuỗi xác định dạng lọc: ‘low’ (bộ lọc thông thấp), ‘high’ (thông cao), ‘stop’ (chắn dải) Nếu Wn có hai phần tử khơng có thơng số form, hàm tạo lọc thông dải Để tạo lọc tương tự, ta thêm vào chuỗi‘s’ vào danh sách thông số MATLAB cung cấp hàm buttord để ước lượng bậc lọc tối thiểu thỏa mãn yêu cầu thiết kế >> [N, Wn] = buttord (Wp, Ws, Rp, Rs) Các thơng số nhập bao gồm tần số ngưỡng dải thông dải chắn Wp Ws, giá trị mong muốn gợn sóng dải thơng tối đa suy hao tối thiểu dải chắn (Rp, Rs) Hàm trả bậc tối thiểu lọc với vector Wn để cung cấp cho hàm butter Trang 68 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên b Bộ lọc Chebychev loại I: dùng hàm cheby1 >> [b, a] = cheby1 (n, Rp, Wn, form) >> [z, p, k] = cheby2 (n, Rp,Wn, form) >> [A, B, C, D] = cheby1 (n, Rp, Wn, form) Các thông số nhập tương tự hàm butter, thêm vào thơng số độ gợn sóng dải thơng Rp (tính dB) Để ước lượng bậc lọc, dùng hàm cheb1ord c Bộ lọc Chebychev loại II: dùng hàm cheby2: >> [b, a] = cheby2 (n,Rs, Wn, form) >> [z, p, k] = cheby2 (n, Rs, Wn, form) >> [A, B, C, D] = cheby2 (n, Rs, Wn, form) Trong Rs độ gợn sóng dải chắn (tính dB) Hàm cheb2ord cho phép ước lượng bậc lọc d Bộ lọc elliptic: dùng hàm ellip: >> [b, a] = ellip (n, Rp, Wn, form) >> [z, p, k] = ellip (n,Rp, Wn, form) >> [A, B, C, D] = ellip (n, Rp, Rs, Wn, form) Hàm ellipord cho phép ước lượng bậc lọc e Bộ lọc Bessel: dùng hàm besself ( thiết kế lọc tương tự) >> [b, a] = besslf (n, Wn, form) >> [z, p, k] = besself (n, Wn, form) >> [A, B, C, D] = besself (n, Wn, form) Khơng có hàm ước lượng bậc lọc 1.3 Thiết kế lọc FIR Các lọc FIR lọc có đáp ứng xung hữu hạn lọc toàn zero So với lọc IIR, lọc FIR có ưu điểm bật sau: • Pha tuyến tính • Ln ln ổn định • Phương pháp thiết kế nói chung tuyến tính • Có thể thực cách hiệu phần cứng • Đáp ứng độ tồn thời gian hữu hạn Tuy nhiên, nhược điểm lớn lọc FIR so với lọc IIR bậc lọc FIR phải lớn nhiều so với lọc IIR với tiêu chất lượng độ trễ lọc FIR cao Thực hành 2.1 Thiết kế lọc IIR 2.1.1 Thiết kế mạch lọc elliptic butterworth thông thấp với qui định sau: Tần số mép dải thông fp = 800hz, mép dải chặn fs = 1kHz, độ mấp mô dải thông 0,5dB, độ suy giảm cực tiểu dải chặn 40dB tần số lấy mẫu F = 4kHz Chương trình: Trang 69 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên % Thiet ke bo loc elliptic [N,Wn] = ellipord(0.4,0.5,0.5,40); [b,a] = ellip(N,0.5,40,Wn); [h,omega] = freqz(b,a,256); subplot(1,2,1); plot(omega/pi,20*log10(abs(h)));grid; xlabel('omega/pi'); ylabel('Bien do(dB)'); title('Mach loc IIR Elliptic'); % Thiet ke mach loc [N,Wn] = buttord(0.4,0.5,0.5,40); [b,a] = butter(N,Wn); [h,omega] = freqz(b,a,256); subplot(1,2,2); plot(omega/pi,20*log10(abs(h)));grid; xlabel('omega/pi'); ylabel('Bien do(dB)'); title('Mach loc IIR butterworth'); mach loc IIR Elliptic mach loc IIR butterworth 20 50 0 -50 -20 bien (dB) bien (dB) -100 -40 -60 -80 -150 -200 -250 -100 -300 -120 -140 -350 0.5 omega/pi -400 0.5 omega/pi Nhận xét: Muốn thiết kế lọc số ta phải thiết kế từ lọc tương tự, từ hai hình cho thấy lọc butterworth phẳng dải thơng chặn dải, có độ rộng chuyển tiếp lớn, cịn lọc elliptic nhấp nhô dải chặn phẳng dải thông, độ rộng chuyển tiếp ngắn lọc butterword Trang 70 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên 2.1.2 Thiết kế lọc thông dải sử dụng phép biến đổi song tuyến tính để thiết kế lọc số Chebychev loại I, bậc 10, dải thông 0.1 – 0.5Hz, tần số lấy mẫu 2Hz Các tần số cắt ω1 = π ω2 = π Vẽ đáp ứng biên độ lọc Chương trình [z, p, k] = cheb1ap(5,3); [A, B, C, D] = zp2ss(z, p, k); % Bộ lọc Chebychev loại I bậc 5, Rs = % Chuyển sang dạng không gian trạng thái fs = 2; % Tần số lấy mẫu (Hz) u1 = 2*fs*tan(0.1*(2*pi/fs)/2); % Tần số cắt thấp (rad/s) u2 = 2*fs*tan(0.5*(2*pi/fs)/2); % Tần số cắt cao (rad/s) Bw = u2 - u1; % Băng thông Wo = sqrt(u1*u2); % Tần số trung tâm [At, Bt, Ct, Dt] = lp2bp(A, B, C, D, Wo, Bw); [Ad, Bd, Cd, Dd] = bilinear(At, Bt, Ct, Dt, 2,0.1); [bz, az] = ss2tf (Ad, Bd, Cd, Dd); % Chuyển mơ hình hàm truyền đạt [h, f] = freqz (bz, az, 256, 2); semilogy (f, abs(h)), grid xlabel(‘Frequency(Hz)’); title (‘Dap ung bien do’); % Tính đáp ứng tần số % Vẽ đáp ứng biên độ dap ung bien 10 -2 10 -4 10 -6 10 -8 10 -10 10 -12 10 -14 10 0.1 0.2 0.3 0.4 0.5 0.6 Frequency(Hz) 2.2 Thiết kế lọc FIR Trang 71 SVTT: LÊ ÍCH THỊNH 0.7 0.8 0.9 THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên 2.2.1 Thiết kế lọc FIR phương pháp cửa sổ Trong mạch lọc FIR cắt xén chuỗi Fourier xuất dao động Gibb không mong muốn dải thông dải chặn Để hạn chế tượng này, người ta sử dụng lớp hàm số để biến điệu hệ số đáp ứng xung mạch lọc (tức hệ số chuỗi Fourier) Các hàm trọng số hạn chế thời gian hàm cửa sổ Bởi cắt xén tương đương với việc nhân dãy với  1 a n = hàm cửa sổ vng góc: R [ ]  0 N −1 (6.1) ngoai khoang tren n ≤ Khi thu được: h[n] = hd[n]aR[n] (6.2) Vì phép nhân lĩnh vực thời gian tương ứng với nhân chập lĩnh vực tần số, nên tiêu chuẩn thiết kế mạch lọc FIR tìm cửa sổ hẹp mà biến đổi Fourier có mức cánh bên nhỏ so với đỉnh cánh Trong trường hợp tổng quát, kỹ thuật thiết kế mạch lọc số FIR dùng hàm cửa sổ nhân đáp ứng xung mong muốn với hàm cửa sổ thích hợp: h[n] = hd[n].a[n] (6.3) Hộp cơng cụ MATLAB có hàm cửa sổ  w = blackman(L)  w = ham g(L)  (6.4)  w = hannning(L)  w = chebwin(L, R ) s   w = kaiser(L, beta) Các hàm cửa sổ phát vector w hệ số cửa sổ có chiều dài lẻ L Thơng số beta hàm cửa sổ Kaiser thay đổi Trong mục sử dụng hàm cửa sổ để thiết kế loại mạch lọc FIR theo qui định cho trước Trong phần ta xét việc thiết kế lọc FIR phương pháp cửa sổ Kaiser (cửa sổ điều chỉnh được) δ1 , δ2 : Lần lượt độ mấp mô dải thông dải chặn ∆ω : Khoảng cách mềin chặn miền thông (độ rộng miền chuyển tiếp) As: Độ suy giảm miền chặn As = - 20log δ N: Chiều dài cửa sổ xác định công thức: β : Chỉ số hàm Bessel N −1 = As − 7,95 As − 7,95 = ∆ω 2, 285∆ω 7,81 π 0,1102 ( As − 8, ) voi As > 50   0,4 β = 0,5842 ( As − 21) + 0, 07886 ( As − 21) voi 21 ≤ As ≤ 50  voi As < 21  Trang 72 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên    I β − 4* ( n − α ) / α   sin ( wc ( n − α ) )  h[n] =  I0 ( β )  π( n − α)   ( )    ≤ n ≤ N − noi khac Thiết kế lọc FIR cửa sổ Kaiser với tiêu: Tần số cắt dải thông wp = 0,2*pi, tần số cắt dải chặn ws = 0,38pi, độ suy giảm dải chặn As = 50, bậc lọc N = 60, 0.4 β = 0.5842 ( 50 − 21) + 0.07886 ( 50 − 21) = , số mẫu trễ α = 30 , tín hiệu lối vào x = sin(60 π t) + sin(900 π t)  n − 30    I0  4.5335 − 4*  ÷  30   sin(0.1π ( n − 30 ) )   h [ n] = π ( n − 30 ) I0 ( 4.5335 )  n − 30    I0  4.5335 − 4*  ÷  30   h[n] =  0.1sin c ( 0.1π ( n − 30 ) ) I0 ( 4.5335 ) Trong MATLAB hàm Bessel loại gọi BESSELI Chương trình wp = 0.2*pi; ws = 0.3*pi; As = 50; bw = ws - wp; N = ceil((As - 7.95)/(2.285*bw))+1; n = 0:(N-1); beta = 0.5842*(50-21)^0.4 + 0.07886*(50-21); wc = (ws+wp)/2; h = (wc/pi)*sinc(wc*(n - N/2)).*besseli(0,beta*sqrt(1-4*((n-N/2)/ (N/2)).^2))/besseli(0,beta); stem(n,h) title('Dap ung xung don vi cua bo loc FIR cua so Kaiser') pause % Nhan mot phim bat ky de tiep tuc b = h; a = [1]; freqz(b,a,500,1000) title('Dap ung tan so cua bo loc FIR cua so Kaiser') pause t = 0:0.001:0.1; x = sin(2*pi*30*t) + sin(2*pi*450*t); y = filter(b,a,x); Trang 73 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên subplot(2,1,1); plot(t,x); title('Tin hieu gom hai tan so: 30Hz va 450Hz'); subplot(2,1,2) plot(t,y) title('Tin hieu da loc') xlabel('Thoi gian (s)')  Chạy chương trình cho hình dap ung xung don vi cua bo loc FIRcua so Kaiser 0.3 0.25 0.2 0.15 0.1 0.05 -0.05 10 20 30 40 50 2.2.2 Thiết kế lọc FIR nhiều dải tần a Thiết kế lọc FIR bậc 129 với mô tả sau: Dải tần từ – 0,3: biên độ 0, giới hạn 0,005, giới hạn – 0,005 Dải tần từ 0,3 – 0,5: biên độ 0,5, giới hạn 0,51, giới hạn – 0,49 Dải tần từ 0,5 – 0,7: biên độ 0, giới hạn 0,03, giới hạn – 0,03 Dải tần từ 0,7 – 0,9: biên độ 1, giới hạn 1,02, giới hạn – 0,98 Dải tần từ 0,9 – 1: biên độ 0, giới hạn 0,05, giới hạn – 0,05 Chương trình n = 129; % Bậc lọc f = [0 0.3 0.5 0.7 0.9 1]; % Các tần số ngưỡng a = [0 0.5 0]; % Biên độ mong muốn up = [0.005 0.51 0.03 1.02 0.05]; % Giới hạn biên độ lo = [-0.005 0.49 -0.03 0.98 -0.05]; % Giới hạn biên độ Trang 74 SVTT: LÊ ÍCH THỊNH 60 THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên b = fricls (n, f, a, up, lo); % Các hệ số lọc [hh, ff] = freqz(b, 1, 512, 2); % Vẽ đáp ứng tần số plot (ff, abs(hh), ‘b-‘); grid xlabel (‘Tan so chuan hoa’); ylabel (‘Bien do’); Chạy chương trình cho biết kết chạy chương trình b Thiết kế lọc FIR có đáp ứng tần số tùy chọn Trong gọi hàm cfirpm ta cung cấp tên hàm ‘multiband’ thông số kèm Thiết kế lọc FIR bậc 38 với mơ tả sau: Dải tần từ - ÷ - 0,5 : biên độ giảm từ xuống ([5 1]) Dải tần từ - 0,4 ÷ 0,3 : biên độ ([2 2]), trọng số 10 Dải tần từ 0,4 ÷ 0,8 : biên độ giảm từ xuống 1([2 1]), trọng số Chương trình b = cfirpm (38,[-1 -0.5 -0.4 0.3 0.4 0.8],{‘multiband’,[5 2 1]},[1 10 5]); [hh, ff] = freqz (b, 1, 512, 2, ‘whole’); plot (ff, abs(hh), ‘b-’); grid xlabel (‘Tan so chuan hoa’); ylabel (‘Bien do’);  Chạy chương trình cho hình 4.5 bien 3.5 2.5 1.5 0.2 0.4 0.6 0.8 1.2 tan so chuan hoa 1.4 1.6 1.8 Nhận xét: biên độ tần số chuẩn hóa 1,1 =>2 tần số chuẩn hóa 0.4 => 0.5, biên độ tần số chuẩn hóa 0.3 => 0.4, biên độ => tần số chuẩn hóa 0.4 => 0.8 Trang 75 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên Áp dụng: 3.1 Thiết kế lọc IIR Thiết kế lọc thông dải dùng hàm cheby2 với yêu cầu sau: - Giới hạn dải chắn dưới: 0,3 π - Giới hạn dải chắn trên: 0,6 π - Suy hao dải chắn: 50dB - Các giới hạn dải thông: 0,4 π 0,5 π - Gợn sóng dải thơng: 0,5dB % chuong trinh Wp=[0.4 0.5]; Ws=[0.3 0.6]; Rp=0.5; Rs=50; [N,Wn]=cheb2ord(Wp,Ws,Rp,Rs); [b,a]=cheby2(N,Rs,Wn); [z,p,k]=cheby2(N,Rs,Wn); [A,B,C,D]=cheby2(N,Rs,Wn); fs=2; u1=2*fs*tan(0.4*(2*pi/fs)/2); u2=2*fs*tan(0.5*(2*pi/fs)/2); Bw=u2-u1; Wo=sqrt(u1*u2); [At,Bt,Ct,Dt]=lp2bp(A,B,C,D,Wo,Bw); [Ad,Bd,Cd,Dd]=bilinear(At,Bt,Ct,Dt,2,0.1); [bz,az]=ss2tf(Ad,Bd,Cd,Dd); [h,f]=freqz(bz,az,256,2); semilogy(f,abs(h)); grid; xlabel('frequency(Hz)'); title('dap ung bien do'); Trang 76 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên  Chạy chương trình cho hình dap ung bien 10 10 10 -1 10 -2 10 -3 10 0.1 0.2 0.3 0.4 0.5 0.6 frequency(Hz) 0.7 0.8 0.9 3.2 Thiết kế lọc FIR a Bằng phương pháp cửa sổ Thiết kế lọc FIR số, thông thấp, pha tuyến tính sử dụng phương pháp cửa sổ Kaiser với yêu cầu thiết kế: tần số lấy mẫu 10kHz, tần số giới hạn giải thông 1,5khz, tần số giới hạn giải chắn 2kHz, suy hao dải thông 0,1dB, suy hao dải chắn 80db Tính bậc lọc (Tất thực MATLAB) %chuong trinh wp=0.2*pi; ws=0.3*pi; As=50; bw=ws-wp; N=ceil((As-7.95)/(2.285*bw))+1; n=0:(N-1); beta=0.5842*(50-21)^0.4+0.07886*(50-21); wc=(ws+wp)/2; h=(wc/pi)*sinc(wc*(n-N/2)).*besseli(0,beta*sqrt(1-4*((n-N/2)/ (N/2)).^2))/besseli(0,beta); stem(n,h) title('dap ung xung don vi cua bo loc FIR cua so Kaiser') pause % nhan mot phim bat ky de tiep tuc b=h; a=[1]; freqz(b,a,500,1000) Trang 77 SVTT: LÊ ÍCH THỊNH THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên title('dap ung tan so cua bo loc FIR cua so Kaiser') pause t=0:0.001:0.1; x=sin(2*pi*30*t)+sin(2*pi*450*t); y=filter(b,a,x); subplot(2,1,1); plot(t,x); title('tin hieu gam hai tan so:30Hz va 450Hz'); subplot(2,1,2) plot(t,y); title('tin hieu da loc') xlabel('thoi gian (s)')  Chạy chương trình cho hình dap ung bien 10 10 10 -1 10 -2 10 -3 10 0.1 0.2 0.3 0.4 0.5 0.6 frequency(Hz) 0.7 0.8 0.9 tin hieu gam hai tan so:35Hz va 500Hz 0.5 -0.5 -1 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 dap ung xung don vi cua bo loc FIR cua so Kaiser 0.6 0.4 Trang 78 0.2 SVTT: LÊ ÍCH THỊNH -0.2 20 40 60 80 100 120 P h a s e(d e g re e s ) M a g n itu d e(d B ) THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên d a pu n gta ns oc u ab olo cF IRc u asoK a is e r -5 -1 0 0 0 0 F re q u e n c y(H z ) 0 5 0 0 0 0 F re q u e n c y(H z ) 0 5 0 0 0 -2 0 -4 0 -6 0 -8 0 0 tinhieugamhai tanso:30H zv a450H z -1 -2 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 dapungxungdonv i cuaboloc FIRcuasoK aise r 0.3 0.2 0.1 -0.1 10 20 30 Trang 79 SVTT: LÊ ÍCH THỊNH 40 50 60 THỰC TẬP XỬ LÝ SỐ TÍN HIỆU GV: Dương Thị Thanh Hiên d a pu n gxu n gd o nv i cu ab olo cF IRcu asoK a ise r 5 0 -0 0 b FIR nhiều dải tần Thiết kế lọc FIR có đáp ứng tần số mô tả sau: - Dải tần từ -1 ÷ - 0,8: biên độ giảm từ xuống 2, trọng số - Dải tần từ - 0,7 ÷ 0,5: biên độ 2, trọng số - Dải tần từ - 0,4 ÷ - 0,1: biên độ giảm từ xuống 1, trọng số - Dải tần từ 0,1 ÷ 0,4: biên độ tăng từ lên 2, trọng số - Dải tần từ 0,5 ÷ 0,7: biên độ 2, trọng số - Dải tần từ 0,8 ÷ 1: biên độ tăng từ lên 5, trọng số %thiet ke bo loc FIR co dap ung tan so chon % chuong trinh b=cfirpm(45,[-1 -0.8 -0.7 -0.5 -0.4 -0.1 0.1 0.4 0.5 0.7 0.8 1],{'multiband',[5 2 2 1 2 2 5]},[1 1 1]); [hh,ff]=freqz(b,1,512,2,'whole'); plot(ff,abs(hh),'b-');grid xlabel('tan so chuan hoa'); ylabel('bien do'); Trang 80 SVTT: LÊ ÍCH THỊNH ... cho phép vẽ đồ thị n = k δ[ n ] = n ≠ k -Kết thu dãy xung đơn vị bị trễ mẫu so với dãy xung đơn vị ban đầu.Vậy kết thu hợp với lí thuyết ta học c Tạo dãy nhảy bậc đơn vị u[n] dài N mẫu: N=6; u=[ones(1,N)];... grid; title(''Day tin hieu sin''); xlabel(''Chi so thoi gian n''); ylabel(''Bien do'');  Chạy chương trình cho hình 2.7 day tin hieu sin 1.5 bien 0.5 -0.5 -1 -1.5 -2 10 15 20 25 chi so thoi gian n 30... stem(n,x); axis([0 40 -2 2]); grid; title(''Day tin hieu sin tan so 0.9''); xlabel(''Chi so thoi gian n''); ylabel(''Bien do''); figure n= 0:40; f= 1.1; % Tan so 1.1 phase=0; A= 1.5; arg= 2.*pi.*f.*n-phase;

Ngày đăng: 07/05/2018, 19:49

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan