Bài giảng Xử Lý tín hiệu số nâng cao tuần 2

8 103 0
Bài giảng Xử Lý tín hiệu số nâng cao tuần 2

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

Thông tin tài liệu

Xử lý tín hiệu số là lĩnh vực hết sức quan trọng trong kỹ thuật điện tử hiện đại, cho phép nâng cao chất lượng thông tin, tách thông tin cần thiết từ hỗn hợp nhiều nguồn tin, mã hóa và giải mã tin…Để thực hiện hoạt động xử lý tín hiệu số, cần thiết phải có các hệ thống xử lý tương ứng. Ngày nay, các hệ thống xử lý tín hiệu có thể được xây dựng với công nghệ DSPs (Digital Signal Processors) hoặc FPGA (Field Programmable Gate Array). Cả hai công nghệ này đều cho phép xử lý tín hiệu số trong thời gian thực, cho phép thực thi các thuật toán xử lý tín hiệu phức tạp, giá thành ngày càng hạ, vì vậy có tính ứng dụng cao. Phần I Bài tập phân tích lọc số Bài tập 1: Phân tích lọc FIR bậc 1 có phương trình sai phân sau: y n x n x n ( ) 0,5 ( ) 0,5 ( 1)    Giải: 1. Tóm tắt lý thuyết: Phương trình sai phân lọc FIR bậc 1: y n b x n b x n ( ) ( ) ( 1)    0 1 Hàm truyền: H z b b z ( )   0 1 1 Đáp ứng tần số: H e b b e ( ) j j     0 1  Đáp ứng biên độ tần số: ( ) 0 1 0 1 1 2 2 0 1 1 1 0 1 ( ) cos sin ( ) ( ) ( cos ) ( sin ) sin ( ) ar cos j j j j j H e b b e b b jb H e e H e b b b b ctn b b                            (1) 2. Phần thực hành Matlab: Vẽ đáp ứng biên độ và đáp ứng pha tần số, xác định dải thông của mạch: Để vẽ các đáp ứng có thể sử dụng trực tiếp công thức (1), trong đó  thay đổi trong phạm vi từ 0 đến  , tuy nhiên trong Matlab có lệnh thuận tiện hơn, đó là lệnh freqz. Lệnh freqz chính để thực hiện công thức (1). Cú pháp: >> H, omega = freqz(b,a);Trong đó b, a lần lượt là các véc tơ tham số của mạch lọc. H, omega lần lượt là đáp ứng tần số và tần số khảo sát (phạm vi từ 0 đến  ). Từ phương trình sai phân đã cho ta có b = 0.5 0.5; a =1. Trong cửa sổ lệnh của Matlab nhập vào như sau: >> b =0.5 0.5; >> a=1; >> H, omega = freqz(b,a); >> biendo = abs (H); >> plot(omega, biendo) Ta nhận được đáp ứng biên độ, tần số của bộ lọc. Thực hiện xác định dải thông của mạch lọc bằng đồ thị: Xác định tần số cắt của mạch lọc bằng cách vẽ đường có giá trị khoảng 0,707, từ điểm cắt của đường này với đường đặc tính biên độ tần số, thực hiện vẽ đường thứ 2 thẳng góc với trục hoành, cắt trục hoành ở vị trí khoảng 1,57, đó chính là tần số cắt C của bộ lọc. Dải thông của mạch lọc: Từ 0 đến C . Dải chặn: Từ C đến 3.14 (tức Pi). Vậy đây là mạch lọc thông thấp. Đáp ứng biên độ tần số của mạch lọc FIR bậc 1.Để xác định đáp ứng pha tần số của mạch lọc, thực hiện lấy ácgumen của đáp ứng tần số: >> pha = angle(H); >> plot (omega, pha) Đáp ứng pha – tần số của lọc FIR bậc 1 Nhận thấy lọc FIR đang khảo sát có pha tuyến tính. Có thể vẽ đáp ứng biên độ tần số theo đơn vị dB theo công thức: biendo dB biendo ( ) 20log ( )  10 >>biendodB=20log10(biendo); >>plot(omega,biendodB); Đáp ứng biên độ tần số của lọc FIR bậc 1 tính theo dBViệc xác định tần số cắt của mạch lọc tương tự như trên, với lưu ý rằng 20log (0.707) 3( ) 10   dB . Bài tập 2: Phân tích mạch lọc FIR bậc 2 có phương trình sai phân sau: y(n)= 0.0462x(n) + 0.9076x(n1) + 0.0462x(n2) Bài tập 3: Phân tích mạch lọc FIR bậc 2 có phương trình sai phân sau: y(n)= 0.0462x(n) + 0.9076x(n1) 0.0462x(n2) Cho nhận xét khi so sánh với bài tập 2. Bài tập 4: Phân tích mạch lọc FIR bậc 2 có phương trình sai phân sau: y(n)= 0.0292x(n) + 0.9777x(n1) + 0.0292x(n2) Bài tập 5: Phân tích mạch lọc FIR bậc 2 có phương trình sai phân sau: y(n)= 0.0101x(n) + 1.0203x(n1) 0.0101x(n2) Cho nhận xét khi so sánh với Bài 4. Bài tập 6: Cho véc tơ hệ số b của lọc FIR bậc 20 như sau: b = 0.0000 0.0343 0.0000 0.0441 0.0000 0.0617 0.0000 0.1029 0.0000 0.3086 0.4847 0.3086 0.0000 0.1029 0.0000 0.0617 0.0000 0.0441 0.0000 0.0343 0.0000 Hãy vẽ đáp ứng biên độ tần số và pha – tần số của bộ lọc, xác định dải thông của mạch lọc. Cho nhận xét. Bài tập 7: Cho mạch lọc IIR bậc 6 với các véc tơ b và a như sau: b = 0.0296 0.1775 0.4438 0.5918 0.4438 0.1775 0.0296 a = 1.0000 0.0000 0.7777 0.0000 0.1142 0.0000 0.0018 Hãy vẽ đáp ứng biên độ tần số và pha – tần số của bộ lọc, xác định dải thông của mạch lọc. Cho nhận xét.Phần II Bài tập tổng hợp lọc số Bài tập 1: Hãy tổng hợp một bộ lọc số thông thấp bằng phương pháp cửa sổ với các tham số sau: a) Bậc mạch lọc bằng 2. b) Tần số cắt C 2    c) Sử dụng cửa sổ Hamming. Sau đó thực hiện phân tích mạch lọc này. Giải: Sử dụng lệnh fir1 của Matlab, cú pháp: b= fir1 (N, wn) Với b là véc tơ trọng số lọc, N là bậc của mạch lọc, wn là tần số cắt chuẩn hóa trong phạm vi từ 0 đến 1. Tần số cắt chuẩn hóa được xác định theo công thức sau: wn C   . Ở lệnh trên, mặc định là tổng hợp lọc thông thấp với cửa sổ Hamming. Các lệnh thực hiện: >> N =2; >> omega_cat = pi2; >> wn = omega_catpi; >> b = fir1(N,wn) Kết quả nhận được: b = 0.0462 0.9076 0.0462 Để phân tích mạch lọc, thực hiện các bước như Phần 1. Lưu ý: Dạng hiển thị tiêu chuẩn của Matlab cho các trọng số lọc chỉ gồm 4 chữ số thập phân, trên thực tế hệ số lọc b được tính toán với độ chính xác cao hơn nhiều. Muốn hiển thị với độ chính xác cao sử dụng lệnh format long. >> format long >>b b =0.046221498602406 0.907557002795188 0.046221498602406 Các giá trị có độ chính xác cao này sẽ được sử dụng để xây dựng bộ lọc với DSPs hoặc FPGA. Bài tập 2: Hãy tổng hợp một bộ lọc số thông thấp bằng phương pháp cửa sổ với các tham số sau: a) Bậc mạch lọc bằng 2. b) Tần số cắt C 2    c) Sử dụng cửa sổ chữ nhật. Cho nhận xét về các trọng số lọc so với Bài 1. Sau đó thực hiện phân tích đáp ứng tần số của mạch lọc này. Giải: Bài tập này chỉ khác Bài 1 là sử dụng cửa sổ chữ nhật. Các lệnh thực hiện: >> N =2; >> omega_cat = pi2; >> wn = omega_catpi; >> b = fir1(N,wn,rectwin(3)) Kết quả nhận được: b = 0.2800 0.4399 0.2800 Để phân tích mạch lọc, thực hiện các bước như Phần 1. Chỉ dẫn: rectwin() cho phép sử dụng cửa sổ chữ nhật. Do mạch lọc có bậc bằng 2, tức N1 =2, nên cửa sổ có độ dài bằng 3 (tức N =3). Bài tập 3: Hãy tổng hợp một bộ lọc số thông cao bằng phương pháp cửa sổ với các tham số sau: a) Bậc mạch lọc bằng 2. b) Tần số cắt C 2    c) Sử dụng cửa sổ chữ nhật. Sau đó thực hiện phân tích đáp ứng tần số của mạch lọc này. Giải:Các lệnh thực hiện: >> N =2; >> omega_cat = pi2; >> wn = omega_catpi; >> b =fir1(N,wn,high,rectwin(3)) Kết quả nhận được: b = 0.2800 0.4399 0.2800 Để phân tích mạch lọc, thực hiện các bước như Phần 1. Chỉ dẫn: Kiểu mạch lọc được chỉ rõ là thông cao (high). Có 04 kiểu mạch lọc: Thông thấp (low), thông cao (high), dải thông (bandpass) và dải chặn (stop), trong đó mặc định là thông thấp (tức nếu không chỉ rõ kiểu mạch lọc thì Matlab mặc định là thông thấp). Bài tập 4: Hãy tổng hợp bộ lọc thông thấp có bậc N=10, tần số cắt C 2    a) Sử dụng cửa sổ Hamming b) Sử dụng cửa sổ Hanning c) Sử dụng cửa sổ Kaiser d) Sử dụng cửa sổ tam giác e) Sử dụng cửa sổ Blackman Phân tích mạch lọc đã tổng hợp. Cho nhận xét. Chỉ dẫn: Từ cửa sổ lệnh của Matlab, gõ: >> help window Sau đó nhấn Enter để tìm hiểu các dạng cửa sổ và thực hiện như Bài 3. Bài tập 5 : Hãy tổng hợp bộ lọc thông cao có bậc N=10, tần số cắt C 2    , sử dụng các cửa sổ như Bài 4. Phân tích mạch lọc đã tổng hợp. Cho nhận xét. Bài tập 6 : Hãy tổng hợp bộ lọc thông dải có bậc N=10, tần số cắt 1 2 , C C 4 2       , sử dụng các cửa sổ như Bài 4. Phân tích mạch lọc đã tổng hợp. Cho nhận xét. Chỉ dẫn: Với lọc thông dải tham số wn = wn1 wn2.Bài tập 7 : Hãy tổng hợp bộ lọc dải chặn có bậc N=10, tần số cắt 1 2 , C 4 C 2       , sử dụng các cửa sổ như Bài 4. Phân tích mạch lọc đã tổng hợp. Cho nhận xét. Chỉ dẫn: Với lọc dải chặn tham số wn = wn1 wn2. Phần thực hành với trình phân tích và tổng hợp mạch lọc với fdatool: Từ cửa sổ lệnh của Matlab gõ vào: >> fdatool Khi đó cửa sổ fdatool hiện lên với tất cả những công cụ cần thiết để tổng hợp và phân tích mạch lọc. Lưu ý: Fdatool có một điểm khác biệt trong cách lấy dải thông so với truyền thống: Tần số cắt xác định tại mức giảm – 6 dB (tương ứng với đặc tính biên độ tần số giảm xuống bằng 0.5). Theo truyền thống, tần số cắt được xác định tại mức giảm 0,707 của đặc tính biên độ tần số.

