18
Luận văn Đề tài: Thiết kế blc thông thp theo cu trúc IIR sdng blc ELLIPTIC và phương pháp biến đổi bt biến xung

Loc Thong Thap Iir Bat Bien Xung 0736

  • Upload
    vu-huy

  • View
    62

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Loc Thong Thap Iir Bat Bien Xung 0736

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

Page 2: Loc Thong Thap Iir Bat Bien Xung 0736

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:

Page 3: Loc Thong Thap Iir Bat Bien Xung 0736

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

;11

1 2

(2.1)

§èi víi d¶i chÆn: QA

jH sa ;10 22 (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

12

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:

1101

1log10 10210

PR

PR

(2.5)

Vµ 20210 101log10 SA

S 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

12

1

1

12

11

11

(2.7)

Vµ 2

1

1

2 11

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:

Page 4: Loc Thong Thap Iir Bat Bien Xung 0736

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 HsHsH2

(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

211

2

1A

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

cN

a

UjH

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

Page 5: Loc Thong Thap Iir Bat Bien Xung 0736

Bài tập lớn môn học Xử lý số tín hiệu

Trang 4

1 21

1

2

1A

)( jHa

c

N lẻ 1

2

1A

)( jHa

c

211

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

022 sin1

)(

xdxK

121

A

k

s

ck

)1()(

)1()(2

1

21

kKkK

kKkKN

Page 6: Loc Thong Thap Iir Bat Bien Xung 0736

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)( TjHT

eH aj

Ư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

Page 7: Loc Thong Thap Iir Bat Bien Xung 0736

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:

N

kk

ka ps

RsH 1)(

Page 8: Loc Thong Thap Iir Bat Bien Xung 0736

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)

Page 9: Loc Thong Thap Iir Bat Bien Xung 0736

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;

Page 10: Loc Thong Thap Iir Bat Bien Xung 0736

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)

Page 11: Loc Thong Thap Iir Bat Bien Xung 0736

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(varargin1) gui_State.gui_Callback = str2func(varargin1); end if nargout [varargout1: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)

Page 12: Loc Thong Thap Iir Bat Bien Xung 0736

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 varargout1 = 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

Page 13: Loc Thong Thap Iir Bat Bien Xung 0736

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

Page 14: Loc Thong Thap Iir Bat Bien Xung 0736

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));

Page 15: Loc Thong Thap Iir Bat Bien Xung 0736

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)])

Page 16: Loc Thong Thap Iir Bat Bien Xung 0736

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:

Page 17: Loc Thong Thap Iir Bat Bien Xung 0736

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

Page 18: Loc Thong Thap Iir Bat Bien Xung 0736

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.