数字滤波器设计及应用综合实验Word格式.docx
- 文档编号:15988983
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:16
- 大小:217.28KB
数字滤波器设计及应用综合实验Word格式.docx
《数字滤波器设计及应用综合实验Word格式.docx》由会员分享,可在线阅读,更多相关《数字滤波器设计及应用综合实验Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
(1)用脉冲响应不变法设计巴特沃斯数字滤波器。
该实验所需M文件如下:
①、butterworth低通滤波器原型设计函数:
function[b,a]=afd_butt(Wp,Ws,Rp,As)
N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws)))
fprintf('
\nButterworthFilterOrder=%2.0f\n'
N)
OmegaC=Wp/((10^(Rp/10)-1)^(1/(2*N)))
[b,a]=u_buttap(N,OmegaC)
②、非归一化Butterworth模拟低通滤波器设计函数:
function[b,a]=u_buttap(N,Omegac);
[z,p,k]=buttap(N);
p=p*Omegac;
k=k*Omegac^N;
B=real(poly(z));
b=k*B;
a=real(poly(p));
③、利用脉冲响应不变法从模拟到数字滤波器变换函数:
function[b,a]=imp_invr(c,d,T)
[R,p,k]=residue(c,d);
p=exp(p*T);
[b,a]=residuez(R,p,k);
b=real(b'
);
a=real(a'
④、频率响应函数freqz的修正:
function[db,mag,pha,w]=freqz_m(b,a);
[H,w]=freqz(b,a,1000,'
whole'
H=(H(1:
501))'
;
w=(w(1:
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
本实验程序如下:
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
As=15;
T=1;
OmegaP=wp/T;
OmegaS=ws/T;
[cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As);
[b,a]=imp_invr(cs,ds,T)
[db,mag,pha,w]=freqz_m(b,a);
subplot(2,1,1);
plot(w/pi,mag);
title('
digitalfilterMagnitudeResponse'
)
axis([0,1,0,1.1])
subplot(2,1,2);
plot(w/pi,db);
digitalfilterMagnitudeinDB'
axis([0,1,-40,5]);
结果:
N1=
5.8858
N=
6
ButterworthFilterOrder=6
OmegaC=
0.7032
b=
0.00000.00060.01010.01610.00410.0001
a=
1.0000-3.36355.0684-4.27592.1066-0.57060.0661
本实验波形图如下:
(2)用双线性变换法设计切比雪夫数字滤波器。
本实验所需M文件如下:
非归一化切比雪夫I型模拟低通滤波器原型设计:
function[b,a]=u_chb1ap(N,Rp,Omegac);
[z,p,k]=cheb1ap(N,Rp);
aNn=a(N+1);
aNu=a(N+1);
k=k*aNu/aNn;
OmegaP=(2/T)*tan(wp/2);
OmegaS=(2/T)*tan(ws/2);
ep=sqrt(10^(Rp/10)-1);
Ripple=sqrt(1/(1+ep*ep));
Attn=1/(10^(As/20));
A1=1/Attn;
a1=sqrt(A1*A1-1)/ep;
a2=OmegaS/OmegaP;
N=ceil(logm(a1+sqrt(a1*a1-1))/logm(a2+sqrt(a2*a2-1)));
\nChebyshevFilterOrder=%2.0f\n'
[cs,ds]=u_chb1ap(N,Rp,OmegaP);
[b,a]=bilinear(cs,ds,1/T)
axis([0,1,0,1.1])
ChebyshevFilterOrder=4
0.00180.00730.01100.00730.0018
1.0000-3.05433.8290-2.29250.5507
本实验波形如下:
(3)用双线性变换法设计巴特沃斯数字滤波器,并将直接型结构转换成级联型结构。
将直接形式变为级联形式函数:
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);
ifN>
M
b=[bzeros(1,N-M)];
elseifM>
N
a=[azeros(1,M-N)];
else
NM=0;
end
K=floor(N/2);
B=zeros(K,3);
A=zeros(K,3);
ifK*2==N
b=[b0];
a=[a0];
end
broots=cplxpair(roots(b));
aroots=cplxpair(roots(a));
fori=1:
2:
2*K
Brow=broots(i:
1:
i+1,:
Brow=real(poly(Brow));
B(fix(i+1)/2,:
)=Brow;
Arow=aroots(i:
Arow=real(poly(Arow));
A(fix(i+1)/2,:
)=Arow;
[b,a]=bilinear(cs,ds,T)
[b0,B,A]=dir2cas(b,a)
5.3044
6
ButterworthFilterOrder=6
0.7273
0.00060.00350.00870.01160.00870.00350.0006
1.0000-3.31434.9501-4.14332.0275-0.54580.0628
B=
1.00002.03351.0338
1.00001.99961.0000
1.00001.96690.9673
A=
1.0000-0.94590.2342
1.0000-1.05410.3753
1.0000-1.31430.7149
2.FIR数字滤波器设计
functionhd=ideal_lp(wc,M);
alpha=(M-1)/2;
n=[0:
(M-1)];
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
f1=100;
f2=200;
fs=2000;
m=(0.3*f1)/(fs/2);
M=round(8/m);
N=M-1;
b=fir1(N,0.5*f2/(fs/2));
figure
(1)
[h,f]=freqz(b,1,512);
%[H,W]=freqz(B,A,N)
plot(f*fs/(2*pi),20*log10(abs(h)))
xlabel('
频率/赫兹'
ylabel('
增益/分贝'
滤波器的增益响应'
figure
(2)
subplot(211)
t=0:
1/fs:
0.5;
s=sin(2*pi*f1*t)+sin(2*pi*f2*t);
plot(t,s);
时间/秒'
幅度'
信号滤波前时域图'
subplot(212)
Fs=fft(s,512);
AFs=abs(Fs);
f=(0:
255)*fs/512;
plot(f,AFs(1:
256));
信号滤波前频域图'
figure(3)
sf=filter(b,1,s);
subplot(211)
plot(t,sf)xlabel('
信号滤波后时域图'
axis([0.20.5-22]);
subplot(212)
Fsf=fft(sf,512);
AFsf=abs(Fsf);
plot(f,AFsf(1:
256))
信号滤波后频域图'
本实验波形如图:
3.利用数字滤波器实现DTMF信号的提取
双音多频(DualToneMultiFrequency)信号是音频电话中的拨号信号,每一个数字(0-9)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字滤波器 设计 应用 综合 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)