数字信号处理实验四滤波器的结构.docx

上传人:b****8 文档编号:30475287 上传时间:2023-08-15 格式:DOCX 页数:24 大小:552.01KB
下载 相关 举报
数字信号处理实验四滤波器的结构.docx_第1页
第1页 / 共24页
数字信号处理实验四滤波器的结构.docx_第2页
第2页 / 共24页
数字信号处理实验四滤波器的结构.docx_第3页
第3页 / 共24页
数字信号处理实验四滤波器的结构.docx_第4页
第4页 / 共24页
数字信号处理实验四滤波器的结构.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数字信号处理实验四滤波器的结构.docx

《数字信号处理实验四滤波器的结构.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验四滤波器的结构.docx(24页珍藏版)》请在冰豆网上搜索。

数字信号处理实验四滤波器的结构.docx

数字信号处理实验四滤波器的结构

实验四滤波器的结构

一.实验内容

1)认真复习数字滤波器的表示方法,信号流图的基本概念和画法;IIR数字滤波器的基本特性和FIR数字滤波器的基本特性。

2)掌握IIR数字滤波器的直接I型、II型、级联型、并联型结构的特点和表示方法;FIR数字滤波器的直接型、级联型、频率抽样型以及快速卷积的结构特点和表示方法;线性相位,FIR滤波器的结构和特点;全通滤波器、梳状滤波器的特点和表示方法。

二.实验内容

新建函数a,代码如下:

Clc;

N=10;

n=0:

N-1;

b1=[1-26-13];

a1=[1-2-43-5];

b2=[2-14-3-2];

a2=[14-1-46];

y1=impz(b1,a1,N);

y2=impz(b2,a2,N);

subplot(211);

stem(n,abs(y1));

title('系统一单位冲激响应幅度谱');

subplot(212);

stem(n,abs(y2));

title('系统二单位冲激响应幅度谱');

生成图像如下:

(1)直接I型

 

直接II型

(2)直接I型

直接II型

 

在matlab中新建函数tf2par,代码如下:

function[C,B,A]=tf2par(b,a)

%直接型向并联型转换

M=length(b);N=length(a);

[r1,p1,C]=residuez(b,a);%先求系统的单根p1,对应的留数r1及直接项C

p=cplxpair(p1,0.000000001);%先配对函数cplxpair由p1找共轭复根p,le-9的误差

I=cplxcomp(p1,p);%找p1变为p的排序变化

r=r1(I);

%变为2阶子系统

K=floor(N/2);B=zeros(K,2);A=zeros(K,3);

ifK*2==N;

fori=1:

2:

N-2

pi=p(i:

i+1,:

);%取出一对极点

ri=r(i:

i+1,:

);%取出一对对应留数

[Bi,Ai]=residuez(ri,pi,[]);

B(fix((i+1)/2),:

)=real(Bi);

A(fix((i+1)/2),:

)=real(Ai);

end;

[Bi,Ai]=residuez(r(N-1),p(N-1),[]);%处理单根

B(K,:

)=[real(Bi)0];A(K,:

)=[real(Ai)0];

else

fori=1:

2:

N-1

pi=p(i:

i+1,:

);

ri=r(i:

i+1,:

);

[Bi,Ai]=residuez(ri,pi,[]);

B(fix((i+1)/2),:

)=real(Bi);

A(fix((i+1)/2),:

)=real(Ai);

end;

end;

在matlab中新建函数cplxcomp,代码如下:

functionI=cplxcomp(p1,p2)

I=[];

forj=1:

length(p2)

fori=1:

length(p1)

if(abs(p1(i)-p2(j))<0.0001)

I=[I,i];

end;

end;

end;

I=I';

在matlab中新建函数b,代码如下:

Clc;

b1=[1,-3,11,-27,18];

a1=[16,12,2,-4,-1];

b2=[3,8,12,7,2,-2];

a2=[16,24,24,14,5,1];

b3=[2,10,23,34,31,16,4];

a3=[36,78,87,59,26,7,1];

%级联型网格系数

[sos1,G1]=tf2sos(b1,a1)

[sos2,G2]=tf2sos(b2,a2)

[sos3,G3]=tf2sos(b3,a3)

%并联型网格系数

[C1,B1,A1]=tf2par(b1,a1)

[C2,B2,A2]=tf2par(b2,a2)

[C3,B3,A3]=tf2par(b3,a3)

实验结果如下:

sos1=

1.0000-3.00002.00001.0000-0.2500-0.1250

1.00000.00009.00001.00001.00000.5000

G1=

0.0625

sos2=

1.0000-0.333301.00000.50000

1.00002.00002.00001.00000.50000.2500

1.00001.00001.00001.00000.50000.5000

G2=

0.1875

sos3=

1.00003.00002.00001.00000.50000.2500

1.00001.00002.00001.00001.00000.3333

1.00001.00000.50001.00000.66670.3333

G3=

0.0556

C1=

-18

B1=

-10.0500-3.9500

28.1125-13.3625

A1=

1.00001.00000.5000

1.0000-0.2500-0.1250

