Đề 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ế :
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 =")
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ơ
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 ]
Trang 2
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
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)
+ể
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
IH,09);
1
1
1+ø?
1
AE
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 3
Trang 4Các kiểu đáp ứng đối với N chẵn và lẻ ở hình dưới đây:
Q,
Tính toán cho bộ lọc bậc N:
Ne K (k)K (Jl-k;)
K (k,)K (W1-k*)
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 4
Trang 5Bài tập lớn môn học Xử lý số tín hiệu
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:
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:
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
Relzl
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 5
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ế:
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:
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 6
Trang 7Bà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
tiêu có hợp lệ
khânz?
Yes
Tinh Qy, Q,
Xác định hàm truyền của
bộ lọc tương tự Hs)
Xác định hàm truyền của bộ lọc số Hịp(s)
bộ lọc cai
\Vẽ đáp ứng biên độ - pha tân số và trễ nhóm của
in thiét ké
Trang 7
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)
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;
Trang 8
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 9
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 10