MỞ ĐẦU Xử lý tín hiệu số lĩnh vực quan trọng kỹ thuật điện tử đại, cho phép nâng cao chất lượng thông tin, tách thông tin cần thiết từ hỗn hợp nhiều nguồn tin, mã hóa giải mã tin…Để thực hoạt động xử lý tín hiệu số, cần thiết phải có hệ thống xử lý tương ứng Ngày nay, hệ thống xử lý tín hiệu xây dựng với công nghệ DSPs (Digital Signal Processors) FPGA (Field Programmable Gate Array) Cả hai công nghệ cho phép xử lý tín hiệu số thời gian thực, cho phép thực thi thuật tốn xử lý tín hiệu phức tạp, giá thành ngày hạ, có tính ứng dụng cao Phần I Bài tập phân tích lọc số Bài tập 1: Phân tích lọc FIR bậc có phương trình sai phân sau: y(n)  0,5x(n)  0,5x(n  1) Giải: Tóm tắt lý thuyết: Phương trình sai phân lọc FIR bậc 1: y(n)  b0 x(n)  b1x(n  1) Hàm truyền: H ( z )  b0  b1z 1 Đáp ứng tần số: H (e j )  b0  b1e j Đáp ứng biên độ - tần số: H (e j )  b0  b1e  j  b0  b1 cos   jb1 sin   H (e j ) e j ( ) H (e j )  (b0  b1 cos  )  (b1 sin  )  ( )  arctn (1) b1 sin  b0  b1 cos  Phần thực hành Matlab: Vẽ đáp ứng biên độ đáp ứng pha tần số, xác định dải thông mạch: Để vẽ đáp ứng sử dụng trực tiếp cơng thức (1),  thay đổi phạm vi từ đến  , nhiên Matlab có lệnh thuận tiện hơn, lệnh freqz Lệnh freqz để thực cơng thức (1) Cú pháp: >> [H, omega] = freqz(b,a); Trong b, a véc tơ tham số mạch lọc H, omega đáp ứng tần số tần số khảo sát (phạm vi từ đến  ) Từ phương trình sai phân cho ta có b = [0.5 0.5]; a =1 Trong cửa sổ lệnh Matlab nhập vào sau: >> b =[0.5 0.5]; >> a=1; >> [H, omega] = freqz(b,a); >> biendo = abs (H); >> plot(omega, biendo) Ta nhận đáp ứng biên độ, tần số lọc Thực xác định dải thông mạch lọc đồ thị: Xác định tần số cắt mạch lọc cách vẽ đường có giá trị khoảng 0,707, từ điểm cắt đường với đường đặc tính biên độ - tần số, thực vẽ đường thứ thẳng góc với trục hồnh, cắt trục hồnh vị trí khoảng 1,57, tần số cắt C lọc Dải thông mạch lọc: Từ đến C Dải chặn: Từ C đến 3.14 (tức Pi) Vậy mạch lọc thông thấp Đáp ứng biên độ - tần số mạch lọc FIR bậc Để xác định đáp ứng pha tần số mạch lọc, thực lấy ác-gu-men đáp ứng tần số: >> pha = angle(H); >> plot (omega, pha) Đáp ứng pha – tần số lọc FIR bậc Nhận thấy lọc FIR khảo sát có pha tuyến tính Có thể vẽ đáp ứng biên độ - tần số theo đơn vị dB theo công thức: biendo(dB)  20log10 (biendo) >>biendodB=20*log10(biendo); >>plot(omega,biendodB); Đáp ứng biên độ - tần số lọc FIR bậc tính theo dB Việc xác định tần số cắt mạch lọc tương tự trên, với lưu ý 20log10 (0.707)  3(dB) Bài tập 2: Phân tích mạch lọc FIR bậc có phương trình sai phân sau: y(n)= 0.0462x(n) + 0.9076x(n-1) + 0.0462x(n-2) Bài tập 3: Phân tích mạch lọc FIR bậc có phương trình sai phân sau: y(n)= -0.0462x(n) + 0.9076x(n-1) - 0.0462x(n-2) Cho nhận xét so sánh với tập Bài tập 4: Phân tích mạch lọc FIR bậc có phương trình sai phân sau: y(n)= 0.0292x(n) + 0.9777x(n-1) + 0.0292x(n-2) Bài tập 5: Phân tích mạch lọc FIR bậc có phương trình sai phân sau: y(n)= -0.0101x(n) + 1.0203x(n-1) -0.0101x(n-2) Cho nhận xét so sánh với Bài Bài tập 6: Cho véc tơ hệ số b lọc FIR bậc 20 sau: b = [0.0000 0.0343 -0.0000 -0.0441 0.0000 0.0617 -0.0000 -0.1029 0.0000 0.3086 0.4847 0.3086 0.0000 -0.1029 -0.0000 0.0617 0.0000 -0.0441 -0.0000 0.0343 0.0000] Hãy vẽ đáp ứng biên độ - tần số pha – tần số lọc, xác định dải thông mạch lọc Cho nhận xét Bài tập 7: Cho mạch lọc IIR bậc với véc tơ b a sau: b= [0.0296 0.1775 0.4438 0.5918 0.4438 0.1775 0.0296] a = [1.0000 -0.0000 0.7777 -0.0000 0.1142 -0.0000 0.0018] Hãy vẽ đáp ứng biên độ - tần số pha – tần số lọc, xác định dải thông mạch lọc Cho nhận xét Phần II Bài tập tổng hợp lọc số Bài tập 1: Hãy tổng hợp lọc số thông thấp phương pháp cửa sổ với tham số sau: a) Bậc mạch lọc b) Tần số cắt C   c) Sử dụng cửa sổ Hamming Sau thực phân tích mạch lọc Giải: Sử dụng lệnh fir1 Matlab, cú pháp: b= fir1 (N, wn) Với b véc tơ trọng số lọc, N bậc mạch lọc, wn tần số cắt chuẩn hóa phạm vi từ đến Tần số cắt chuẩn hóa xác định theo công thức sau: wn  C  Ở lệnh trên, mặc định tổng hợp lọc thông thấp với cửa sổ Hamming Các lệnh thực hiện: >> N =2; >> omega_cat = pi/2; >> wn = omega_cat/pi; >> b = fir1(N,wn) Kết nhận được: b= 0.0462 0.9076 0.0462 Để phân tích mạch lọc, thực bước Phần Lưu ý: Dạng hiển thị tiêu chuẩn Matlab cho trọng số lọc gồm chữ số thập phân, thực tế hệ số lọc b tính tốn với độ xác cao nhiều Muốn hiển thị với độ xác cao sử dụng lệnh format long >> format long >>b b= 0.046221498602406 0.907557002795188 0.046221498602406 Các giá trị có độ xác cao sử dụng để xây dựng lọc với DSPs FPGA Bài tập 2: Hãy tổng hợp lọc số thông thấp phương pháp cửa sổ với tham số sau: a) Bậc mạch lọc b) Tần số cắt C   c) Sử dụng cửa sổ chữ nhật Cho nhận xét trọng số lọc so với Bài Sau thực phân tích đáp ứng tần số mạch lọc Giải: Bài tập khác Bài sử dụng cửa sổ chữ nhật Các lệnh thực hiện: >> N =2; >> omega_cat = pi/2; >> wn = omega_cat/pi; >> b = fir1(N,wn,rectwin(3)) Kết nhận được: b= 0.2800 0.4399 0.2800 Để phân tích mạch lọc, thực bước Phần Chỉ dẫn: rectwin() cho phép sử dụng cửa sổ chữ nhật Do mạch lọc có bậc 2, tức N-1 =2, nên cửa sổ có độ dài (tức N =3) Bài tập 3: Hãy tổng hợp lọc số thông cao phương pháp cửa sổ với tham số sau: a) Bậc mạch lọc b) Tần số cắt C   c) Sử dụng cửa sổ chữ nhật Sau thực phân tích đáp ứng tần số mạch lọc Giải: Các lệnh thực hiện: >> N =2; >> omega_cat = pi/2; >> wn = omega_cat/pi; >> b =fir1(N,wn,'high',rectwin(3)) Kết nhận được: b= -0.2800 0.4399 -0.2800 Để phân tích mạch lọc, thực bước Phần Chỉ dẫn: Kiểu mạch lọc rõ thơng cao (high) Có 04 kiểu mạch lọc: Thông thấp (low), thông cao (high), dải thơng (bandpass) dải chặn (stop), mặc định thông thấp (tức không rõ kiểu mạch lọc Matlab mặc định thơng thấp) Bài tập 4: Hãy tổng hợp lọc thơng thấp có bậc N=10, tần số cắt C   a) Sử dụng cửa sổ Hamming b) Sử dụng cửa sổ Hanning c) Sử dụng cửa sổ Kaiser d) Sử dụng cửa sổ tam giác e) Sử dụng cửa sổ Blackman Phân tích mạch lọc tổng hợp Cho nhận xét Chỉ dẫn: Từ cửa sổ lệnh Matlab, gõ: >> help window Sau nhấn Enter để tìm hiểu dạng cửa sổ thực Bài Bài tập : Hãy tổng hợp lọc thông cao có bậc N=10, tần số cắt C   , sử dụng cửa sổ Bài Phân tích mạch lọc tổng hợp Cho nhận xét Bài tập : Hãy tổng hợp lọc thông dải có bậc N=10, tần số cắt C1   , C   sử dụng cửa sổ Bài Phân tích mạch lọc tổng hợp Cho nhận xét Chỉ dẫn: Với lọc thông dải tham số wn = [wn1 wn2] , Bài tập : Hãy tổng hợp lọc dải chặn có bậc N=10, tần số cắt C1   , C   , sử dụng cửa sổ Bài Phân tích mạch lọc tổng hợp Cho nhận xét Chỉ dẫn: Với lọc dải chặn tham số wn = [wn1 wn2] Phần thực hành với trình phân tích tổng hợp mạch lọc với fdatool: Từ cửa sổ lệnh Matlab gõ vào: >> fdatool Khi cửa sổ fdatool lên với tất cơng cụ cần thiết để tổng hợp phân tích mạch lọc Lưu ý: Fdatool có điểm khác biệt cách lấy dải thông so với truyền thống: Tần số cắt xác định mức giảm – dB (tương ứng với đặc tính biên độtần số giảm xuống 0.5) Theo truyền thống, tần số cắt xác định mức giảm 0,707 đặc tính biên độ - tần số KẾT LUẬN Qua học học viên thục phương pháp phân tích tổng hợp lọc số FIR môi trường Matlab, phục vụ cho việc thực mạch lọc số thiết bị (sẽ học tiếp theo) HƯỚNG DẪN NGHIÊN CỨU Đọc trước tài liệu giao Tự tìm hiểu thêm VXL tín hiệu số internet Ngày … tháng …… năm 2020 ... chữ số thập phân, thực tế hệ số lọc b tính tốn với độ xác cao nhiều Muốn hiển thị với độ xác cao sử dụng lệnh format long >> format long >>b b= 0.04 622 14986 024 06 0.9075570 027 95188 0.04 622 14986 024 06... -0.0462x(n) + 0.9076x(n-1) - 0.0462x(n -2) Cho nhận xét so sánh với tập Bài tập 4: Phân tích mạch lọc FIR bậc có phương trình sai phân sau: y(n)= 0. 029 2x(n) + 0.9777x(n-1) + 0. 029 2x(n -2) Bài tập... -0.0101x(n) + 1. 020 3x(n-1) -0.0101x(n -2) Cho nhận xét so sánh với Bài Bài tập 6: Cho véc tơ hệ số b lọc FIR bậc 20 sau: b = [0.0000 0.0343 -0.0000 -0.0441 0.0000 0.0617 -0.0000 -0.1 029 0.0000 0.3086

Ngày đăng: 14/08/2020, 14:07

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