数字滤波器实现.docx
- 文档编号:4593107
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:18
- 大小:58.46KB
数字滤波器实现.docx
《数字滤波器实现.docx》由会员分享,可在线阅读,更多相关《数字滤波器实现.docx(18页珍藏版)》请在冰豆网上搜索。
数字滤波器实现
实验八数字滤波器实现
实验室名称:
信息学院2204实验时间:
2015年11月26日
姓名
一、实验目的
1、通过逼近给定的频率响应指标而得到数字传输函数G(z),并通过软件实现。
2、利用MATLAB来研究冲激响应或有限冲激响应数字滤波器结构的软件实现。
3、并联Ⅰ型实现、并联II型实现、直接II型仿真滤波器的验证仿真。
二、实验内容
Q8.1程序P8.1设计了什么类型的滤波器?
其指标是什么?
滤波器的阶数是多少?
为了检验仿真,需要计算多少个冲激响应样本?
仿真是正确的吗?
Q8.2用转置的直接II型仿真滤波器,修改程序P8.1并运行修改后的程序。
仿真是正确的吗?
Q8.3生成Q8.1中产生的传输函数的一个级联实现,并编写一个程序来仿真它。
其中每个单独的部分用一个直接Ⅱ型实现。
验证仿真。
Q8.5生成Q8.1中传输函数的一个并联Ⅰ型实现,并编写一个程序来仿真它。
每一个单独的部分用直接Ⅱ型实现。
验证仿真。
Q8.6生成Q8.1中传输函数的一个并联II型实现,并编写一个程序来仿真它。
每一个单独的部分用直接Ⅱ型实现。
验证仿真。
Q8.7运行程序P8.2并产生被仿真的级联格型结构的传输函数。
该传输函数与式(8.35)中的相同吗?
Q8.9程序设计了什么类型的滤波器?
其指标是什么?
滤波器的阶数是多少?
形成输入的正弦序列的频率是多少?
Q8.10运行P8.3并产生两个图形。
哪种输入成分会在滤波器输出出现?
为什么输出序列的开始部分不是一种理想的正弦曲线?
修改P8.3,以便纸过滤序列X2[n]。
产生的输出序列和预料的是一样的吗?
证明你的答案。
Q8.14程序P8.4设计了什么类型的滤波器?
其指标是什么?
滤波器的阶数是多少?
为了验证仿真,需要多少个冲激响应样本?
仿真是正确的吗?
Q8.15修改程序P8.4,用直接II型仿真该滤波器,运行修改后的程序。
仿真是正确的吗?
Q8.16使用程序P8.4生成在习题Q8.4中产生的传输函数的一个级联实现,写出对其仿真的一个程序。
其中每一个部分以直接II型实现。
验证仿真。
三、实验器材及软件
1.微型计算机1台
2.MATLAB7.0软件
四、实验原理
1、可调数字滤波器的设计基础是复变量的z谱变换,通过z替换为F(z),将具有给定截止频率的数字滤波器的实现调整为具有不同截止频率的另一个实现。
2、利用全通结构代替每一个延时块,可能会导致实现Gnew(z)时具有不能被实现的无延时环结构。
3、设计可调有限冲激响应滤波器的一种简单方法是基于加窗的傅里叶级数方法。
4、通常情况下,复数乘法和复数加法总数量是N(log2N),通使用Wn的对称性质,可进一步简化计算得复杂性。
五、实验步骤
1、打开计算机中的MATLAB
2、在MATLAB中新建一个M-file,在其中输入实验要求的相关代码
3、输入代码后调试代码,代码无误后可以得到相应的实验结果
4、观察实验结果回答相关问题
5、记录实验结果,将图形等截图粘贴,完成实验报告
六、实验记录(数据、图表、波形、程序等)
Q8.1
%ProgramP8_1
clearall;clc;
Wp=[0.40.5];Ws=[0.10.8];Rp=1;Rs=30;
[N1,Wn1]=buttord(Wp,Ws,Rp,Rs)
[num,den]=butter(N1,Wn1);
disp('分子系数是');disp(num);
disp('分母系数是');disp(den);
impres=direct2(num,den,[1zeros(1,4*N1)]);
[p,d]=strucver(impres,2*N1);
disp('实际分子系数是');disp(p');
disp('实际分母系数是');disp(d');
运行结果:
N1=2Wn1=0.36080.5421
分子系数是
0.05710-0.114300.0571
分母系数是
1.0000-0.50991.2862-0.33500.4479
实际分子系数是
0.0571-0.0000-0.11430.00000.0571
实际分母系数是
1.0000-0.50991.2862-0.33500.4479
Q8.2
%ProgramP8_1
clearall;clc;
Wp=[0.40.5];Ws=[0.10.8];Rp=1;Rs=30;
[N1,Wn1]=buttord(Wp,Ws,Rp,Rs)
[num,den]=butter(N1,Wn1);
disp('分子系数是');disp(num);
disp('分母系数是');disp(den);
impres=filter(num,den,[1zeros(1,4*N1)]);
[p,d]=strucver(impres,2*N1);
disp('实际分子系数是');disp(p');
disp('实际分母系数是');disp(d');
运行结果
N1=2Wn1=0.36080.5421
分子系数是
0.05710-0.114300.0571
分母系数是
1.0000-0.50991.2862-0.33500.4479
实际分子系数是
0.05710.0000-0.114300.0571
实际分母系数是
1.0000-0.50991.2862-0.33500.4479
Q8.3
%ProgramP8
clearall;clc;
Wp=[0.40.5];Ws=[0.10.8];Rp=1;Rs=30;
[N,Wn]=buttord(Wp,Ws,Rp,Rs)
[num,den]=butter(N,Wn);
[z,p,k]=tf2zp(num,den)
sos=zp2sos(z,p,k)
num1=[sos(1,1)sos(1,2)sos(1,3)];
den1=[sos(1,4)sos(1,5)sos(1,6)];
disp('第一级的分子系数是');disp(num1);
disp('第一级的分母系数是');disp(den1);
num2=[sos(2,1)sos(2,2)sos(2,3)];
den2=[sos(2,4)sos(2,5)sos(2,6)];
disp('第二级的分子系数是');disp(num2);
disp('第二级的分母系数是');disp(den2);
impres1=direct2(num1,den1,[1zeros(1,2*N)]);
[p1,d1]=strucver(impres1,N);
disp('第一级的实际分子系数是');disp(p1');
disp('第一级的实际分母系数是');disp(d1');
impres2=direct2(num2,den2,[1zeros(1,2*N)]);
[p2,d2]=strucver(impres2,N);
disp('第二级的实际分子系数是');disp(p2');
disp('第二级的实际分母系数是');disp(d2');
运行结果
N=2Wn=0.36080.5421
sos=
0.05710.11430.05711.00000.08770.6601
1.0000-2.00001.00001.0000-0.59760.6785
第一级的分子系数是
0.05710.11430.0571
第一级的分母系数是
1.00000.08770.6601
第二级的分子系数是
1.0000-2.00001.0000
第二级的分母系数是
1.0000-0.59760.6785
第一级的实际分子系数是
0.05710.11430.0571
第一级的实际分母系数是
1.00000.08770.6601
第二级的实际分子系数是
1.0000-2.00001.0000
第二级的实际分母系数是
1.0000-0.59760.6785
Q8.5
clearall;clc;
Wp=[0.40.5];Ws=[0.10.8];Rp=1;Rs=30;
[N,Wn]=buttord(Wp,Ws,Rp,Rs)
[num,den]=butter(N,Wn);
[r1,p1,k1]=residuez(num,den);
disp('并联I型')
disp('留数是');disp(r1);
disp('极点是');disp(p1);
disp('常数');disp(k1);
numI1=[2*real(r1
(1))-2*(real(r1
(1))*real(p1
(1))+imag(r1
(1))*imag(p1
(1)))];
denI1=[1-2*real(p1
(1))real(p1
(1))^2+imag(p1
(1))^2];
numI2=[2*real(r1(3))-2*(real(r1(3))*real(p1(3))+imag(r1(3))*imag(p1(3)))];
denI2=[1-2*real(p1(3))real(p1(3))^2+imag(p1(3))^2];
disp('并联I型的常数是');disp(k1);
disp('并联I型的第一级的分子系数是');disp(numI1);
disp('并联I型的第一级的分母系数是');disp(denI1);
disp('并联I型的第二级的分子系数是');disp(numI2);
disp('并联I型的第二级的分母系数是');disp(denI2);
impresI1=direct2(numI1,denI1,[1zeros(1,2*N)]);
[pI1,dI1]=strucver(impresI1,N);
disp('并联I型的第一级的实际分子系数是');disp(pI1');
disp('并联I型的第一级的实际分母系数是');disp(dI1');
impresI2=direct2(numI2,denI2,[1zeros(1,2*N)]);
[pI2,dI2]=strucver(impresI2,N);
disp('并联I型的第二级的实际分子系数是');disp(pI2');
disp('并联I型的第二级的实际分母系数是');disp(dI2');
运行结果如下
N=2Wn=0.36080.5421
并联I型
留数是
-0.0235+0.1978i
-0.0235-0.1978i
-0.0117-0.2132i
-0.0117+0.2132i
极点是
0.2988+0.7676i
0.2988-0.7676i
-0.0438+0.8113i
-0.0438-0.8113i
常数
0.1276
并联I型的常数是
0.1276
并联I型的第一级的分子系数是
-0.0470-0.2897
并联I型的第一级的分母系数是
1.0000-0.59760.6785
并联I型的第二级的分子系数是
-0.02340.3448
并联I型的第二级的分母系数是
1.00000.08770.6601
并联I型的第一级的实际分子系数是
-0.0470-0.2897-0.0000
并联I型的第一级的实际分母系数是
1.0000-0.59760.6785
并联I型的第二级的实际分子系数是
-0.02340.34480.0000
并联I型的第二级的实际分母系数是
1.00000.08770.6601
Q8.6
%ProgramP8
clearall;clc;
Wp=[0.40.5];Ws=[0.10.8];Rp=1;Rs=30;
[N,Wn]=buttord(Wp,Ws,Rp,Rs)
[num,den]=butter(N,Wn);
[r2,p2,k2]=residue(num,den);
disp('并联II型')
disp('留数是');disp(r2);
disp('极点是');disp(p2);
disp('常数是');disp(k2);
numII1=[02*real(r2
(1))-2*(real(r2
(1))*real(p2
(1))+imag(r2
(1))*imag(p2
(1)))];
denII1=[1-2*real(p2
(1))real(p2
(1))^2+imag(p2
(1))^2];
numII2=[02*real(r2(3))-2*(real(r2(3))*real(p2(3))+imag(r2(3))*imag(p2(3)))];
denII2=[1-2*real(p2(3))real(p2(3))^2+imag(p2(3))^2];
disp('并联II型的常数是');disp(k2);
disp('并联II型的第一级的分子系数是');disp(numII1);
disp('并联II型的第一级的分母系数是');disp(denII1);
disp('并联II型的第二级的分子系数是');disp(numII2);
disp('并联II型的第二级的分母系数是');disp(denII2);
impresII1=direct2(numII1,denII1,[1zeros(1,2*N)]);
[pII1,dII1]=strucver(impresII1,N);
disp('并联II型的第一级的实际分子系数是');disp(pII1');
disp('并联II型的第一级的实际分母系数是');disp(dII1');
impresII2=direct2(numII2,denII2,[1zeros(1,2*N)]);
[pII2,dII2]=strucver(impresII2,N);
disp('并联II型的第二级的实际分子系数是');disp(pII2');
disp('并联II型的第二级的实际分母系数是');disp(dII2');
运行结果
N=2Wn=0.36080.5421
并联II型
留数是
-0.1589+0.0411i
-0.1589-0.0411i
0.1734-0.0002i
0.1734+0.0002i
极点是
0.2988+0.7676i
0.2988-0.7676i
-0.0438+0.8113i
-0.0438-0.8113i
常数是
0.0571
并联II型的常数是
0.0571
并联II型的第一级的分子系数是
0-0.31780.0319
并联II型的第一级的分母系数是
1.0000-0.59760.6785
并联II型的第二级的分子系数是
00.34690.0155
并联II型的第二级的分母系数是
1.00000.08770.6601
并联II型的第一级的实际分子系数是
0-0.31780.0319
并联II型的第一级的实际分母系数是
1.0000-0.59760.6785
并联II型的第二级的实际分子系数是
00.34690.0155
并联II型的第二级的实际分母系数是
1.00000.08770.6601
Q8.7
%ProgramP8_2
clearall;clc;
x1=[1zeros(1,6)];%产生单位冲激序列
q3old=0;q2old=0;q1old=0;%初始条件
%输入滤波器系数
D1=0.357377;D2=0.27083;D3=-0.2;
alpha1=0.02;alpha2=0.352;
alpha3=0.276533;alpha4=-0.19016;
%计算前七个冲激响应样本
forn=1:
7
w3=x1(n)-D3*q3old;
w2=w3-D2*q2old;
q1new=w2-D1*q1old;
q2new=D1*q1new+q1old;
q3new=D2*w2+q2old;
y1=D3*w3+q3old;
yo(n)=alpha1*y1+alpha2*q3new+alpha3*q2new+alpha4*q1new;
q3old=q3new;q2old=q2new;q1old=q1new;
end
[num,den]=strucver(yo,3);
disp('分子系数');disp(num');
disp('分母系数');disp(den');
运行结果
分子系数
-0.00000.44000.36000.0200
分母系数
1.00000.40000.1800-0.2000
Q8.9
%ProgramP8_3
%一个无限冲激响应滤波器滤波的说明
clearall;clc;clf;
%产生输入序列
k=0:
50;
w2=0.7*pi;w1=0.2*pi;
x1=1.5*cos(w1*k);x2=2*cos(w2*k);
x=x1+x2;
%确定滤波器传输函数
[N,Wn]=ellipord(0.25,0.55,0.5,50)
[num,den]=ellip(N,0.5,50,Wn);
%产生输出序列
y=filter(num,den,x);
%画出输入及输出序列
subplot(2,2,1);
stem(k,x1);grid;axis([050-44]);
xlabel('时间序列n');ylabel('振幅');
title('输入序列中的低频成分');
subplot(2,2,2);
stem(k,x2);grid;axis([050-44]);
xlabel('时间序列n');ylabel('振幅');
title('输入序列中的高频成分');
subplot(2,2,3);
stem(k,x);grid;axis([050-44]);
xlabel('时间序列n');ylabel('振幅');
title('输入序列');
subplot(2,2,4);
stem(k,y);grid;axis([050-44]);
xlabel('时间序列n');ylabel('振幅');
title('输出序列');
运行结果
N=4Wn=0.2500
%ProgramP8_3
%一个无限冲激响应滤波器滤波的说明
clearall;clc;clf;
%产生输入序列
clearall;clc;clf;
k=0:
50;
w2=0.7*pi;w1=0.2*pi;
x1=1.5*cos(w1*k);x2=2*cos(w2*k);
x=x1+x2;
%确定滤波器传输函数
[N,Wn]=ellipord(0.55,0.25,0.5,50)
[num,den]=ellip(N,0.5,50,Wn,'high');
%产生输出序列
y=filter(num,den,x);
%画出输入及输出序列
subplot(2,2,1);
stem(k,x1);grid;axis([050-44]);
xlabel('时间序列n');ylabel('振幅');
title('输入序列中的低频成分');
subplot(2,2,2);
stem(k,x2);grid;axis([050-44]);
xlabel('时间序列n');ylabel('振幅');
title('输入序列中的高频成分');
subplot(2,2,3);
stem(k,x);grid;axis([050-44]);
xlabel('时间序列n');ylabel('振幅');
title('输入序列');
subplot(2,2,4);
stem(k,y);grid;axis([050-44]);
xlabel('时间序列n');ylabel('振幅');
title('输出序列');
运行结果
N=4Wn=0.5500
Q8.14
%ProgramP8_4
clearall;clc;
num=remez(9,[00.30.51],[1100]);
disp('滤波器系数是');disp(num);
impres=filter(num,1,[1zeros(1,9)]);
disp('滤波器实际系数是');disp(impres);
程序运行结果
滤波器系数是
-0.0209-0.09260.00640.19320.37210.37210.19320.0064-0.0926-0.0209
滤波器实际系数是
-0.0209-0.09260.00640.19320.37210.37210.19320.0064-0.0926-0.0209
Q8.15
%ProgramP8
clearall;clc;
num=remez(9,[00.30.51],[1100]);
disp('滤波器系数是');disp(num);
impres=direct2(num,1,[1zeros(1,9)]);
disp('滤波器实际系数是');disp(impres);
运行结果
滤波器系数是
-0.0209-0.09260.00640.19320.37210.37210.19320.0064-0.0926-0.0209
滤波器实际系数是
-0.0209-0.09260.00640.19320.37210.37210.19320.0064-0.0926-0.0209
Q8.16
%ProgramP8
clearall;clc;
num=remez(9,[00.30.51],[1100]);
den=[1zeros(1,length(num)-1)];
[z,p,k]=tf2zp(num,den);
sos=zp2sos(z,p,k)
%size(sos,1)为sos的行数,代表级数
%size(sos,2)为sos的列数
N=length(nu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字滤波器 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)