Việc thiết kế bộ lọc số dung Bộ lọc ELLIPTIC và biến đổi bất biến xung có những ưu
điểm sau:
- Các bộlọc ELLIPTIC thường cân bằng gợn sóng ởdải thông cũng như dải
chắn. Chúng có các đặc trưngđáp ứng biên độtương tựnhư các bộlọc FIR
cân bằng gợn song. Vì vậy các bộlọc elliptic là các bộlọc tối ưu trong đó đ ạt
được bậc tối thiểu N đối với các chỉtiêu đã cho. Khắc phục được nhược điểm
của bộlọc Butterworth và Chebyshev.
- Những ưu điểm của bất biến xung đó là thiết kế được ổn định, tần số và w
có quan hệ tuyến tính với nhau. Nhưng nhược điểm đó là một vài nơi bị chồng
phổ trong đáp ứng tần số tương tự và trong một số trường hợp hiện tượng
chồng phổ này là không chấp nhận được.
18 trang |
Chia sẻ: lylyngoc | Lượt xem: 4137 | Lượt tải: 3
Bạn đang xem nội dung tài liệu Luận văn Thiết kế bộ lọc thông thấp theo cấu trúc IIR sử dụng bộ lọc ELLIPTIC và phương pháp biến đổi bất biến xung, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Luận văn
Đề tài: Thiết kế bộ lọc thông thấp theo
cấu trúc IIR sử dụng bộ lọc ELLIPTIC và
phương pháp biến đổi bất biến xung
Bài tập lớn môn học Xử lý số tín hiệu
Trang 1
Bài toán thiết kế :
Thiết kế bộ lọc thông thấp theo cấu trúc IIR sử dụng bộ lọc ELLIPTIC và phương
pháp biến đổi bất biến xung.
2. Phương pháp thiết kế :
Các bước thiết kế.
Bước 1: Chỉ định các chỉ tiêu của bộ lọc số :
- Tần số dải thông wp
- tần số dải chắn ws
- Độ gợn sóng dải thông Rp
- Độ suy hao dải chắn As
và tham số T.
Bước 2: Chiếu các tần số cắt wp và ws từ miền tần số số lên miền tần số
tương tự p và s .
Bước 3: Thiết kế bộ lọc thông thấp tương tự có hàm truyền Ha(s) thỏa mãn
các chỉ tiêu tương tự trên các điểm Ωp, Ωs.
Bước 4: Biến đổi bộ lọc thông thấp tương tự Ha(s) thành bộ lọc thông thấp
số HLP(Z) theo phép biến đổi bất biến xung.
Bước 5: Chuyển đổi tần số để đạt được bộ lọc số mong muốn
H(z) = HLP(Z) )( 11 zGZ
2.1. Giới thiệu chung :
Bộ lọc IIR có đáp ứng xung vô hạn , vì vậy chúng có thể khớp với các bộ lọc
analog , mà nói chung đều có đáp ứng xung dài vô hạn. Kỹ thuật cơ bản để thiết kế lọc
IIR là biến đổi các bộ lọc analog điển hình (well-known) thành các bộ lọc digital sử
dụng các ánh xạ giá trị-phức. Sự thuận tiện của kỹ thuật này là ở chỗ có sẵn các bảng
thiết kế lọc analog (AFD) và các ánh xạ được mở rộng trong thư viện. Các kỹ thuật cơ
bản được gọi là các phép biến đổi lọc A/D.
Tuy nhiên, các bảng AFD chỉ dùng cho các bộ lọc thông thấp. Trong khi ta cần
thiết kế các bộ lọc chọn tần khác (thông cao, thông dải, chắn dải, v.v…)
Cần áp dụng các phép biến đổi băng tần đối với các bộ lọc thông thấp. Các phép
biến đổi này cũng được gọi là ánh xạ giá trị-phức, và chúng cũng có sẵn trong thư
viện.
§Ó thiÕt kÕ m¹ch läc sè mong muèn tõ c¸c m¹ch läc t¬ng tù , cã hai kü thuËt
®îc ¸p dông:
1. BiÕn ®æi m¹ch läc t¬ng tù th«ng thÊp ®· ®îc chuÈn hãa thµnh mét m¹ch läc
t¬ng tù kh¸c cha chuÈn hãa råi sau ®ã sè hãa m¹ch läc t¬ng tù nµy ®Ó trë thµnh
mét m¹ch läc sè mong muèn.
2. Anh x¹ m¹ch läc th«ng thÊp t¬ng tù tõ mÆt ph¼ng -s sang mÆt ph¼ng -z vµ
sau ®ã ¸p phÐp biÕn ®æi d¶i tÇn ®Ó t¹o thµnh m¹ch läc sè mong muèn; Trong ®ã phÐp
biÕn ®æi lµ c«ng cô chñ chèt. C¶ hai kü thuËt trªn ®îc m« t¶ trªn s¬ ®å sau ®©y:
Bài tập lớn môn học Xử lý số tín hiệu
Trang 2
2.2. Thiết kế bộ lọc IIR :
2.2.1. Mét sè lu lý ®èi víi bé läc t¬ng tù:
§¸p øng biªn ®é cña m¹ch läc th«ng thÊp t¬ng tù cã thÓ ®îc biÓu thÞ díi d¹ng
b×nh ph¬ng hoÆc theo thang dB nh trªn h×nh 2.1
§èi víi d¶i th«ng: Pa jH
;1
1
1 2
(2.1)
§èi víi d¶i chÆn: Q
A
jH sa ;
10 2
2 (2.2)
Trong ®ã lµ th«ng sè mÊp m« cña d¶i th«ng, P lµ tÇn sè cña d¶i th«ng ®o b»ng
rad/sec, A lµ ®é suy gi¶m cña d¶i chÆn vµ S lµ tÇn sè c¾t cña d¶i chÆn.
C¸c ®Æc tÝnh nµy ®îc biÓu diÔn trªn h×nh 2.1
Nh vËy ta sÏ t×m ®îc:
Pa khijH
;
1
1
2
2
(2.3)
Vµ Sa khiA
jH ;12
2
(2.4)
C¸c th«ng sè vµ A liªn hÖ víi c¸c th«ng sè RP vµ AS ®îc tÝnh n»ng ®¬n vÞ dB.
C¸c th«ng sè nµy quan hÖ víi nhau qua c«ng thøc:
110
1
1log10 10210
PRPR
(2.5)
Vµ 20
210 10
1log10 SAS AA
A (2.6)
Ngoµi ra ®é gîn sãng 1 vµ 2 tØ lÖ trÞ tuyÖt ®èi. Liªn hÖ víi vµ A b»ng c¸c hÖ
thøc:
1
1
2
1
1
1
2
1
1
1
1
(2.7)
Vµ
2
1
1
2 1
1
AA (2.8)
ThiÕt kÕ m¹ch läc
th«ng thÊp t¬ng tự
Áp dụng biến đổi
dải tần S S
Áp dụng biến đổi
mạch lọc s Z M¹ch läc sè IIR
mong muèn
ThiÕt kÕ m¹ch läc
th«ng thÊp t¬ng
tự
Áp dụng biến
đổi mạch lọc
S Z
Áp dụng biến
đổi dải tần
Z Z
M¹ch läc sè
IIR mong muèn
Kü thuËt 1:
Kü thuËt 2:
Bài tập lớn môn học Xử lý số tín hiệu
Trang 3
§¸p øng tÇn sè Ha(j) cña m¹ch läc t¬ng tù liªn hÖ víi hµm truyÒn Ha(s) cña nã
b»ng hÖ thøc:
Ha(j) = Ha(s) js
Nªn jsaaa sHsHjH
2
(2.9)
Hay jsjaaa HsHsH
2
(2.10)
Do vËy, c¸c ®iÓm cùc vµ c¸c ®iÓm kh«ng cña hµm b×nh ph¬ng biªn ®é ph©n bè
®èi xøng ¶nh g¬ng ®èi víi trôc ¶o j. §Ó m¹ch läc t¬ng tù æn ®Þnh vµ nh©n qu¶ th×
c¸c ®iÓm cùc cña hµm truyÒn cña nã b¾t buéc ph¶i n»m ë nöa tr¸i cña mÆt ph¼ng -s.
C¸c ®iÓm kh«ng cña Ha(s) cã thÓ n»m ®©u ®ã trong mÆt ph¼ng -s, do ®ã chóng kh«ng
®îc x¸c ®Þnh mét c¸ch duy nhÊt trõ khi tÊt c¶ ®Òu n»m trªn trôc j. Ta sÏ chän c¸c
®iÓm kh«ng cña Ha(s)Ha(-s) n»m bªn trong hoÆc ngay trªn trôc j nh c¸c ®iÓm kh«ng
nh vËy ®îc gäi lµ m¹ch läc pha cùc tiÓu.
2.2.2. C¸c bé läc th«ng thấp Elliptic:
Các bộ lọc này thường cân bằng gợn sóng ở dải thông cũng như dải chắn. Chúng
có các đặc trưng đáp ứng biên độ tương tự như các bộ lọc FIR cân bằng gợn song. Vì
vậy các bộ lọc elliptic là các bộ lọc tối ưu trong đó đạt được bậc tối thiểu N đối với các
chỉ tiêu đã cho. Các bộ lọc này, vì nhiều lý do đã xét trước đây, là rất khó để phân tích
và thiết kế. Không thể thiết kế chúng bằng các công cụ đơn giản, và thường phải dùng
các chương trình hoặc bảng để thiết kế chúng.
Đáp ứng xung bình phương độ lớn của bộ lọc Elliptic được cho bởi:
1
21
1
2
1
A
0 P S
2jH a
Hình 2.1 : Các đặc tính của bộ lọc Analog thông thấp
(2.22)
)(1
1)(
22
2
c
N
a
U
jH
Trong đó: N: bậc; epsilon: gợn sóng dải thông; UN() là bậc
của hàm Jacobian elliptic thứ-N
Bài tập lớn môn học Xử lý số tín hiệu
Trang 4
1
21
1
2
1
A
)( jHa
c
N lẻ
1
2
1
A
)( jHa
c
21
1
N chẳn
Các kiểu đáp ứng đối với N chẵn và lẻ ở hình dưới đây:
Tính toán cho bộ lọc bậc N:
Thực hiện trong MATLAB:
Matlab cung cấp một hàm được gọi là [z,p,k] = ellipap(N,Rp, As) để thiết kế bộ lọc
chuẩn hoá tương tự Elliptic có bậc N và gợn sóng dải thông Rp và Suy giảm ở dải chắn
As. Cho kết quả điểm zeros trong mảng z, điểm cực trong mảng p và giá trị độ lợi k.
Chúng ta cần bộ lọc Eliiptic chưa chuẩn hoá với c tuỳ ý. Điều này đạt được bởi độ
lớn mảng p và z của bộ lọc đã được chuẩn hoá bởi c . Hàm dưới đây, được gọi là
U_elipap(N,Rp, As, Omegac). Chúng ta thiết kế một bộ lọc Elliptic chưa chuẩn hoá nó
trả lại Ha(s) theo dạng trực tiếp.
2.2.3. Các phép biến đổi bộ lọc tương tự thành bộ lọc số:
Sau khi khảo sát các tiếp cận khác nhau để thiết kế các bộ lọc tương tự , chúng ta
sẵn sàng biến đổi chúng thành bộ lọc số. Các phép biến đổi này đạt được bằng cách
bảo toàn các aspects khác nhau của các bộ lọc tương tự và lọc số.
Cách phương pháp biến đổi:
Biến đổi bất biến xung:
Bảo toàn hình dang của đáp ứng xung từ lọc tương tự thành lọc số.
Kỹ thuật xấp xỉ sai phân hữu hạn:
Chuyển đổi biểu diễn một phương trình vi phân thành một phương trình sai
phân tương ứng.
Bất biến bước nhảy:
Bảo toàn hình dạng của đáp ứng bước nhảy.
Biến đổi song tuyến tính:
Bảo toàn biểu diễn hàm hệ thống từ miền tương tự sang miền số.
Do yêu cầu của bài toán nên trong tiểu luận này chỉ đưa ra phương pháp biến đổi
bất biến xung.
2
0
22 sin1
)(
x
dxK
12
1
A
k
s
ck
)1()(
)1()(
2
1
2
1
kKkK
kKkK
N
Bài tập lớn môn học Xử lý số tín hiệu
Trang 5
0)/()( TjHjH aa
Biến đổi bất biến xung:
Trong phương pháp thiết kế này. Đáp ứng xung của bộ lọc số trông tương tự
như đáp ứng xung của bộ lọc chọn tần analog. Sau đó Lấy mẫu ha(t) ở các chu kỳ lấy
mẫu T ta thu được h(n): h(n)=ha(nT)
Thông số T được chọn sao cho hình dạng của ha(t) thu được bởi lấy mẫu. Trong
quá trình lấy mẫu tần số tương tự và tần số số có quan hệ bởi:
T hoặc
Tjj ee
Do z=ejω trên đường tròn đơn vị và s=j Ω trên trục ảo, ta có phép biến đổi sau đây từ
mặt phẳng s sang mặt phẳng z:
z=esT (8.23)
Hàm hệ thống H(z) và Ha(s) có quan hệ với nhau thông qua biểu thức phổ miền tần số
(1.6).
Các tính chất:
Sử dụng:
1. σ = Re(s): Lưu ý rằng:
σ < 0, ánh xạ vào |z|<1 (bên trong đường tròn đơn vị)
σ = 0, ánh xạ vào |z|=1 (trên đường tròn đơn vị )
σ >0, ánh xạ vào |Z|>1 (bên ngoài đường tròn đơn vị)
2. Ánh xạ nhiều s lên một z : Ánh xạ many-to-one
3. Mỗi dải bán-vô hạn bên trái (nằm bên mặt phẳng trái) ánh xạ vào bên trong
đường tròn đơn vị
Tính nhân quả và ổn định là không thay đổi;
Aliasing xuât hiện nếu bộ lọc không có băng tần-hữu hạn
4. Nếu for T/ then
),/(1)( TjH
T
eH a
j
Ưu điểm của phương pháp này:
Hình 2.8 Ánh xạ mặt phẳng phức trong biên đổi bất biến xung
Bài tập lớn môn học Xử lý số tín hiệu
Trang 6
Những ưu điểm của bất biến xung đó là thiết kế được ổn định, tần số và w có
quan hệ tuyến tính với nhau. Nhưng nhược điểm đó là một vài nơi bị chồng phổ trong
đáp ứng tần số tương tự và trong một số trường hợp hiện tượng chồng phổ này là
không chấp nhận được. Do đó phương pháp thiết kế này chỉ được dùng khi bộ lọc
tương tự có băng thông giới hạn đối với thông thấp và thông dải hoặc khi không có sự
dao động trong dải chắn.
Thủ tục thiết kế:
Cho các đặc tính kỹ thuật bộ lọc thông thấp số. ωp,ωs,Rp và As, chúng ta muốn xác
định H(z) bằng cách thiết kế trước tiên một bộ lọc analog tương đương và sau đó ánh
xạ chúng thành bộ lọc số mong muốn. Thủ tục thiết kế:
1. Chọn T và xác định các tần số analog:
Ωp=ωp/T, Ωs=ωs/T
2. Thiết kế một bộ lọc analog Ha(s) sử dụng các đặc tính của bộ lọc Elliptic
trong phần trước.
3. Sử dụng phép khai triển riêng phần khai triển Ha(s) thành
4. Biến đổi các điểm cực analog {pk} thành các điểm cực số {epkT} để thu
được bộ lọc số.
3. Thuật toán và chương trình thiết kế :
Yêu cầu cụ thể sau:
Thiết kế bộ lọc thông thấp IIR với các chỉ tiêu sau:
Tần số cắt của dải thông (Passband Edge Frequency)ωp -Tần số cắt của dải chắn
(Stopband Edge Frequency) ωs -Độ gợn sóng của dải thông (Passband Ripple) Rp -Độ
suy giảm của dải chắn (Stopband Attenuation) As
3.1 Sơ đồ thuật toán:
Nk
k
k
a ps
RsH 1)(
Bài tập lớn môn học Xử lý số tín hiệu
Trang 7
Nhập các chỉ tiêu
cần thiết kế
Wp, ws, Rp, As và T
Kiểm tra chỉ
tiêu có hợp lệ
không?
No
Tính Ωp, Ωs
Xác định hàm truyền của
bộ lọc tương tự Ha(s)
Vẽ đáp ứng biên độ - pha
tần số và trễ nhóm của
bộ lọc cần thiết kế.
Yes
BEGIN
End
Xác định hàm truyền
của bộ lọc số HLP(z)
Bài tập lớn môn học Xử lý số tín hiệu
Trang 8
3.2 Các hàm cơ bản:
function [b,a] = u_elipap(N,Rp,As,Omegac);
%unnormalized Eliptic analog Lowpass filter prototype
%--------------------------------------------------------
%[b,a] = u_chblap(N,Rp,Omegac);
% b = numerator polynomial coefficients
% a = denominator polynomial coefficients
% N = Order of the Elliptic Filter
% Rp = Passband ripple in dB,Rp > 0
%Omegac = Cutoff frequency in radians/sec
[z,p,k] = ellipap(N,Rp,As);
a = real(poly(p));
aNn = a(N+1);
p = p*Omegac;
a = real(poly(p));
aNu = a(N+1);
b = real(poly(z));
M = length(b);
bNn = b(M);
z = z*Omegac;
b = real(poly(z));
bNu = b(M);
k=k*(aNu*bNn)/(aNn*bNu);
b0=k;
b=k*b;
function [b,a] = afd_elip(Wp,Ws,Rp,As);
% Analog Lowpass Filter Design :
% b = Numetor coefficients of Ha(s)
% a = denominator oefficients of Ha(s)
% Wp = Passband edge frequency in rad/sec;Wp > 0
% Ws = stpband edge frequency in rad/sec;Ws>Wp > 0
% Rp = Passband ripple in +dB;(Rp > 0 )
% As = stpband attenuation in +dB;(As>0)
if Wp <=0
error('passband adge must be large than 0')
end
if Ws <= Wp
error('passband adge must be large than passband edge')
end
if (Rp <= 0) (As < 0)
error('Pb ripple and/or Sb attenuation must be large than 0')
end
ep = sqrt (10^(Rp/10)-1);
A = 10^(As/20);
OmegaC = Wp;
k= Wp/Ws;
Bài tập lớn môn học Xử lý số tín hiệu
Trang 9
k1 = ep/sqrt(A*A-1);
capk = ellipke([k.^2 1-k.^2]);
capk1 = ellipke([(k1.^2) 1-(k1.^2)]);
N = ceil(capk(1)*capk1(2)/(capk(2)*capk1(1)));
fprintf('\n*** Elliptic Filter order = %2.Of \n',N)
[b,a]=u_elipap(N,Rp,As,OmegaC) ;
function [a,b]=imp_invr(c,d,T);
%Bien doi tuong tu sang so
[R,p,k]=residue(c,d);
P=exp(p*T);
[a,b]=residue(R,p,k);
b=real(b');a=real(a');
function [C,B,A] = dir2par(b,a);
M = length(b);N = length(a);
[r1,p1,C] = residuez(b,a);
p = cplxpair(p1,100*eps);
I = cplxcomp(p1,p);
r = r1(I);
K = floor(N/2); B = zeros(K,2); A = zeros(K,3);
if K*2 ==N; %N even, order of A(z)odd, one factor is first order
for i=1:2:N-2
Brow = r(i:1:i+1,:);
Arow = p(i:1:i+1,:);
[Brow,Arow] = residuez(Brow,Arow,[]);
B(fix((i+1)/2),:) = real(Brow);
A(fix((i+1)/2),:) = real(Arow);
end
[Brow,Arow] = residuez(r(N-1),p(N-1),[]);
B(K,:) = [real(Brow) 0]; A(K,:) = [real(Arow) 0];
else
for i=1:2:N-1
Brow = r(i:1:i+1,:);
Arow = p(i:1:i+1,:);
[Brow,Arow] = residuez(Brow,Arow,[]);
B(fix((i+1)/2),:) = real(Brow);
A(fix((i+1)/2),:) = real(Arow);
end
end
3.3 Chương trình chính:
thiết kế bộ lọc
% IIR LOWPASS FILTER DESIGN USING IMPULSE INVARIANCE
TRANSFORMATION
function varargout = tieuluan(varargin)
Bài tập lớn môn học Xử lý số tín hiệu
Trang 10
% TIEULUAN M-file for tieuluan.fig
% TIEULUAN, by itself, creates a new TIEULUAN or raises the existing
% singleton*.
%
% H = TIEULUAN returns the handle to a new TIEULUAN or the handle to
% the existing singleton*.
%
% TIEULUAN('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in TIEULUAN.M with the given input arguments.
%
% TIEULUAN('Property','Value',...) creates a new TIEULUAN or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before tieuluan_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to tieuluan_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help tieuluan
% Last Modified by GUIDE v2.5 10-Jun-2009 21:03:58
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @tieuluan_OpeningFcn, ...
'gui_OutputFcn', @tieuluan_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before tieuluan is made visible.
function tieuluan_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to tieuluan (see VARARGIN)
Bài tập lớn môn học Xử lý số tín hiệu
Trang 11
% Choose default command line output for tieuluan
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes tieuluan wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = tieuluan_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
Bài tập lớn môn học Xử lý số tín hiệu
Trang 12
function edit2_Callback(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit2 as text
% str2double(get(hObject,'String')) returns contents of edit2 as a double
% --- Executes during object creation, after setting all properties.
function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function edit3_Callback(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit3 as text
% str2double(get(hObject,'String')) returns contents of edit3 as a double
% --- Executes during object creation, after setting all properties.
function edit3_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
Bài tập lớn môn học Xử lý số tín hiệu
Trang 13
function edit4_Callback(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit4 as text
% str2double(get(hObject,'String')) returns contents of edit4 as a double
% --- Executes during object creation, after setting all properties.
function edit4_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% ANALOG LOWPASS FILTER DESIGN &TRANSFORMING FROM ANALOG
LPF INTO DIGITAL LPF
T=1;
ap = get(handles.edit1,'String');
ap = str2num(ap);
wp=ap*pi;
as = get(handles.edit2,'String');
as = str2num(as);
ws=as*pi;
Rp = get(handles.edit3,'String');
Rp = str2num(Rp);
As = get(handles.edit4,'String');
As = str2num(As);
OmegaP = wp/T;
OmegaS = ws/T;
ep = sqrt(10^(Rp/10)-1);
Ripple = sqrt(1/(1+ep*ep));
Bài tập lớn môn học Xử lý số tín hiệu
Trang 14
Attn = 1/(10^(As/20));
[cs,ds] = afd_elip(OmegaP,OmegaS,Rp,As);
[b,a] = imp_invr(cs,ds,T);
[C,B,A] = dir2par(b,a);
[N,wn] = ellipord(wp/pi,ws/pi,Rp,As);
% thiet ke bo loc so
figure(2); subplot(1,1,1);
[db,mag,pha,grd,w] = freqz_m(b,a);
subplot(2,2,1); plot(w/pi,mag); title('Magnitude response')
xlabel('frequency in pi units'); ylabel('|H|'); axis([0,1,0,1.1])
set(gca,'XTickMode','manual','XTick',[0,ap,as,1]);
set(gca,'YTickmode','manual','YTick',[0,Attn,Ripple,1]); grid
subplot(2,2,3); plot(w/pi,db); title('Magnitude in dB');
xlabel('frequency in pi units'); ylabel('dB'); axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,ap,as,1]);
set(gca,'YTickmode','manual','YTick',[-50,-15,-1,0]); grid
set(gca,'YTickLabelMode','manual','YTickLabels',['50';'15';' 1';' 0'])
subplot(2,2,2); plot(w/pi,pha/pi); title('Phase Response')
xlabel('frequency in pi units'); ylabel('pi units'); axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,ap,as,1]);
set(gca,'YTickmode','manual','YTick',[-1,0,1]); grid
subplot(2,2,4); plot(w/pi,grd); title('Group Delay')
xlabel('frequency in pi units'); ylabel('Samples'); axis([0,1,0,15])
set(gca,'XTickMode','manual','XTick',[0,ap,as,1]);
set(gca,'YTickmode','manual','YTick',[0:5:15]); grid
% Diem cuc diem khong cua so
% Plots of Pole, Zero and Impulse Response for Digital Lowpass Filter
% Pole and Zero
z = roots(b);
p = roots(a);
[h1,t] = impz(b,a,100);
figure(3); subplot(1,1,1)
subplot(2,1,1);
zplane(z,p); grid;
title('Pole and Zero for Digital Lowpass Filter')
% Impulse Response
subplot(2,1,2);
stem(t,h1); grid;
title(['Impulse Response for Digital Lowpass Filter order = ',num2str(N)])
Bài tập lớn môn học Xử lý số tín hiệu
Trang 15
3.4 Kết quả đạt được:
Bài tập lớn môn học Xử lý số tín hiệu
Trang 16
(Hình trên: Đáp ứng biên độ, đáp ứng pha và trễ nhóm của Bộ lọc thông thấp số).
Bài tập lớn môn học Xử lý số tín hiệu
Trang 17
4. Kết luận :
Việc thiết kế bộ lọc số dung Bộ lọc ELLIPTIC và biến đổi bất biến xung có những ưu
điểm sau:
- Các bộ lọc ELLIPTIC thường cân bằng gợn sóng ở dải thông cũng như dải
chắn. Chúng có các đặc trưng đáp ứng biên độ tương tự như các bộ lọc FIR
cân bằng gợn song. Vì vậy các bộ lọc elliptic là các bộ lọc tối ưu trong đó đạt
được bậc tối thiểu N đối với các chỉ tiêu đã cho. Khắc phục được nhược điểm
của bộ lọc Butterworth và Chebyshev.
- Những ưu điểm của bất biến xung đó là thiết kế được ổn định, tần số và w
có quan hệ tuyến tính với nhau. Nhưng nhược điểm đó là một vài nơi bị chồng
phổ trong đáp ứng tần số tương tự và trong một số trường hợp hiện tượng
chồng phổ này là không chấp nhận được.
Các file đính kèm theo tài liệu này:
- loc_thong_thap_iir_bat_bien_xung_0736.pdf