Exam Final DSP Bài Tập Xử Lý Tín Hiệu Số Cuối Kỳ

9 707 13
Exam Final DSP Bài Tập Xử Lý Tín Hiệu Số Cuối Kỳ

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài Tập DSP2 (Xử Lý Tín Hiệu Số Cuối Kỳ) Trường Đại Học Bách Khoa Đà NẵngThiết Kế Bộ Lọc IIRĐiện Tử Viễn ThôngThiết kế bộ lọc số IIR thông cao thõa mãn các ràng buộc sau: wp = 0.65π; ws = 0.45π; Rp = 1dB; As = 15dB. Sinh viên thực hiện những yêu cầu sau:1.Thiết kế bằng cách sử dụng bộ lọc ChebyshevI, phép biến đổi song tuyến tính (bilinear transform), hàm zmapping (để chuyển từ bộ lọc số thông thấp sang thông cao).2.Làm lại yêu cầu 1 nhưng với bộ lọc Butterworth, ChebyshevII, và Elliptic (trong trường hợp này , để biểu diễn kết quả, có thể chỉ cần vẽ đồ thì biên độ theo dB). Nhận xét.Chú ý: Các đồ thị cần đươc biểu diển rõ ràng

BÀI TẬP XỬ LÝ TÍN HIỆU SỐ 2 SVTH: Lê Thành Phú. Lớp 11DT1. Nhóm 39. MSSV: 106110097 Yêu cầu: Thiết kế bộ lọc số IIR thông cao thõa mãn các ràng buộc sau: wp = 0.65π; ws = 0.45π; Rp = 1dB; As = 15dB. Sinh viên thực hiện những yêu cầu sau: 1. Thiết kế bằng cách sử dụng bộ lọc Chebyshev-I, phép biến đổi song tuyến tính (bilinear transform), hàm zmapping (để chuyển từ bộ lọc số thông thấp sang thông cao). 2. Làm lại yêu cầu 1 nhưng với bộ lọc Butterworth, Chebyshev-II, và Elliptic (trong trường hợp này , để biểu diễn kết quả, có thể chỉ cần vẽ đồ thì biên độ theo dB). Nhận xét. Chú ý: Các đồ thị cần đươc biểu diển rõ ràng. Thực hiện: 1. Bộ lọc Chebyshev-I % Highpass digital: % whp=0.65*pi % whs=0.45*pi % Rp=1dB % As=15dB % 1. Use chebyshev I design lowpass, bilinear transform % function zmapping (convert lowwpaas to highpass % Chon tan so cat bo loc thong thap wc=0.2*pi %CODE: %Chương trình chính: wp = 0.65*pi; ws= 0.45*pi; Rp = 1; % Passband ripple in dB As=15; %Stopband attenuation in dB [b,a] = cheb1hpf(wp,ws,Rp,As); [C,B,A] = dir2cas(b,a) [db,mag,pha,grd,w] = freqz_m(b,a); magRp = (10^(-Rp/20)); %plot %Amplitude Response subplot(2,2,1); plot(w/pi,mag); axis([0,1,0,1.2]); grid title('Amplitude Response'); xlabel('frequency in pi units'); ylabel('|Hr(w)|'); set(gca,'XTickMode','manual','Xtick',[0;ws/pi;wp/pi;1]); set(gca,'YTickMode','manual','Ytick',[0;magRp;1]); %Magnitude Response subplot(2,2,2); plot(w/pi,db); axis([0,1,-30,10]); grid title('Magnitude Response'); xlabel('frequency in pi units'); ylabel('Decibels'); set(gca,'XTickMode','manual','Xtick',[0;ws/pi;wp/pi;1]); set(gca,'YTickMode','manual','Ytick',[-30;-As;-1;0]); %Phase Response subplot(2,2,3); plot(w/pi,pha/pi); axis([0,1,-1,1]); grid title('Phase Response'); xlabel('frequency in pi units'); ylabel('Angle(Hr(w))'); set(gca,'XTickMode','manual','Xtick',[0;ws/pi;wp/pi;1]); set(gca,'YTickMode','manual','Ytick',[-1; 0; 1]); %Các hàm sử dụng trong code %Hàm thiết kế bộ lọc thông cao theo Chebyshev-I function [b,a] = cheb1hpf(wp,ws,Rp,As) % IIR Highpass filter design using Chebyshev-1 prototype % function [b,a] = cheb1hpf(wp,ws,Rp,As) % b=Numerator polynomial of the highpass filter % a=Denominator polynomial of the highpass filter %wp=Passband frequency in radians %ws=Stopband frequency in radians %Rp=Passband ripple in dB %As=Stopband attenuation in dB % % Determine the digital lowpass cutoff frequencies: wplp = 0.2*pi; alpha = -(cos((wplp+wp)/2))/(cos((wplp-wp)/2)); wslp = angle(-(exp(-j*ws)+alpha)/(1+alpha*exp(-j*ws))); % % Compute Analog lowpass Prototype Specifications: T=1;Fs=1/T; OmegaP = (2/T)*tan(wplp/2); OmegaS = (2/T)*tan(wslp/2); % Design Analog Chebyshev Prototype Lowpass Filter: [cs,ds] = afd_chb1(OmegaP,OmegaS,Rp,As); % Perform Bilinear transformation to obtain digital lowpass [blp,alp] = bilinear(cs,ds,Fs); % Transform digital lowpass into highpass filter Nz = -[alpha,1]; Dz = [1,alpha]; [b,a] = zmapping(blp,alp,Nz,Dz); %Hàm Analog Lowpass Filter Design: Chebyshev-1 function [b,a] = afd_chb1(Wp,Ws,Rp,As); % Analog Lowpass Filter Design: Chebyshev-1 % % [b,a] = afd_chb1(Wp,Ws,Rp,As); % b=Numerator coefficients of Ha(s) % a=Denominator coefficients of Ha(s) %Wp=Passband edge frequency in rad/sec; Wp > 0 %Ws=Stopband edge frequency in rad/sec; Ws > Wp > 0 %Rp=Passband ripple in +dB; (Rp > 0) %As=Stopband attenuation in +dB; (As > 0) % if Wp <= 0 error('Passband edge must be larger than 0') end if Ws <= Wp error('Stopband edge must be larger than Passband edge') end if (Rp <= 0) | (As < 0) error('PB ripple and/or SB attenuation ust be larger than 0') end ep = sqrt(10^(Rp/10)-1); A = 10^(As/20); OmegaC = Wp; OmegaR = Ws/Wp; g = sqrt(A*A-1)/ep; N=ceil(log10(g+sqrt(g*g-1))/log10(OmegaR+sqrt(OmegaR*OmegaR-1))); fprintf('\n*** Chebyshev-1 Filter Order = %2.0f \n',N) [b,a]=u_chb1ap(N,Rp,OmegaC); % Unnormalized Chebyshev-1 Analog Lowpass Filter Prototype function [b,a] = u_chb1ap(N,Rp,Omegac); % Unnormalized Chebyshev-1 Analog Lowpass Filter Prototype % % [b,a] = u_chb1ap(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] = cheb1ap(N,Rp); a = real(poly(p)); aNn = a(N+1); p=p*Omegac; a = real(poly(p)); aNu = a(N+1); k=k*aNu/aNn; b0 = k; B = real(poly(z)); b = k*B; % Frequency band Transformation from Z-domain to z-domain % Chuyen tu bo loc thong thap sang thong cao function [bz,az] = zmapping(bZ,aZ,Nz,Dz) % Frequency band Transformation from Z-domain to z-domain % % [bz,az] = zmapping(bZ,aZ,Nz,Dz) % performs: % b(z) b(Z)| % = | N(z) % a(z) a(Z)|@Z = % D(z) % bNzord = (length(bZ)-1)*(length(Nz)-1); aDzord = (length(aZ)-1)*(length(Dz)-1); bzord = length(bZ)-1; azord = length(aZ)-1; bz = zeros(1,bNzord+1); for k = 0:bzord pln = [1]; for l = 0:k-1 pln = conv(pln,Nz); end pld = [1]; for l = 0:bzord-k-1 pld = conv(pld,Dz); end bz = bz+bZ(k+1)*conv(pln,pld); end az = zeros(1,aDzord+1); for k = 0:azord pln = [1]; for l = 0:k-1 pln = conv(pln,Nz); end pld = [1]; for l = 0:azord-k-1 pld = conv(pld,Dz); end az = az+aZ(k+1)*conv(pln,pld); end %Hàm freqz_m function [db,mag,pha,grd,w] = freqz_m(b,a); % Modified version of freqz subroutine % % [db,mag,pha,grd,w] = freqz_m(b,a); % db = Relative magnitude in dB computed over 0 to pi radians % mag = absolute magnitude computed over 0 to pi radians % pha = Phase response in radians over 0 to pi radians % grd = Group delay over 0 to pi radians % w = 501 frequency samples between 0 to pi radians % b = numerator polynomial of H(z) (for FIR: b=h) % a = denominator polynomial of H(z) (for FIR: a=[1]) % [H,w] = freqz(b,a,1000,'whole'); H = (H(1:1:501))'; w = (w(1:1:501))'; mag = abs(H); db = 20*log10((mag+eps)/max(mag)); pha = angle(H); % pha = unwrap(angle(H)); grd = grpdelay(b,a,w); % grd = diff(pha); % grd = [grd(1) grd]; % grd = [0 grd(1:1:500); grd; grd(2:1:501) 0]; % grd = median(grd)*500/pi % Hàm Cascade Form direct2 function [b0,B,A]=dir2cas(b,a); b0=b(1);b=b/b0; a0=a(1);a=a/a0; b0=b0/a0; M=length(b); N=length(a); if N>M b=[b zeros(1,N-M)]; elseif M>N a=[a zeros(1,M-N)];N=M; else NM=0; end K=floor(N/2); B=zeros(K,3); A=zeros(K,3); if K*2==N; b=[b 0]; a=[a 0]; end broots=cplxpair(roots(b)); aroots=cplxpair(roots(a)); for i=1:2:2*K Brow=broots(i:1:i+1,:) Brow=poly(Brow) B(fix((i+1)/2),:)=Brow; Arow=aroots(i:1:i+1,:); Arow=real(poly(Arow)); A(fix((i+1)/2),:)=Arow; end Kết quả: a. *** Chebyshev-1 Filter Order = 3 C = 0.0518 B = 1.0000 -2.0000 1.0000 1.0000 -1.0000 0 A = 1.0000 0.7477 0.6387 1.0000 0.5351 0 Suy ra Hàm H(z). H(z)= b. Đồ thị: 2.Trường hợp sử dụng bộ lọc Butterworth, Chebyshev-II, và Elliptic Cách thiết kế tương tự với bộ lọc Chebyshev-I nhưng cần sử dụng bộ các hàm tương ứng với mỗi bộ lọc. Kết quả: a.Bộ lọc Butterworth. *** Butterworth Filter Order = 4 b.Bộ lọc Chebyshev-II. *** Chebyshev-2 Filter Order = 3 c. Bộ lọc Elliptic *** Elliptic Filter Order = 2 Nhận xét: - Các bộ lọc số thu được thỏa các chỉ tiêu thiết kế. -Các phương pháp đều thỏa mãn As=15dB - Đáp ứng của bộ lọc Butterworth là đơn điệu trong dải thông. -Sử dụng bộ lọc Chebyshev-II đáp ứng gợn trong dải chắn và đơn điệu trong dải thông. -Bộ lọc Elliptic có bậc nhỏ nhất. Là bộ lọc tối ưu, nhưng nghiên cứu và thiết kế phức tạp. . BÀI TẬP XỬ LÝ TÍN HIỆU SỐ 2 SVTH: Lê Thành Phú. Lớp 11DT1. Nhóm 39. MSSV: 106110097 Yêu cầu: Thiết kế bộ lọc số IIR thông cao thõa mãn các ràng buộc sau: . dir2cas(b,a) [db,mag,pha,grd,w] = freqz_m(b,a); magRp = (10^(-Rp /20 )); %plot %Amplitude Response subplot (2, 2,1); plot(w/pi,mag); axis([0,1,0,1 .2] ); grid title('Amplitude Response'); xlabel('frequency. = 0 .2* pi; alpha = -(cos((wplp+wp) /2) )/(cos((wplp-wp) /2) ); wslp = angle(-(exp(-j*ws)+alpha)/(1+alpha*exp(-j*ws))); % % Compute Analog lowpass Prototype Specifications: T=1;Fs=1/T; OmegaP = (2/ T)*tan(wplp /2) ; OmegaS

Ngày đăng: 12/05/2015, 15:15

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan