数字信号处理实验作业

更新时间:2023-11-18 07:19:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验6 数字滤波器的网络结构

一、实验目的:

1、加深对数字滤波器分类与结构的了解。

2、明确数字滤波器的基本结构及其相互间的转换方法。

3、掌握用MATLAB语言进行数字滤波器结构间相互转换的子函数及程序编写方法。 二、实验原理:

1、数字滤波器的分类

离散LSI系统对信号的响应过程实际上就是对信号进行滤波的过程。因此,离散LSI系统又称为数字滤波器。

数字滤波器从滤波功能上可以分为低通、高通、带通、带阻以及全通滤波器;根据单位脉冲响应的特性,又可以分为有限长单位脉冲响应滤波器(FIR)和无限长单位脉冲响应滤波器(IIR)。

一个离散LSI系统可以用系统函数来表示:

Y(z)b(z)H(z)===X(z)a(z)也可以用差分方程来表示:

?bm=0Nk=1Mmz-m1+?akz-kb0+b1z-1+b2z-2++bmz-m= -1-2-k1+a1z+a2z++akzy(n)+?aky(n-k)=?bmx(n-m)

k=1m=0NM以上两个公式中,当ak至少有一个不为0时,则在有限Z平面上存在极点,表达的是以一个IIR数字滤波器;当ak全都为0时,系统不存在极点,表达的是一个FIR数字滤波器。FIR数字滤波器可以看成是IIR数字滤波器的ak全都为0时的一个特例。

IIR数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、直接Ⅲ型、级联型和并联型。 FIR数字滤波器的基本结构分为横截型(又称直接型或卷积型)、级联型、线性相位型及频率采样型等。本实验对线性相位型及频率采样型不做讨论,见实验10、12。

另外,滤波器的一种新型结构——格型结构也逐步投入应用,有全零点FIR系统格型结构、全极点IIR系统格型结构以及全零极点IIR系统格型结构。

2、IIR数字滤波器的基本结构与实现 (1)直接型与级联型、并联型的转换 例6-1 已知一个系统的传递函数为

8-4z-1+11z-2-2z-3H(z)=

1-1.25z-1+0.75z-2-0.125z-3将其从直接型(其信号流图如图6-1所示)转换为级联型和并联型。

X(n)1.25-0.750.1258y(n)z?1z?1z?1图6-1

-411-2

分析:从直接型转换为级联型,就是将系统的传递函数(tf)模型转换为二次分式(sos)模型;从直接型转换为并联型,就是将系统函数的传递函数(tf)模型转换为极点留数(rpk)模型。

程序清单如下: b=[8,-4,11,-2];

a=[1,-1.25,0.75,-0.125]; [sos,g]=tf2sos(b,a) [r,p,k]=residuez(b,a) 运行结果如下: sos =

1.0000 -0.1900 0 1.0000 -0.2500 0 1.0000 -0.3100 1.3161 1.0000 -1.0000 0.5000 g = 8 r =

-8.0000 -12.0000i -8.0000 +12.0000i 8.0000 p =

0.5000 + 0.5000i 0.5000 - 0.5000i 0.2500 k =16

由sos和g的数据,可以列写出级联型的表达式:

1-0.19z-11-0.31z-1+1.3161z-2H(z)=8 -1-1-21-0.25z1-z+0.5z信号流图如图6-2所示:

X(n)y(n)z?10.25-0.19z?1-0.31z?1-0.51.3161图6-2

由r、p、k的数据,可以列写出并联型的表达式:

H(z)=-8-12i-8+12i8+++16

1-(0.5+0.5i)z-11-(0.5-0.5i)z-11-0.25z-1上式中出现了复系数,可采用二阶分割将共轭极点组成分母上的实系数二阶环节。这里使用自定义函数dir2par可以实现滤波器结构从直接型向并联型的转换,且用实系数二阶环节表示。在使用该函数时,调用了另一个自定义函数cplxcomp以进行复共轭对的正确排序,保证系统二阶环节的分子、分母一定是实数。dir2par函数和cplxcomp函数定义如下: function I=cplxcomp(p1,p2) %按共轭条件排列极点留数对

%比较两个包含同样标量元素但(可能)具有不同下标的复数对 %本语句必须用在p2=cplxpair(p1)语句之后,以重新排序对应的留数向量 I=[];

for j=1:length(p2) for i=1:length(p1)

if(abs(p1(i)-p2(j))<0.0001) I=[I,i]; end end end I=I';

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); I=cplxcomp(p1,p); r=r1(I);

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

for i=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); A(fix((i+1)/2),:)=real(Arow); end

[Brow,Arow]=residuez(r(N-1),p(N-1),[]); B(K,:)=[real(Brow),0];A(K,:)=[real(Arow),0]; else

for i=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); A(fix((i+1)/2),:)=real(Arow); end end

将例6-1从直接型转换为并联型的程序改写如下: b=[8,-4,11,-2];

a=[1,-1.25,0.75,-0.125]; [C,B,A]=dir2par(b,a) 运行结果如下: C =16 B =

-16.0000 20.0000 8.0000 0 A =

1.0000 -1.0000 0.5000

1.0000 -0.2500 0

由A,B,C的数据可以直接写出并联型的表达式:

-16+20z-18H(z)=16+-1+ -1-11-z+0.5z1-0.25z信号流图如图6-3所示:

1680.25X(n)y(n)z?1-16z?1-0.520z?1图6-3

例6-2 已知一个系统的级联型系数公式为

1+0.9z-11-3z-1+2z-2H(z)=0.5

1-0.25z-11+z-1?0.5z-2将其从级联型(信号流图如图6-4所示)转换为直接型和并联型结构。

X(n)y(n)z?10.250.9-1z?1-3z?1-0.52图6-4

分析:从级联型转换为直接型,就是将二次分式(sos)模型转换为系统传递函数(tf)模型;再使用dirpar.m和cplxcomp.m函数将直接型转换为并联型。

程序清单如下:

sos=[1 0.9 0 1 -0.25 0 1 -3 2 1 1 0.5]; g=0.5;

[b,a]=sos2tf(sos,g) [C,B,A]=dir2par(b,a) 程序运行结果如下:

b = 0.5000 -1.0500 -0.3500 0.9000 a =1.0000 0.7500 0.2500 -0.1250 C =-7.2000

B = 3.9846 1.6308 3.7154 0

A = 1.0000 1.0000 0.5000 1.0000 -0.2500 0

由b,a的数据可以直接写出直接型的表达式:

0.5-1.05z-1-0.35z-2+0.9z-3H(z)= -1-2-31+0.75z+0.25z-0.125z信号流图如图6-5所示:

X(n)-0.75-0.250.1250.5y(n)z?1z?1z?1图6-5

-1.05-0.350.9

由A,B,C的数据可以写出并联型的表达式:

3.9846+1.6308z-13.7154H(z)=+?7.2 -1-1-11+z+0.5z1-0.25z信号流图如图6-6所示:

本文来源:https://www.bwwdw.com/article/cztv.html

Top