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

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.

pdf18 trang | Chia sẻ: lylyngoc | Lượt xem: 3971 | Lượt tải: 3download
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 ch­a 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è l­u 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    2jH 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:

  • pdfloc_thong_thap_iir_bat_bien_xung_0736.pdf