1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

9 714 13

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 122,26 KB
File đính kèm DSP2.rar (12 KB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Trang 2

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

Trang 3

% 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

%

Trang 4

-% [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];

Trang 5

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

Trang 6

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ị:

Trang 7

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

Trang 8

b.Bộ lọc Chebyshev-II.

*** Chebyshev-2 Filter Order = 3

c Bộ lọc Elliptic

*** Elliptic Filter Order = 2

Trang 9

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

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w