Tải bản đầy đủ (.ppt) (26 trang)

Báo cáo xử lí Tín Hiệu Số Thiết kế bộ lọc số IIR bằng Matlab. Cho ví dụ và minh họa trong Matlab

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 (527.29 KB, 26 trang )



Báo cáo x lí Tín Hi u ử ệ
Báo cáo x lí Tín Hi u ử ệ
Số
Số
Đ tài : Thi t k b l c s IIR b ng ề ế ế ộ ọ ố ằ
Đ tài : Thi t k b l c s IIR b ng ề ế ế ộ ọ ố ằ
Matlab. Cho ví d và minh h a trong ụ ọ
Matlab. Cho ví d và minh h a trong ụ ọ
Matlab
Matlab




GVHD: Lê Th Minh Thúyị
GVHD: Lê Th Minh Thúyị
Nhóm th c hi n: 1. Bùi Thành Namự ệ
Nhóm th c hi n: 1. Bùi Thành Namự ệ


2. Phan Th Ch ngị ươ
2. Phan Th Ch ngị ươ


3. Ph m Ng c Th ngạ ọ ắ
3. Ph m Ng c Th ngạ ọ ắ


4. Nguy n H ng Linhễ ồ


4. Nguy n H ng Linhễ ồ


I. Tìm hi u v IIRể ề
I. Tìm hi u v IIRể ề

IIR fillter là vi t t t c a Infinite Impulse ế ắ ủ
IIR fillter là vi t t t c a Infinite Impulse ế ắ ủ
Response Fillter nghĩa là B l c s có đáp ng ộ ọ ố ứ
Response Fillter nghĩa là B l c s có đáp ng ộ ọ ố ứ
xung chi u dài vô h n. ề ạ
xung chi u dài vô h n. ề ạ

IIR
IIR
là một tài sản của hệ thống xử lý tín hiệu
là một tài sản của hệ thống xử lý tín hiệu
.
.


. Hệ
. Hệ
thống với tài sản này được gọi là hệ thống IIR hay, khi
thống với tài sản này được gọi là hệ thống IIR hay, khi
giao dịch với hệ thống lọc, như các bộ lọc IIR.
giao dịch với hệ thống lọc, như các bộ lọc IIR.




IIR hệ thống có một chức năng đáp ứng xung đó là khác
IIR hệ thống có một chức năng đáp ứng xung đó là khác
không trên một chiều dài vô hạn của thời gian. Điều này
không trên một chiều dài vô hạn của thời gian. Điều này
trái ngược để đáp ứng xung hữu hạn (FIR) bộ lọc, trong
trái ngược để đáp ứng xung hữu hạn (FIR) bộ lọc, trong
đó có câu trả lời xung thời gian cố định.
đó có câu trả lời xung thời gian cố định.



Các bộ lọc IIR tương tự đơn giản là một bộ lọc RC tạo
Các bộ lọc IIR tương tự đơn giản là một bộ lọc RC tạo
thành một điện trở đơn (R) ăn vào một nút chia sẻ với
thành một điện trở đơn (R) ăn vào một nút chia sẻ với
một tụ điện duy nhất (C). Bộ lọc này có đáp ứng xung
một tụ điện duy nhất (C). Bộ lọc này có đáp ứng xung
mũ đặc trưng bởi một thời gian RC không đổi.
mũ đặc trưng bởi một thời gian RC không đổi.



B
B
ộ lọc IIR có thể được thực hiện như hai
ộ lọc IIR có thể được thực hiện như hai
bộ lọc tương tự hoặc kỹ thuật số. Trong
bộ lọc tương tự hoặc kỹ thuật số. Trong
các bộ lọc IIR kỹ thuật số, các thông tin
các bộ lọc IIR kỹ thuật số, các thông tin

