Bộ lọc số là một hệ thống số có thể được sử dụng để lọc các tín hiệu rời rạc theo thời gian. Có nhiều phương pháp để nghiên cứu, tổng hợp cũng như thiết kế bộ lọc số, điển hình là hai phương pháp thiết kế bộ lọc số có đáp ứng xung hữu hạn (FIR) và phương pháp thiết kế bộ lọc số có đáp ứng xung vô hạn (IIR). Đồ án này trình bày phương pháp thiết kế bộ lọc số có đáp ứng xung vô hạn (IIR). Các phân tích, tính toán, so sánh với các phương pháp khác dựa trên nền tảng của ngôn ngữ MatLab
Trang 1TRƯỜNG ĐHKTCN CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Ngày giao đề: Ngày hoàn thành:
1.Tên đề tài: Thiết kế mạch lọc số IIR
2 Nội dung thuyết minh tính toán
- Phân tích bài toán và xác định yêu cầu
- Cơ sở lý thuyết
- Lựa chọn giải pháp giải pháp thiết kế
- Thuyết minh tính toán cụ thể
- Chương trình, mô phỏng trên matlab
Thông qua phần
Xác định yêu cầu
Thông qua phầnthiết kế
Thông qua phầnxây dựng hệ thống
Đồng ý cho bảo
vệ
TRƯỞNG BỘ MÔN GIÁO VIÊN HƯỚNG DẪN
Nhận xét của giáo viên hướng dẫn
Trang 2
Thái Nguyên, ngày tháng Năm 20
Giáo Viên hướng dẫn (Ký ghi rõ họ tên) Nhận xét của giáo viên chấm
Thái Nguyên, ngày tháng Năm 20
Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
MỤC LỤC
Trang 3LỜI NÓI ĐẦU
Tín hiệu xuất hiện hầu như ở tất cả các ngành khoa học và kỹthuật; ví dụ như trong âm học, sinh học, thông tin liên lạc, hệ thốngđiều khiển, rada, vật lý học, địa chất học và khí tượng học Có haidạng tín hiệu được biết đến Đó là tín hiệu liên tục theo thời gian vàtín hiệu rời rạc theo thời gian
Một tín hiệu rời rạc, cũng như một tín hiệu liên tục, có thể đượcbiểu diễn bởi một hàm của tần số và được biết đến như là phổ tầncủa tín hiệu Lọc số là một quá trình mà ở đó phổ tần của tín hiệu cóthể bị thay đổi, biến dạng tùy thuộc vào một số đặc tính mong muốn
Nó có thể dẫn đến sự khuếch đại hoặc suy giảm trong một dải tần
số, bỏ đi hoặc cô lập một thành phần tần số cụ thể,… Sử dụng bộ lọc
số có rất nhiều vẻ, ví dụ như: Để loại đi thành phần làm bẩn tín hiệunhư nhiễu, loại bỏ méo xuyên giữa các kênh truyền dẫn hoặc sai lệchtrong đo lường, để phân tách hai hoặc nhiều tín hiệu riêng biệt đãđược trộn lẫn theo chủ định nhằm cực đại hóa sự sử dụng kênhtruyền, để phân tích các tín hiệu trong các thành phần tần số củachúng, để nén tín hiệu, để truyền tín hiệu rời rạc theo thời gian sangtín hiệu liên tục theo thời gian
Bộ lọc số là một hệ thống số có thể được sử dụng để lọc các tínhiệu rời rạc theo thời gian Có nhiều phương pháp để nghiên cứu,tổng hợp cũng như thiết kế bộ lọc số, điển hình là hai phương pháp
thiết kế bộ lọc số có đáp ứng xung hữu hạn (FIR) và phương pháp thiết kế bộ lọc số có đáp ứng xung vô hạn (IIR).
Đồ án này trình bày phương pháp thiết kế bộ lọc số có đáp ứng
xung vô hạn (IIR) Các phân tích, tính toán, so sánh với các phương pháp khác dựa trên nền tảng của ngôn ngữ MatLab
Em xin chân thành cảm ơn thầy giáo TS Nguyễn Phương Huy
cùng các anh, chị khóa trên đã tận tình giúp đỡ để chúng em hoànthành đồ án này
Xong do trong quá trình thực hiện kiến thức còn rất hạn chế vàtrong thời gian ngắn nên chúng em còn nhiều thiếu sót mong thầy cô
Trang 4và các bạn sinh viên đóng góp ý kiến để đồ án của của chúng emđược hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!
CHƯƠNG 1: BỘ LỌC SỐ
Bộ lọc số là một trong những lĩnh vực quan trọng nhất của ngành
xử lý tín hiệu số Được ứng dụng rộng rãi trong hầu khắp các lĩnh vựcthông tin số, như xử lý tiếng nói, hình ảnh, video, truyền dẫn tínhiệu…
Bộ lọc số có đáp ứng xung chiều dài vô hạn (IIR):
- Phương pháp bất biến xung
- Phương pháp biến đổi song tuyến
- Phương pháp tương đưng vi phân
1.2 Đặc tuyến tần số của bộ lọc số lý tưởng
Việc thiết kế các bộ lọc số thực tế đều đi từ lý thuyết các bộ lọc
số lý tưởng Ta sẽ tiến hành nghiên cứu bốn bộ lọc số tiêu biểu là:
- Bộ lọc số thông thấp
- Bộ lọc số thông cao
- Bộ lọc số thông dải
- Bộ lọc số chắn dải
Trang 5Lọc ở đây ta hiểu là lọc tần số chính, vì vậy mà tất cả các đặctrưng của lọc tần số đều được cho theo đáp ứng biên độ.
Bộ lọc thông thấp lý tưởng cho tín hiệu số có phổ nằm trong dải
tần f < f c đi qua, chặn không chi tín hiệu số trong dải tần f > f c điqua
1.2.2 Bộ lọc thông cao lý tưởng
Định nghĩa: Bộ lọc thông cao lý tưởng có đặc tính biên độ tần
số khi ω∈ −[ π π, ]
như sau:
Trang 61 [ , ] µ [ , ]( )
j hp
Hình 2: Đồ thị đáp ứng biên độ của bộ lọc số thông cao lý tưởng
Các tham số thực của bộ lọc thông cao lý tưởng
- Tần số cắt : f c
- Dải thông: f p [ f c,∞]
- Dải chặn : f s [0, f c]
Bộ lọc thông cao lý tưởng cho tín hiệu số có phổ nằm trong dải
tần f > f c đi qua, chặn không cho tín hiệu trong dải tần f < f c đi qua
1.2.3 Bộ lọc thông dải lý tưởng
Định nghĩa: Bộ lọc dải thông lý tưởng có đặc tính biên độ tần
Trang 7Hình 3: Đồ thị đáp ứng biên độ của bộ lọc số thông dải lý
Bộ lọc dải thông lý tưởng cho tín hiệu số có phổ nằm trong dải
tần số f c1< <f f c2 đi qua , chặn không cho tín hiệu ngoài dải tần đó điqua
Trang 81.3 Đặc tuyến tần số bộ lọc thực tế
Tất cả bộ lọc số lý tưởng có đặc tính biên độ tần số dạng chữnhật, nên đặc tính xung của chúng đều là dãy không nhân quả có độdài vô hạn , vì thế không thể thực hiện được các bộ lọc lý tưởng
Đặc tính biên độ tần số của bộ lọc số thực tế thường có độnhấp nhô trong dải thông và dải chặn , với hai biên là sườn dốc như
hình 1-11.
Hình 5: Đặc tính biên độ tần số của bộ lọc thông thấp thực tế
Để đặc trưng cho bộ lọc thực tế , người ta sử dụng các tham sốsau :
1 Loại bộ lọc : Thông thấp, thông cao, dải thông, dải chặn
2 Tần số giới hạn giải thông ωc
5 Độ nhấp nhô trong dải thông δ1
Trong dải thông, đặc
tính biên độ tần số
)( jω
bp e
H
phải thỏa mãn điều kiện (1−δ1) ≤
)( jω
bp e
H ≤(1+δ1)
Trang 96 Độ nhấp nhô trong dải chặn δ2
Trong dải chặn đặc tính
biên độ tần số
)( jω
bp e
H
phải thoả mãn điều kiện :
)( jω
bp e H
Trang 10CHƯƠNG 2: THIẾT KẾ BỘ LỌC SỐ IIR BẰNG PHƯƠNG
PHÁP CHEBYSHEV 2
2.1.Giới thiệu bộ lọc số IIR
Bộ lọc số IIR là bộ lọc có đáp ứng xung chiều dài vô hạn
Tương tự với bộ lọc số FIR, tổng hợp bộ lọc số IIR chỉ xét đến
quá trình xác định các hệ số bộ lọc sao cho thỏa mãn các chỉ tiêu kỹ
thuật trong miền tần số: 1 2
, , p, s
δ δ ω ω
Nội dung các phương pháp để tổng hợp bộ lọc số IIR trên cơ sở
lọc tương tự, tức là tổng hợp bộ lọc tương tự trước, sau đó dùng cácphương pháp chuyển đổi tương đương một cách gần đúng từ bộ lọctương tự sang bộ lọc số
k k k
b Z H
Trang 112.2 Các phương pháp chính để chuyển từ bộ lọc tương tự sang số
Tương tự với bộ lọc số FIR, tổng hợp bộ lọc số IIR chỉ xét đến
quá trình xác định các hệ số bộ lọc sao cho thỏa mãn các chỉ tiêu kỹ
thuật trong miền tần số: 1 2
, , p, s
δ δ ω ω
Nội dung các phương pháp để tổng hợp bộ lọc số IIR trên cơ sở
lọc tương tự, tức là tổng hợp bộ lọc tương tự trước, sau đó dùng cácphương pháp chuyển đổi tương đương một cách gần đúng từ bộ lọctương tự sang bộ lọc số
Các phương pháp chính để chuyển từ bộ lọc tương tự sang số:
- Phương pháp bất biến xung.
- Phương pháp biến đổi song tuyến.
- Phương pháp tương đương vi phân.
2.2.1 Phương pháp bất biến xung
Nội dung của phương pháp là xác định đáp ứng xung h(n) của
bộ lọc số bằng cách lấy mẫu đáp ứng xung của bộ lọc tương tự h a (t):
Hàm truyền đạt H(z) của bộ lọc số được chuyển tương đương
theo phương pháp bất biến xung sẽ là:
1 1
k H
2.2.2 Phương pháp biến đổi song tuyến
Nội dung của phương pháp là phép ánh xạ mặt phẳng s của bộ lọc tương tự sang mặt phẳng z của bộ lọc số.
Trang 12Hàm truyền đạt của bộ lọc số H(z) có thể nhận được từ hàm truyền đạt bộ lọc tương tự H a (s), nếu ta thay:
1 1
s
z s
Hay quan hệ giữa các hàm truyền đạt H a (s) và H(z) là:
1 1
2(1 ) (1 )
=
2.2.3 Phương pháp tương đương vi phân
Hàm truyền đạt của bộ lọc số H(z) có thể nhận được từ hàm truyền đạt bộ lọc tương tự H a (s), nếu ta thay:
1
1 s
z sT
=
−
Hay quan hệ giữa các hàm truyền đạt H a (s) và H(z) là:
1 1
+ Bước 2: Chọn phương pháp chuyển đổi từ bộ lọc số sang tương tự
Gồm 3 phương pháp: - Bất biến xung
- Biến đổi song tuyến
- tương đương vi phân
Trang 13=> chọn phương pháp biến đổi song tuyến
+ Bước 3: Thiết kế bộ lọc tương tự theo các phương pháp
- Đáp ứng biện độ của bộ lọc chebyshev2 cho bởi biểu thức
1
N s
T T
ω ωε
Bậc của bộ lọc được tính theo công thức sau:
Trang 14là tần số chuẩn hóa của dải : (2)
là tần số chuẩn hóa của dải thông: (3)
mà
Trang 151,57 200
2 2
s sr
s
F
π ωπ
2 2
Trang 16Từ đó ta tính ra được H o
( )
2 1
1
1
n
k k
H o H
2 1.1
z s
1 1
1400
1
z z
Trang 17Z Z z
Trang 182.3.4 Tính toán trên công cụ matlab
Chương trình:
clear all ;clc
%% Chi tieu bo loc can thiet ke
Fs=200; % tan so lay mau
fp=40; % tan so gioi han dai thong
fs=50; % tan so gioi han dai chan
xmp=0.3; % gon song dai thong
xms=0.34; % gon song dai chan
%%
Ts=1/Fs; % chu ky lay mau
Ap=abs(20*log10(1-xmp)); % gon song dai thong (dB)
As=abs(20*log10(xms)); % gon song dai chan (dB)
wp=fp/(Fs/2); % fp chuan hoa theo 1
ws=fs/(Fs/2); % fs chuan hoa theo 1
wpr=fp*pi/(Fs/2); % fp chuan hoa thep pi
wsr=fs*pi/(Fs/2); % fs chuan hoa theo pi
Trang 19%% Chon kieu bo loc
filter_type = 'cheby2' ; % butter, cheby1, cheby2
case 'butter'
[n,wc] = buttord(wp,ws,Ap,As); % xác đinh bac cua bo loc
[b1,a1] = butter(n,wc); % xác đinh he so cua pt Hz b: tu a: mau
xmpr=max(abs(1-abs(Hejw(1:cswprarr)))); %do gon song dai thong
xmsr=max(abs(Hejw(cswsrarr:end))); %do gon song dai chan
%%
Str01=sprintf( 'Kieu bo loc: %s' , filter_type);
Str02=sprintf( 'Bac bo loc: %d' , n); % man hinh coman Str03=sprintf( 'Gon song dai thong thuc: %f' ,xmpr);
Str04=sprintf( 'Gon song dai chan thuc: %f' ,xmsr);
fprintf( '%s\n%s\n%s\n%s\n' ,Str01,Str02,Str03,Str04)
%%
figure(1)
% Ve dap ung bien do
subplot(221);hold on ;grid on % chia man hinh ra ve do thi thanh nhiu phan hold on: giu lai phan do thida ve truoc do,grid on: bat luoi do thi plot(w/pi*Fs/2,abs(Hejw))
title( 'Dap ung bien do' )
xlabel( 'Tan so (Hz)' );ylabel( 'H(ejw)' )
xlabel( 'Tan so (Hz)' );ylabel( 'Goc pha' )
% Ve dap ung bien do (dB)
subplot(223);hold on ;grid on
plot(w/pi*Fs/2,20*log10(abs(Hejw))) %ve duong
title( 'Dap ung bien do' )
xlabel( 'Tan so (Hz)' );ylabel( 'H(ejw) (dB)' )
Log10AxisBottom=-As-50;
axis([0 Fs/2 Log10AxisBottom 1])
% Ve dap ung xung
[h,t]=impz(b1,a1,25); % tinh ra dap ung xung 25: do dai xung can ve subplot(224);hold on ;grid on
Trang 20stem(t,real(h)) % ve xung(diem)
title( 'Dap ung xung h(n)' )
xlabel( 'n' );ylabel( 'h(n)' )
%%
figure(2) %tao cua so moi de ve do thi
% Bieu dien diem khong va diem cuc
subplot(211);zplane(b1,a1)
title( 'Diem khong va diem cuc' );
% Tre nhom va tre pha (thoi gian truyen nhom)
gd = grpdelay(b1,a1,length(w));
gd(1) = []; % Avoid NaNs
TempH1 = Hejw; Tempw = w;
Tempw(1) = []; % Avoid 'Divide by zero'
TempH1(1) = []; % To be the same size as Tempw
pd = -unwrap(angle(TempH1))./Tempw;
subplot(212);plot(Tempw,gd,Tempw,pd, ':' )
xlabel( 'Tan so (rad/sec)' );
ylabel( 'Delay (Samples)' );
legend( 'Tre nhom' , 'Tre pha' );
title( 'Tre nhom va tre pha' );
axis ([0 pi -1 20]);
Kết quả thu được:
Trang 22-3 -2 -1 0 1 2 3 -1
Trang 23Ta thấy kết quả tính toán thực tế và tính toán trên matlab là trùngnhau
=>Ta có thể dùng matlab để giải quyết những bài toán thiết kếtương tự bài toán bên trên
%% Chi tieu bo loc can thiet ke
Fs=16000; % tan so lay mau
fp=3900; % tan so gioi han dai thong
fs=4100; % tan so gioi han dai chan
xmp=0.1; % gon song dai thong
xms=0.1; % gon song dai chan
%%
Ts=1/Fs; % chu ky lay mau
Ap=abs(20*log10(1-xmp)); % gon song dai thong (dB)
As=abs(20*log10(xms)); % gon song dai chan (dB)
wp=fp/(Fs/2); % fp chuan hoa theo 1
ws=fs/(Fs/2); % fs chuan hoa theo 1
wpr=fp*pi/(Fs/2); % fp chuan hoa thep pi
wsr=fs*pi/(Fs/2); % fs chuan hoa theo pi
w=0:pi/1023:pi; % vecto tan so
%% Chon kieu bo loc
filter_type = 'butter' ; % butter, cheby1, cheby2
Trang 24xmpr=max(abs(1-abs(Hejw(1:cswprarr)))); %do gon song dai thong
xmsr=max(abs(Hejw(cswsrarr:end))); %do gon song dai chan
%%
Str01=sprintf( 'Kieu bo loc: %s' , filter_type);
Str02=sprintf( 'Bac bo loc: %d' , n); % man hinh coman
Str03=sprintf( 'Gon song dai thong thuc: %f' ,xmpr);
Str04=sprintf( 'Gon song dai chan thuc: %f' ,xmsr);
fprintf( '%s\n%s\n%s\n%s\n' ,Str01,Str02,Str03,Str04)
%%
figure(1)
% Ve dap ung bien do
subplot(221);hold on ;grid on % chia man hinh ra ve do thi thanh nhiu phan hold on: giu lai phan do thida ve truoc do,grid on: bat luoi do thi
plot(w/pi*Fs/2,abs(Hejw))
title( 'Dap ung bien do' )
xlabel( 'Tan so (Hz)' );ylabel( 'H(ejw)' )
plot([0 fs],[1+xmp 1+xmp], 'r ' )
plot([0 fp],[1-xmp 1-xmp], 'r ' ) % ve duong bao
plot([fp fp],[0 1-xmp], 'r ' )
plot([fs fs],[xms 1+xmp], 'r ' )
Trang 25% Ve dap ung pha
subplot(222);hold on ;grid on
plot(w/pi*Fs/2,unwrap(angle(Hejw))) % xac dinh dap ung pha, angle:goc pha
title( 'Dap ung pha' )
xlabel( 'Tan so (Hz)' );ylabel( 'Goc pha' )
% Ve dap ung bien do (dB)
subplot(223);hold on ;grid on
plot(w/pi*Fs/2,20*log10(abs(Hejw))) %ve duong
title( 'Dap ung bien do' )
xlabel( 'Tan so (Hz)' );ylabel( 'H(ejw) (dB)' )
Log10AxisBottom=-As-50;
axis([0 Fs/2 Log10AxisBottom 1])
% Ve dap ung xung
[h,t]=impz(b1,a1,25); % tinh ra dap ung xung 25: do dai xung can ve
figure(2) %tao cua so moi de ve do thi
% Bieu dien diem khong va diem cuc
subplot(211);zplane(b1,a1)
title( 'Diem khong va diem cuc' );
% Tre nhom va tre pha (thoi gian truyen nhom)
gd = grpdelay(b1,a1,length(w));
gd(1) = []; % Avoid NaNs
TempH1 = Hejw; Tempw = w;
Tempw(1) = []; % Avoid 'Divide by zero'
TempH1(1) = []; % To be the same size as Tempw
pd = -unwrap(angle(TempH1))./Tempw;
subplot(212);plot(Tempw,gd,Tempw,pd, ':' )
xlabel( 'Tan so (rad/sec)' );
ylabel( 'Delay (Samples)' );
legend( 'Tre nhom' , 'Tre pha' );
title( 'Tre nhom va tre pha' );
axis ([0 pi -1 20]);
-kết quả thu được
Trang 27-3 -2 -1 0 1 2 3 -1
-0.5 0 0.5 1
TÀI LIỆU THAM KHẢO
[1] Nguyễn Quốc Trung, xử lí tín hiệu và lọc số tập 2, NXB Khoa Học
Kĩ Thuật Hà Nội
[2] Nguồn tài liệu trên internet