数字滤波器实现.docx
- 文档编号:26994367
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:17
- 大小:57.93KB
数字滤波器实现.docx
《数字滤波器实现.docx》由会员分享,可在线阅读,更多相关《数字滤波器实现.docx(17页珍藏版)》请在冰豆网上搜索。
数字滤波器实现
实验八数字滤波器实现
实验室名称:
信息学院2204实验时间:
2015年12月10日
姓名:
学号专业:
通信工程指导教师:
陶大鹏
成绩
教师签名:
年月日
一、实验目的
二、实验内容
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.MATLAB12.0软件
四、实验原理
五、实验步骤
六、实验记录(数据、图表、波形、程序等)
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(num)/size(sos,1)
fori=1:
size(sos,1)
num1=[sos(i,1)sos(i,2)sos(i,3)];
disp(['第',num2str(i),'级滤波器的系数是']);disp(num1);
impres=direct2(num,1,[1zeros(1,N)]);
disp(['第',num2str(i),'级滤波器的实际系数是']);disp(impres);
end
运行结果
sos=
-0.0209-0.087001.000000
1.0000-0.9623-1.96231.000000
1.0000-0.2695-0.12231.000000
1.00001.29701.00001.000000
1.00000.20021.00001.00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字滤波器 实现