phản hồi đầu ra là ngay lập tức rõ ràng
phản hồi đầu ra là ngay lập tức rõ ràng
trong các phương trình xác định đầu ra.
trong các phương trình xác định đầu ra.
Lưu ý rằng không giống như với các bộ
Lưu ý rằng không giống như với các bộ
lọc FIR, trong việc thiết kế bộ lọc IIR cần
lọc FIR, trong việc thiết kế bộ lọc IIR cần
xem xét cẩn thận "thời gian không" trường
xem xét cẩn thận "thời gian không" trường
hợp trong đó kết quả đầu ra của bộ lọc
hợp trong đó kết quả đầu ra của bộ lọc
chưa được xác định rõ ràng
chưa được xác định rõ ràng
.
.



Thiết kế bộ lọc IIR kỹ thuật số là phụ thuộc
Thiết kế bộ lọc IIR kỹ thuật số là phụ thuộc
nhiều vào các đối tác tương tự của họ bởi
nhiều vào các đối tác tương tự của họ bởi
vì có rất nhiều tài nguyên, công trình và
vì có rất nhiều tài nguyên, công trình và
phương pháp thiết kế đơn giản về thiết kế
phương pháp thiết kế đơn giản về thiết kế
tương tự phản hồi lọc trong khi có bất kỳ
tương tự phản hồi lọc trong khi có bất kỳ
khó cho các bộ lọc IIR kỹ thuật số.

khó cho các bộ lọc IIR kỹ thuật số.





Kết quả là, thông thường, khi một IIR lọc kỹ
Kết quả là, thông thường, khi một IIR lọc kỹ
thuật số sẽ được thực hiện, một bộ lọc tương tự
thuật số sẽ được thực hiện, một bộ lọc tương tự
(ví dụ như Chebyshev bộ lọc, bộ lọc
(ví dụ như Chebyshev bộ lọc, bộ lọc
Butterworth, Elliptic lọc) là thiết kế đầu tiên và
Butterworth, Elliptic lọc) là thiết kế đầu tiên và
sau đó được chuyển thành một bộ lọc kỹ thuật
sau đó được chuyển thành một bộ lọc kỹ thuật
số bằng các kỹ thuật phân rời áp dụng như
số bằng các kỹ thuật phân rời áp dụng như
chuyển đổi song tuyến tính hoặc xung bất biến.
chuyển đổi song tuyến tính hoặc xung bất biến.

B
B
ộ lọc IIR bao gồm các Chebyshev bộ lọc, bộ
ộ lọc IIR bao gồm các Chebyshev bộ lọc, bộ
lọc Butterworth và lọc Bessel.
lọc Butterworth và lọc Bessel.




Xem xét rằng trong hầu hết các thiết kế bộ
Xem xét rằng trong hầu hết các thiết kế bộ
lọc IIR hệ số \ a_0 là 1, hàm truyền lọc IIR
lọc IIR hệ số \ a_0 là 1, hàm truyền lọc IIR
có dạng truyền thống hơn:
có dạng truyền thống hơn:
\ Begin {align} H (z) & = \ frac {\ sum_ {i
\ Begin {align} H (z) & = \ frac {\ sum_ {i
= 0} ^ P b_ {i} z ^ {-i}} {1 \ sum_ {= 1} ^ j Q
= 0} ^ P b_ {i} z ^ {-i}} {1 \ sum_ {= 1} ^ j Q
A_ {j} z ^ {-k}} \ end {align}
A_ {j} z ^ {-k}} \ end {align}





B
B
ộ lọc IIR đôi khi được ưa thích hơn
ộ lọc IIR đôi khi được ưa thích hơn
các bộ lọc FIR vì một IIR lọc có thể
các bộ lọc FIR vì một IIR lọc có thể
đạt được một vùng chuyển tiếp rõ
đạt được một vùng chuyển tiếp rõ
ràng hơn, roll-off hơn so với bộ lọc
ràng hơn, roll-off hơn so với bộ lọc
FIR của cùng một thứ tự.
FIR của cùng một thứ tự.



