数字滤波器实现分析.docx

上传人:聆听****声音 文档编号:567781 上传时间:2023-04-29 格式:DOCX 页数:15 大小:81.82KB
下载 相关 举报
数字滤波器实现分析.docx_第1页
第1页 / 共15页
数字滤波器实现分析.docx_第2页
第2页 / 共15页
数字滤波器实现分析.docx_第3页
第3页 / 共15页
数字滤波器实现分析.docx_第4页
第4页 / 共15页
数字滤波器实现分析.docx_第5页
第5页 / 共15页
数字滤波器实现分析.docx_第6页
第6页 / 共15页
数字滤波器实现分析.docx_第7页
第7页 / 共15页
数字滤波器实现分析.docx_第8页
第8页 / 共15页
数字滤波器实现分析.docx_第9页
第9页 / 共15页
数字滤波器实现分析.docx_第10页
第10页 / 共15页
数字滤波器实现分析.docx_第11页
第11页 / 共15页
数字滤波器实现分析.docx_第12页
第12页 / 共15页
数字滤波器实现分析.docx_第13页
第13页 / 共15页
数字滤波器实现分析.docx_第14页
第14页 / 共15页
数字滤波器实现分析.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字滤波器实现分析.docx

《数字滤波器实现分析.docx》由会员分享,可在线阅读,更多相关《数字滤波器实现分析.docx(15页珍藏版)》请在冰点文库上搜索。

数字滤波器实现分析.docx

实验八 数字滤波器实现

实验室名称:

信息学院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软件

2

四、实验原理

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_1clearall;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= 2 Wn1= 0.3608 0.5421

分子系数是

0.0571 0 -0.1143 0 0.0571

分母系数是

1.0000 -0.5099 1.2862 -0.3350 0.4479

实际分子系数是

0.0571 -0.0000 -0.1143 0.0000 0.0571

实际分母系数是

1.0000 -0.5099 1.2862 -0.3350 0.4479

Q8.2

%ProgramP8_1clearall;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= 2 Wn1= 0.3608 0.5421

分子系数是

0.0571 0 -0.1143 0 0.0571

分母系数是

1.0000 -0.5099 1.2862 -0.3350 0.4479

实际分子系数是

0.0571 0.0000 -0.1143 0 0.0571

实际分母系数是

1.0000 -0.5099 1.2862 -0.3350 0.4479

Q8.3

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

13

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=

sos=

2

Wn=

0.3608

0.5421

0.0571

0.1143

0.0571

1.0000

0.0877

0.6601

1.0000

-2.0000

1.0000

1.0000

-0.5976

0.6785

第一级的分子系数是

0.0571 0.1143 0.0571

第一级的分母系数是

1.0000 0.0877 0.6601

第二级的分子系数是

1.0000 -2.0000 1.0000

第二级的分母系数是

1.0000 -0.5976 0.6785

第一级的实际分子系数是

0.0571 0.1143 0.0571

第一级的实际分母系数是

1.0000 0.0877 0.6601

第二级的实际分子系数是

1.0000 -2.0000 1.0000

第二级的实际分母系数是

1.0000 -0.5976 0.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);

1

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=2 Wn=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.5976 0.6785

并联I型的第二级的分子系数是

-0.0234 0.3448

并联I型的第二级的分母系数是1.0000 0.0877 0.6601

并联I型的第一级的实际分子系数是

-0.0470 -0.2897 -0.0000

并联I型的第一级的实际分母系数是1.0000 -0.5976 0.6785

并联I型的第二级的实际分子系数是

-0.0234 0.3448 0.0000

并联I型的第二级的实际分母系数是1.0000 0.0877 0.6601

Q8.6

%ProgramP8clearall;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=2 Wn=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.3178 0.0319

并联II型的第一级的分母系数是

1.0000 -0.5976 0.6785

并联II型的第二级的分子系数是

0 0.3469 0.0155

并联II型的第二级的分母系数是

1.0000 0.0877 0.6601

并联II型的第一级的实际分子系数是

0 -0.3178 0.0319

并联II型的第一级的实际分母系数是

1.0000 -0.5976 0.6785

并联II型的第二级的实际分子系数是

0 0.3469 0.0155

并联II型的第二级的实际分母系数是

1.0000 0.0877 0.6601

Q8.7

%ProgramP8_2clearall;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.0000 0.4400 0.3600 0.0200

分母系数

1.0000 0.4000 0.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= 4 Wn= 0.2500

□中中中中中中中中中

4

□中中中中中中中中中

4

2 2

□中

□中

0 0

-2

-4

0 10 20



30 40 50



-2

-4

0 10



20 30



40 50

□中中中n

□中中中

4

□中中中n

□中中中

4

2 2

□中

□中

0 0

-2

-4

0 10 20



30 40 50

-2

-4

0 10 20 30 40 50

□中中中n 中中中中n

%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= 4 Wn= 0.5500

□中中中中中中中中中

4

□中中中中中中中中中

4

2 2

□中

□中

0 0

-2

-4

0 10 20



30 40 50

-2

-4

0 10



20 30



40 50

□中中中n

□中中中

4

□中中中n

□中中中

4

2 2

□中

□中

0 0

-2

-4

0 10 20



30 40 50

-2

-4

0 10



20 30



40 50

□中中中n 中中中中n

Q8.14

%ProgramP8_4clearall;clc;

num=remez(9,[00.30.51],[1100]);

disp('滤波器系数是');disp(num);impres=filter(num,1,[1zeros

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2