数字信号处理实验报告.docx
《数字信号处理实验报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
![数字信号处理实验报告.docx](https://file1.bdocx.com/fileroot1/2022-10/12/25bdec7f-ec4d-49f6-be43-3feba6c6bccf/25bdec7f-ec4d-49f6-be43-3feba6c6bccf1.gif)
数字信号处理实验报告
盛年不重来,一日难再晨。
及时宜自勉,岁月不待人。
郑州航空工业管理学院
《数字信号处理》实验报告
专业电子信息工程
学号
姓名
实验一数字滤波器的结构
一、实验目的
(1)加深对数字滤波器分类与结构的了解;
(2)明确数字滤波器的基本结构及其相互间的转换方法;
(3)掌握用MATLAB进行数字滤波器各种结构相互间转换的子函数及程序编写方法。
二、实验原理
一个离散LSI系统可用系统函数来表示;
也可用差分方程来表示:
当至少有一个不为0时,则在有限z平面上存在极点,表示一个IIR数字滤波器;当全都为0时,系统不存在极点,表示一个FIR系统。
IIR数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、级联型和并联型。
FIR数字滤波器的基本结构分为横截型、级联型、并联型、、线性相位型和频率抽样型。
三、实验仪器
微型计算机、MATLAB
四、实验内容
(1)已知一个IIR系统的系统函数为
将其从直接型转换为级联型和并联型结构,并画出各种结构的流程图。
(2)已知一个FIR系统的系统函数为
将其从横截型转换为级联型结构,并画出各种结构的流程图。
五、实验程序
num=[0,10,0];
den=[1,-3,2];
[z,p,k]=tf2zp(num,den)
[b,a]=zp2tf(z,p,k)
num=[1.9,2.5,2.5,1.9];
den=[1,-6,5,-0.4];
[sos,g]=tf2sos(num,den)
[b,a]=sos2tf(sos,g)
z=[1,-3]';
p=[2,-4]';
k=5;
[sos,g]=zp2sos(z,p,k)
[z1,p1,k1]=sos2zp(sos,g)
%直接型到并联型的转换
function[C,B,A]=dir2par(num,den)
M=length(num);N=length(den);
[r1,p1,C]=residuez(num,den);%先求系统的单根p1,对应的留数r1及直接项C
p=cplxpair(p1,10000000*eps);%用配对函数cplxpair由p1找共轭复根p
I=cplxcomp(p1,p);%找p1变为p时的排序变化
r=r1(I);%让r1的排序变化为r,保持与极点对应
%变换为二阶子系统
K=floor(N/2);B=zeros(K,2);A=zeros(K,3);%二阶子系统变量的初始化
ifK*2==N;%N为偶数,A(z)的次数为奇,有一个因式是一阶的
fori=1:
2:
N-2
Brow=r(i:
1:
i+1,:
);%取出一对留数
Arow=p(i:
1:
i+1,:
);%取出一对对应的极点
%二个留数极点转为二阶子系统分子分母系数
[Brow,Arow]=residuez(Brow,Arow,[]);
B(fix((i+1)/2),:
)=real(Brow);%取Brow的实部,放入系数矩阵B的相应行
A(fix((i+1)/2),:
)=real(Arow);%取Arow的实部,放入系数矩阵A的相应行
end;
[Brow,Arow]=residuez(r(N-1),p(N-1),[]);%处理实单根
B(K,:
)=[real(Brow),0];A(K,:
)=[real(Arow),0];
else%N为奇数,A(z)的次数为偶,所有因式都是二阶的
fori=1:
2:
N-1
Brow=r(i:
1:
i+1,:
);%取出一对留数
Arow=p(i:
1:
i+1,:
);%取出一对对应的极点
%二个留数极点转为二阶子系统分子分母系数
[Brow,Arow]=residuez(Brow,Arow,[]);
B(fix((i+1)/2),:
)=real(Brow);%取Brow的实部,放入系数矩阵B的相应行
A(fix((i+1)/2),:
)=real(Arow);%取Arow的实部,放入系数矩阵A的相应行
end
end
num=[8-411-2];
den=[1-1.250.75-0.125];
[C,B,A]=dir2par(num,den)
C=
16
B=
-16.000020.0000
8.00000
A=
1.0000-1.00000.5000
1.0000-0.25000
六、试验结果分析
实验二用冲激响应不变法设计IIR数字滤波器
一、实验目的
(1)加深对冲激响应不变法设计IIR数字滤波器的基本原理的理解;
(2)掌握用冲激响应不变法设计数字低通、带通滤波器的设计;
(3)了解MATLAB有关冲激响应不变法的常用子函数。
二、实验原理
1.设计思想
是将系统从s平面到z平面的一种映射方法,使数字滤波器的单位冲激响应序列模仿模拟滤波器的单位冲激响应,其变换关系式为。
2.设计步骤
(
(1)确定数字滤波器的性能指标:
通带临界频率、阻带临界频率;通带内的最大衰减;阻带内的最小衰减;
(2)确定相应的数字角频率;
(3)将数字滤波器的数字指标转换为模拟滤波器的指标;
(4)根据计算模拟低通原型滤波器的阶数N,并求得低通原型的传递函数;
(5)用冲激响应不变法将模拟滤波器转换为数字滤波器;
(6)分析滤波器特性,检查其指标是否满足要求。
三、实验仪器
微型计算机、MATLAB
四、实验内容
采用冲激响应不变法设计一个巴特沃斯数字低通滤波器,要求:
通带截止频率,阻带截止频率,滤波器的采样频率,并画出滤波器的幅频响应曲线和相频响应曲线以及零极点图。
五、实验程序
%脉冲响应不变法设计巴特沃斯低通滤波器
%数字滤波器指标
wp=0.25*pi;%滤波器的通带截止频率
ws=0.4*pi;%滤波器的阻带截止频率
Rp=1;As=15;%输入滤波器的通阻带衰减指标
ripple=10^(-Rp/20);%计算通带衰减对应的幅度值
Attn=10^(-As/20);%计算阻带衰减对应的幅度值
%转换为模拟滤波器指标
Fs=2000;T=1/Fs;
Omgp=wp*Fs;Omgs=ws*Fs;
%模拟原型滤波器计算
[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s')%计算阶数n和截止频率
[z0,p0,k0]=buttap(n);%设计归一化的模拟原型滤波器
ba1=k0*real(poly(z0));%求原型滤波器系数b
aa1=real(poly(p0));%求原型滤波器系数a
[ba,aa]=lp2lp(ba1,aa1,Omgc);%变换为模拟低通滤波器
%用脉冲响应不变法计算数字滤波器系数
[bd,ad]=impinvar(ba,aa,Fs)
[C,B,A]=dir2par(bd,ad)%转换成并联型
%求数字系统的频率特性
[H,w]=freqz(bd,ad);
dbH=20*log10(abs(H)/max(abs(H)));%化为分贝值
%
subplot(2,2,1),plot(w/pi,abs(H));
ylabel('幅度');xlabel('频率/\pi');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid
subplot(2,2,2),plot(w/pi,angle(H)/pi);
ylabel('相位');xlabel('频率/\pi');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid
subplot(2,2,3),plot(w/pi,dbH);
ylabel('幅度(dB)');xlabel('频率/\pi');axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid
subplot(2,2,4),zplane(bd,ad);
axis([-1.1,1.1,-1.1,1.1]);
ylabel('零极图');
function[C,B,A]=dir2par(num,den)
%直接型到并联型的转换
M=length(num);N=length(den);
[r1,p1,C]=residuez(num,den);%先求系统的单根p1,对应的留数r1及直接项C
p=cplxpair(p1,10000000*eps);%用配对函数cplxpair由p1找共轭复根p
I=cplxcomp(p1,p);%找p1变为p时的排序变化
r=r1(I);%让r1的排序变化为r,保持与极点对应
%变换为二阶子系统
K=floor(N/2);B=zeros(K,2);A=zeros(K,3);%二阶子系统变量的初始化
ifK*2==N;%N为偶数,A(z)的次数为奇,有一个因式是一阶的
fori=1:
2:
N-2
Brow=r(i:
1:
i+1,:
);%取出一对留数
Arow=p(i:
1:
i+1,:
);%取出一对对应的极点
%二个留数极点转为二阶子系统分子分母系数
[Brow,Arow]=residuez(Brow,Arow,[]);
B(fix((i+1)/2),:
)=real(Brow);%取Brow的实部,放入系数矩阵B的相应行
A(fix((i+1)/2),:
)=real(Arow);%取Arow的实部,放入系数矩阵A的相应行
end;
[Brow,Arow]=residuez(r(N-1),p(N-1),[]);%处理实单根
B(K,:
)=[real(Brow),0];A(K,:
)=[real(Arow),0];
else%N为奇数,A(z)的次数为偶,所有因式都是二阶的
fori=1:
2:
N-1
Brow=r(i:
1:
i+1,:
);%取出一对留数
Arow=p(i:
1:
i+1,:
);%取出一对对应的极点
%二个留数极点转为二阶子系统分子分母系数
[Brow,Arow]=residuez(Brow,Arow,[]);
B(fix((i+1)/2),:
)=real(Brow);%取Brow的实部,放入系数矩阵B的相应行
A(fix((i+1)/2),:
)=real(Arow);%取Arow的实部,放入系数矩阵A的相应行
end
end
六、试验结果分析
七、思考题
使用冲激响应不变法设计IIR数字滤波器时,有哪些缺点?
该方法在设计数字滤波器时,有何限制?
实验三用双线性变换法设计IIR数字滤波器
一、实验目的
(1)加深对双线性变换法设计FIR数字滤波器的基本原理的理解;
(2)掌握用双线性变换法设计数字低通、高通、带通滤波器的设计;
(3)了解MATLAB有关双线性变换法设计的常用子函数。
二、实验原理
1.设计思想
s平面与z平面之间