II. ng D ng c a IIRỨ ụ ủ
II. ng D ng c a IIRỨ ụ ủ

* IIR lọc kỹ thuật số thiết kế trong Java
* IIR lọc kỹ thuật số thiết kế trong Java
applet
applet



* IIR lọc kỹ thuật số công cụ thiết kế - sản
* IIR lọc kỹ thuật số công cụ thiết kế - sản
xuất các hệ số, đồ thị, cột, số không, và
xuất các hệ số, đồ thị, cột, số không, và
mã C
mã C




III. Ví d và minh h a trong Matlabụ ọ
III. Ví d và minh h a trong Matlabụ ọ

Ví d 1:Thi t k b l c thông th p t ng t , d ng ụ ế ế ộ ọ ấ ươ ự ạ
Ví d 1:Thi t k b l c thông th p t ng t , d ng ụ ế ế ộ ọ ấ ươ ự ạ
Chebyshev- I, c a s c i các ử ổ ớ
Chebyshev- I, c a s c i các ử ổ ớ

tham s đ u vào. ố ầ

tham s đ u vào. ố ầ

ωP = 0,2 π ; RP = 1dB
ωP = 0,2 π ; RP = 1dB

ωS = 0,3 π ; AS =16dB
ωS = 0,3 π ; AS =16dB

Vi t ch ng trình tính và bi u di n trên đ th : ế ươ ể ễ ồ ị
Vi t ch ng trình tính và bi u di n trên đ th : ế ươ ể ễ ồ ị

a. Đ l n c a đáp ng t n sộ ớ ủ ứ ầ ố
a. Đ l n c a đáp ng t n sộ ớ ủ ứ ầ ố
b. Hàm đáp ng pha c a b l cứ ủ ộ ọ
b. Hàm đáp ng pha c a b l cứ ủ ộ ọ
c. Hàm đ l n t ng đ i tính theo dB c a đáp ng ộ ớ ươ ố ủ ứ
c. Hàm đ l n t ng đ i tính theo dB c a đáp ng ộ ớ ươ ố ủ ứ
t n sầ ố
t n sầ ố

d. Hàm đáp ng xung c a b l c t ng t ứ ủ ộ ọ ươ ự
d. Hàm đáp ng xung c a b l c t ng t ứ ủ ộ ọ ươ ự


Code chuong trinh
Code chuong trinh

Wp = 0.2*pi; Ws =0.3*pi; Rp = 1; As = 16;
Wp = 0.2*pi; Ws =0.3*pi; Rp = 1; As = 16;


Ripple = 10^(-Rp/20); Attn = 10^(-As/20);
Ripple = 10^(-Rp/20); Attn = 10^(-As/20);

% Analog filter design:
% Analog filter design:

[b,a] = afd_chb1(Wp,Ws,Rp,As);
[b,a] = afd_chb1(Wp,Ws,Rp,As);

% Calculation of Frequency Response:
% Calculation of Frequency Response:

[db,mag,pha,w] = freqs_m(b,a,0.5*pi);
[db,mag,pha,w] = freqs_m(b,a,0.5*pi);

% Calculation of Impulse response:
% Calculation of Impulse response:

[ha,x,t] = impulse(b,a);
[ha,x,t] = impulse(b,a);

%plot
%plot



subplot(2,2,1); plot(w/pi,mag); grid;
subplot(2,2,1); plot(w/pi,mag); grid;
axis([0,0.5,-0.1,1.1]);
axis([0,0.5,-0.1,1.1]);

title('Magnitude Response');
title('Magnitude Response');
xlabel('frequency in pi units'); ylabel('Hr(w)');
xlabel('frequency in pi units'); ylabel('Hr(w)');

%subplot(2,2,2); plot(w/pi,db); grid;
%subplot(2,2,2); plot(w/pi,db); grid;