C2=

-2

B2=

-0.8437-1.0312

0.68752.3437

2.34370

A2=

1.00000.50000.5000

1.00000.50000.2500

1.00000.50000

C3=

4

B3=

-1.1905-0.1587

-1.11111.7778

-1.6429-4.2143

A3=

1.00001.00000.3333

1.00000.66670.3333

1.00000.50000.2500

(1)系统一:

 

系统二:

 

系统三:

(2)直接II型

系统一:

系统二:

系统三:

在matlab中新建函数c,代码如下:

Clc;

b1=[1,-2,6-1,3];

a=1;

b2=[2,-1,4,-3,-2];

b2=1;

subplot(211)

dimpulse(b1,a1,20);

title('系统一单位脉冲响应');

subplot(212)

dimpulse(b2,a2,20);

title('系统二单位脉冲响应');

生成图像如下:

在matlab中新建函数d,代码如下:

b1=[1,6,-3,2,-5,1];

b2=[2,10,23,34,31,16,4];

b3=[6,31,74,102,74,316];

[sos1,G1]=tf2sos(b1,1)

[sos2,G2]=tf2sos(b2,1)

[sos3,G3]=tf2sos(b3,1)

生成结果如下:

sos1=

1.00006.525301.000000

1.0000-1.07280.18461.000000

1.00000.54750.83031.000000

G1=

1

sos2=

1.00003.00002.00001.000000

1.00001.00002.00001.000000

1.00001.00000.50001.000000

G2=

2

sos3=

1.00003.111301.000000

1.00003.23177.47581.000000

1.0000-1.17632.26431.000000

G3=

6

 

级联结构:

系统一:

 

系统二:

 

系统三:

在matlab中新建函数tf2f2,代码如下:

%频率采样型

function[C,B,A]=tf2fs(h)

N=length(h);

H=fft(h,N);%求各频率样本值

MagH=abs(H);

phaH=angle(H)';

if(N==2*floor(N/2))%N为偶数

L=N/2-1;A1=[1,-1,0;1,1,0];%设置z=+1/-1处两个实极点

C1=[real(H),real(H(L+2))];%相应的系数

else

L=(N-1)/2;A1=[1,-1,0];

C1=[real(H)];

end;

k=[1:

L]';

B=zeros(L,2);A=ones(L,3);%初始化BA数组

A(1:

L,2)=-2*cos(2*pi*k/N);A=[A;A1];%计算分母系数,加上实极点系数

B(1:

L,2)=cos(phaH(2:

L+1));%计算分子系数

B(1:

L,2)=-cos(phaH(2:

L+1)-(2*pi*k/N));

C=[2*MagH(2:

L+1),C1]';%计算增益系数

在matlab中新建函数e,代码如下:

clc;

h=[1,2,3,2,1]/9;

[C,B,A]=tf2fs(h)

实验结果如下:

C=

0.5818

0.0849

1.0000

-0.2353

0.0131

0.0131

-0.2353

B=

00.8090

0-0.3090

A=

1.0000-0.61801.0000

1.00001.61801.0000

1.0000-1.00000

在matlab中新建函数tf2fs2:

,代码如下:

%频率采样型

function[C,B,A]=tf2fs2(H,N)

MagH=abs(H);

phaH=angle(H)';

if(N==2*floor(N/2))%N为偶数

L=N/2-1;A1=[1,-1,0;1,1,0];%设置z=+1/-1处两个实极点

C1=[real(H),real(H(L+2))];%相应的系数

else

L=(N-1)/2;A1=[1,-1,0];

C1=[real(H)];

end;

k=[1:

L]';

B=zeros(L,2);A=ones(L,3);%初始化BA数组

A(1:

L,2)=-2*cos(2*pi*k/N);A=[A;A1];%计算分母系数,加上实极点系数

B(1:

L,2)=cos(phaH(2:

L+1));%计算分子系数

B(1:

L,2)=-cos(phaH(2:

L+1)-(2*pi*k/N));

C=[2*MagH(2:

L+1),C1]';%计算增益系数

在matlab中新建函数f:

,代码如下:

clc;

H=[1,1,1,0.5,zeros(1,12)];

[C,B,A]=tf2fs2(H,16)

实验结果如下:

C=

2.0000

2.0000

1.0000

0

0

0

0

1.0000

1.0000

1.0000

0.5000

0

0

0

0

0

0

0

0

0

0

0

0

0

B=

0-0.9239

0-0.7071

0-0.3827

0-0.0000

00.3827

00.7071

00.9239

A=

1.0000-1.84781.0000

1.0000-1.41421.0000

1.0000-0.76541.0000

1.0000-0.00001.0000

1.00000.76541.0000

1.00001.41421.0000

1.00001.84781.0000

1.0000-1.00000

1.00001.00000

三.实验心得

通过本次实验,我进一步了解了信号流图的作图方法,IIR数字滤波器和FIR数字滤波器的基本特征,强化了对IIR数字滤波器直接I型、直接II型、级联型、并联型结构的理解,对它们的结构图形也有了进一步的了解。

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

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1