Đề 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
Trang 1Bài tập lớn mụn học Xử lý số tớn hiệu
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ố đải thụng wp
- tần số đải chắn ws
- Độ gợn súng dải thụng Rp - Độ suy hao dải chắn As
và tham số
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ự â, và â,
Bước 3: Thiết kế bộ lọc thụng thấp tương tự cú hàm truyền H(s) thỏa món cỏc chỉ tiờu tương tự trờn cỏc điểm Q,, Qs
Bước 4: Biến đổi bộ lọc thụng thấp tương tự H,(s) thành bộ lọc thụng thấp số Hrp(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(@) = Hie(Z)| 27 =")
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 TIR 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 AED chỉ dựng cho cỏc bộ lọc thụng thõp Trong khi ta can thiệt kờ cỏc bộ lọc chọn tõn khỏc (thụng Cao, thụng đả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 lac sộ mong mueộn
2 Anh xạ mạch lọc thụng thấp tương tự từ mặt phẳng -8 sang m/Êpl⁄‹g -z vụ sau G& ,p phEp bin đử d{ †Œ @ểt!o th,nh mĩch lắc sộ mong muốn; Trong 6ó phEb biến đốI ucông cụ chủ chốt Cả hai kỹ thuật trờn được mụ tả trờn sơ đồ sau đõy:
Trang 2
Bài tập lớn mụn học Xử lÿ số tớn hiệu Kũ thuẾ 1:
Thi@kOm' ch lac Áp dụng biến đổi A | Áp dụng biến đổi foo
thụng thấp tương tự dải tần S —> S mach locs—>Z |Mich lac sộ IIR mong muộn
Kũ thuỄt 2:
Thi@ kOm' ch lac Ap dung biộn Ap dung biộn
thụng thấp tương đụi mạch lọc đụi dải tan M'ch lọc số & SoZ Z>Z IIR mong muộn
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ị đưới dạng bỡnh phương hoặc theo thang dB như trờn hỡnh 2.1
Đối vớ Ă df{ thông: TS} <1 ;:lé|<9, (2.1)
+Ê
Đ ði vớ di che: 0<|#,(/o}° “ 5 2, <|0) (22)
Trong @& Â ly theng sộ mEp mô cfia dĐfi theng, Qp lu th sộ chia dĐi thông @ bằng
rad/%c, A lự@ suy gifm của di ch/B vụOs li (Ơi số c3 chia di chAB Cỏc đặc tớnh này được biểu diễn trờn hznh 2.1
Như vậy ta sẽ tỡm được:
|H, (JQ)? = wa Ă khi: Q=9, (2.3) os 1
Vụ |H, (JQ)? = 2 3 khi Q=, (2.4)
C,c thông số e vụ A liõn hOvii c,c theng s8 Rp vi As dugc tinh nang don vi dB
C,c theng sộ nuy quan hOvi i nhau qua công thức:
R,= “10108 4 5 > e= v0" -1 (2.5)
+ể
Vụ As = A008 9 <> > A=10*!” (2.6)
Ngoại ra đ gĩ n sóng ử, vụ ử, tJệtrPtuyệ @ài Liõn hOvii  vA beng c,c hO
thức:
(2.7)
Trang 3Bài tập lớn mụn học Xử lý số tớn hiệu
Đ ,p ong th sộ H,(jQ) cia mach lọc tương tự liờn hệ với hàm truyền H,(s) của nó bằng hOthec:
H,GQ) = H.(5)| ,-j0
Nan |W, G0)’ = H,(s)H,(—s} „ (29)
Hay H,(s)H,(-5)=|Hua)| [oom (2.10)
IH,09); 1 1 1+ứ? 1 AE 0 Q, Qs oO
Hỡnh 2.1 : Cỏc đặc tớnh của bộ lọc Analog thụng thấp
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 jO Để mạch lọc tương tự ồn định và nhõn quả thi
c,c đún cực của hụm truyền của nó b3% buộc phfi nằm ộ nộa tr,i cra mAEphiag -s C,c @On kheng của H,(s) có thểnằm @8) @ó trong m/Epl⁄4g -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 jO Ta sỈ chọn c,c
@On không của H,(s)H,(-s) nằm bờn trong ho/E ngay trõn trục jO như cỏc @Gn 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 ở đải thụng cũng như đả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:
(2.22)
Trong đú: N: bậc; epsilon: gợn súng dải thụng; U„(Q là bậc của hàm Jacobian elliptic thứ-Nẹ
Trang 4Cỏc kiểu đỏp ứng đối với N chẵn và lẻ ở hỡnh dưới đõy: |H, G2) |H,GQ) 1 1 2 1 Nlẻ 1 N chan l+e l+Ê 1 J A 224 Q, Tớnh toỏn cho bộ lọc bậc N: Ne K (k)K (Jl-k;) K (k,)K (W1-k*) % do =9: K(x) = [———— O oVXl-x sin“ỉ
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 va gon súng dải thụng R; và Suy giảm ở dải chắn A, Cho kột qua diộ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 @, 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 â, Hàm dưới đõy, được gọi là U_elipap(N,R;, As, Omegac) Chỳng ta thiết kế một bộ lọc Elliptic chưa chuẩn hoỏ nú trả lại H;(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ố v 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
Trang 5Bài tập lớn mụn học Xử lý số tớn hiệu
Biến đổi bấtbiế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 chon tan analog Sau đú Lấy mẫu hạ(Đ ở cỏc chu kỳ lõy mẫu T ta thu được h(n): h(n)=l =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:
io jQT
@=QT hoặc e/ =e!
Do z=e!đ trộn đường trũn don vi va s=j Q 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) va H,(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ị ) 6ứ >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 đả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ị
Tinh 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 tan-hitu han 4 Nộu H,(jQ)=H,(jo/T)=0 for |Ol>z/7 then
H(e”) =# Im{z} Unit circle Many-to-one transformation
Hang œaz —” giles
Relzl
s-plane z-plane
Hỡnh 2.8 Ánh xạ mặt phẳng phức trong biờn đổi bất biến xung Ưu điểm của phương phỏp này:
Trang 6Nhữ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,@„Rp và As, chỳng ta muốn xỏc định H(z) bằng cỏch thiết 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:
Qp=ap/T, Os=œ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 v OR,
H,(s)=
S— Dy
4, Biộn d6i cde diộm eye analog {pk} thanh cdc diộm eye s6 (ePKT} 48 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:
h lọc thụng thõp IIR với cỏc chỉ tiờu sau: ơ
Tõn sụ cắt của dai thong (Passband Edge Frequency)@p -Tõn sụ cắt của dải chắn (Stopband Edge Frequency) œ; -Độ gợn súng của dải thụng (Passband Ripple) R„ -Độ suy giảm của dải chắn (Stopband Attenuation) Ay
3.1 Sơ đồ thuật toỏn:
Trang 7
Bài tập lớn mụn học Xử lÿ số tớn hiệu Nhập cỏ cõn thiết kế Wp, Ws Rp, As va T iC
No Kiộm tra chi
Trang 83.2 Cỏc hàm cơ bản:
function [b,a] = u_elipap(N,Rp,As,Omegac);
Yunnormalized Eliptic analog Lowpass filter prototype
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)
Trang 9Bài tập lớn mụn học Xử lý số tớn hiệu
k1 = ep/sqrt(A*A-1);
capk = ellipke([k.^2 1-k.^2]);
capkl = ellipke([(K1I.^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);
[rl,p1,C] = residuez(b,a);
p = cplxpair(p1,100*eps); 1= cplxcompQ@1I,p); r=ri();
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
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 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 Chwong trinh chinh: thiết kế bộ lọc
% IIR LOWPASS FILTER DESIGN USING IMPULSE INVARIANCE TRANSFORMATION
function varargout = tieuluan(varargin)
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 anew 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 argumen(s
%
% TIEULUAN(Property’,'Value', ) creates anew 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_OpeningFen', @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)
Trang 11Bài tập lớn mụn học Xử lý số tớn hiệu
% 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.figure!);
% - 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 editl_Callback(hObject, eventdata, handles)
% hObject handle to editl (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 edit! as text
% str2double(get(hObject,'String')) returns conten(s of editI as a double % - Executes during object creation, after setting all properties
function editl_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit! (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFens called % Hint: edit controls usually have a white background on Windows
% See ISPC and COMPUTER
Trang 12function 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 ispe
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 CreateFens called % Hint: edit controls usually have a white background on Windows
% See ISPC and COMPUTER
Trang 13Bài tập lớn mụn học Xử lý số tớn hiệu
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 CreateFens called % Hint: edit controls usually have a white background on Windows
% See ISPC and COMPUTER
if ispe
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 pushbutton! (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles — structure with handles and user data (see GUIDATA)
Trang 14Attn = 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(IHI); axis({0,1,0,1.1])
set(gca,'"XTickMode','manual','XTick',[0,ap,as,1]);
set(gca,'Y Tickmode',manuaT',"Y Tick',[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,"Y Tickmode','manual','Y Tick',[-50,-15,-1,0]); grid
set(gca,"Y TickLabelMode','manual',"Y TickLabels',['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,"Y Tickmode','manual','Y Tick’,[-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 = 'snum2str(N)])
Trang 15Bài tập lớn mụn học Xử lý số tớn hiệu 3.4 Kết quả đạt được:
IIR LOWPASS FILTER DESIGN
USING IMPULSE INVARIANCE TRANSFORMATION
GVHD: TS MGO VAN SY Í SVTH: KS VU THE DUAN Wp 02 pi (rad/s) bó pi (rad/s) me PROTOCOL: ELIPTIC Rp 1 db As 18 db
30 -OC THONG THAP TUONG TU BC LOC THOKG THAP SO
Trang 16
ew nem AQMD
(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ố)
Edit View Insert Tools Desktop Window Help
SES 8 8Q09/ 2/0
Trang 17
Bài tập lớn mụn học Xử ly số tớn hiệu
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ư dai 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 gon song Vi vay cdc b6 loc 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