axis([0,0.5,-40,5]);
axis([0,0.5,-40,5]);
title('Magnitude Response in dB');
title('Magnitude Response in dB');
xlabel('frequency in pi units'); ylabel('Decibels');
xlabel('frequency in pi units'); ylabel('Decibels');

%subplot(2,2,3); plot(w/pi,pha/pi); grid;
%subplot(2,2,3); plot(w/pi,pha/pi); grid;

axis([0,0.5,-1.0,1.0]);
axis([0,0.5,-1.0,1.0]);
title('Phase Response');
title('Phase Response');
xlabel('frequency in pi units'); ylabel('radians');
xlabel('frequency in pi units'); ylabel('radians');

%subplot(2,2,4); plot(t,ha); grid;
%subplot(2,2,4); plot(t,ha); grid;

axis([0,50,-0.10,0.25]);
axis([0,50,-0.10,0.25]);

title('Impulse Response');
title('Impulse Response');
xlabel('time in seconds'); ylabel('ha(t)');
xlabel('time in seconds'); ylabel('ha(t)');


Đ thồ ị
Đ thồ ị


Ví d 2:9 Chuy n đ i b l c v i các tham s ụ ể ổ ộ ọ ớ ố
Ví d 2:9 Chuy n đ i b l c v i các tham s ụ ể ổ ộ ọ ớ ố
đã cho sang b l c s b ng ph ng ộ ọ ố ằ ươ
đã cho sang b l c s b ng ph ng ộ ọ ố ằ ươ
pháp bi n đ i song tuy nế ổ ế
pháp bi n đ i song tuy nế ổ ế


% Digital Filter Specification:
wp =0.2*pi;
% digital Passband freq in Hz
ws =0.3*pi;
% digital Stopband freq in Hz
Rp = 1;
% Passband ripple in dB
As = 15;


% Stopband attenuation in dB
% Analog prototype Specification: Inverse mapping for frequencies

T = 1; Fs =1/T;
% Set T=1
OmegaP = (2/T)*tan(wp/2);
% Prewarp Prototype Passband freq
OmegaS = (2/T)*tan(ws/2);
% Prewarp Prototype Stopband freq
% Analog Chebyshev-1 Prototype Filter Calculation:
[cs, ds] = afd_chb1(OmegaP,OmegaS,Rp,As);
% Bilinear transformation:
[b,a] = bilinear(cs,ds,Fs);
%[db,mag,pha,grd,w] = freqz_m(b,a);
%plot
subplot(2,2,1); plot(w/pi,mag);
axis([0,1,0,1.2]); grid
title('Amplitude Response');


xlabel('frequency in pi units'); ylabel('|Hr(w)|');
%subplot(2,2,3); plot(w/pi,db);
axis([0,1,-30,10]); grid
title('Magnitude Response');
xlabel('frequency in pi units'); ylabel('Decibels');
%subplot(2,2,2); plot(w/pi,pha/pi);
axis([0,1,-1,1]); grid
title('Phase Response');
xlabel('frequency in pi units'); ylabel('Angle(Hr(w))');
%subplot(2,2,4); plot(w/pi,grd);
axis([0,1,0,15]); grid
title('Group Delay');
xlabel('frequency in pi units'); ylabel('Samples');



đ thồ ị
đ thồ ị


Ví du 3:Th c hi n yêu c u c a ví d 2 theo ự ệ ầ ủ ụ
Ví du 3:Th c hi n yêu c u c a ví d 2 theo ự ệ ầ ủ ụ
ph ng pháp b t bi n xung, dùng hàm ươ ấ ế
ph ng pháp b t bi n xung, dùng hàm ươ ấ ế
impinvar c a MATLAB. So sánh k t qu thu đ c ủ ế ả ượ
impinvar c a MATLAB. So sánh k t qu thu đ c ủ ế ả ượ
v i câu trênớ
v i câu trênớ



wp =0.2*pi;
wp =0.2*pi;

