Tải bản đầy đủ (.pdf) (8 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (298.32 KB, 8 trang )

MỞ ĐẦ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)  0,5x(n)  0,5x(n  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)  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  ) 2  (b1 sin  ) 2

 ( )  arctn


(1)

b1 sin 
b0  b1 cos 

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 ác-gu-men 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)  20log10 (biendo)

>>biendodB=20*log10(biendo);
>>plot(omega,biendodB);

Đáp ứng biên độ - tần số của lọc FIR bậc 1 tính theo dB


Việ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
20log10 (0.707)  3(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(n-1) + 0.0462x(n-2)
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(n-1) - 0.0462x(n-2)
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(n-1) + 0.0292x(n-2)
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(n-1) -0.0101x(n-2)
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 = pi/2;
>> wn = omega_cat/pi;
>> 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 = pi/2;
>> wn = omega_cat/pi;
>> 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 N-1 =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 = pi/2;
>> wn = omega_cat/pi;
>> 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 C1 



4

, C 2 


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 C1 


4

, C 2 


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ố.

KẾT LUẬN

Qua bài học này học viên thuần thục phương pháp phân tích và tổng hợp
lọc số FIR trong môi trường Matlab, phục vụ cho việc thực hiện mạch lọc số
bằng thiết bị (sẽ học ở những bài tiếp theo).
HƯỚNG DẪN NGHIÊN CỨU

1. Đọc trước tài liệu được giao.
2. Tự tìm hiểu thêm về các bộ VXL tín hiệu số trên internet.
Ngày ….. tháng …… năm 2020



×