% digital Passband freq in Hz
% digital Passband freq in Hz

ws =0.3*pi;
ws =0.3*pi;

% digital Stopband freq in Hz
% digital Stopband freq in Hz

Rp = 1;

Rp = 1;

% Passband ripple in dB
% Passband ripple in dB

As = 15;
As = 15;

% Stopband attenuation in dB
% Stopband attenuation in dB


% Analog prototype Specification: Inverse mapping for frequencies
T = 1; Fs =1/T;
% Set T=1
OmegaP = (2/T)*tan(wp/2);
% Prewarp Prototype Passband freq
OmegaS = (2/T)*tan(ws/2);
% Prewarp Prototype Stopband freq
% Analog Chebyshev-1 Prototype Filter Calculation:
[cs, ds] = afd_chb1(OmegaP,OmegaS,Rp,As);
% Bilinear transformation:
[b,a] = impinvar(cs,ds,Fs);
%[db,mag,pha,grd,w] = freqz_m(b,a);
%plot
subplot(2,2,1); plot(w/pi,mag);
axis([0,1,0,1.2]); grid
title('Amplitude Response');
xlabel('frequency in pi units'); ylabel('|Hr(w)|');




%subplot(2,2,4); plot(w/pi,grd);
%subplot(2,2,4); plot(w/pi,grd);

axis([0,1,0,15]); grid
axis([0,1,0,15]); grid
title('Group Delay');
title('Group Delay');
xlabel('frequency in pi units'); ylabel('Samples');
xlabel('frequency in pi units'); ylabel('Samples');


Đ thồ ị
Đ thồ ị


Ví d 4:T o hàm th c hi n vi c chuy n ụ ạ ự ệ ệ ể
Ví d 4:T o hàm th c hi n vi c chuy n ụ ạ ự ệ ệ ể
đ i băng t n s , tr v hàm truy n đ t ổ ầ ố ả ề ề ạ
đ i băng t n s , tr v hàm truy n đ t ổ ầ ố ả ề ề ạ
c a b l c m i v i tham s đ u vào là ủ ộ ọ ớ ớ ố ầ
c a b l c m i v i tham s đ u vào là ủ ộ ọ ớ ớ ố ầ
hàm truy n đ t c a b l c thông th p, ề ạ ủ ộ ọ ấ
hàm truy n đ t c a b l c thông th p, ề ạ ủ ộ ọ ấ
hàm đa th c th hi n phép đ i bi n s ứ ể ệ ổ ế ố
hàm đa th c th hi n phép đ i bi n s ứ ể ệ ổ ế ố
đ c l p, ghi l i theo tên t p là ộ ậ ạ ệ
đ c l p, ghi l i theo tên t p là ộ ậ ạ ệ
zmapping.m:

zmapping.m:




function [bz,az] = zmapping(bZ,aZ,Nz,Dz)
% Frequency band Transformation from Z-domain to z-domain
%
% [bz,az] = zmapping(bZ,aZ,Nz,Dz)
% perform:
%
b(z) b(Z)|
%
= | N(z)
%
a(z) a(Z)|Z =
%
D(z)
%bzord = (length(bZ)-1)*(length(Nz)-1);


azord = (length(aZ)-1)*(length(Dz)-1);
%bz = zeros(1,bzord+1);
for k = 0:bzord
pln = [1];
for l = 0:k-1
pln = conv(pln,Nz);
end
pld = [1];
for l = 0:bzord-k-1

pld = conv(pld,Dz);
end
bz = bz+bZ(k+1)*conv(pln,pld);
end
az = zeros(1,azord+1);
for k = 0:azord
pln = [1];
for l = 0:k-1


pln = conv(pln,Nz);
end
pld = [1];
for l = 0:azord-k-1
pld = conv(pld,Dz);
end
az = az+aZ(k+1)*conv(pln,pld);
end
%az1 = az(1); az = az/az1; bz=bz/az1;

×