0.1010 2 六、格状结构 滤波器的实现通常采用格状结构。 对于N阶全零点或全极点滤波器采用格型结构。可以用多项式a(n),n 来描述,也可通过格型结构反射系数k(n),n=1,2,…,N来描述 对于一般IR滤波器采用格型/梯形结构,它既包含零点,也包含极点。因此,可通过 传递函数分子多项式b和分母多项式a来描述,也可以通过和分母多项式a对应的格型 反射系数k(n)及分子多项式b对应的梯形系数v(n)来描述。 总之,对于格状结构滤波器的描述可用系数k(n)和c(n)来描述。 MATLAB信号处理工具箱提供了滤波器格状结构转换函数 LATCFILT、POLY2R- C、RC2POLY、LATC2TF和TF2LATC。请阅读第五章有关内容 【例1.16】把下面传递函数形式的IR滤波器转变为格型/梯形结构 1+2z-1+22-2+z 5 用 MATLAB5编写程序如下 ‰ MATLAB PROGRAM1-17 7 Input Parameters of model num=[1221]; den=[113/245/81/3] Transfer function to lattice filter conversion tf2latc(num, den) >smp117 k 0.250 0.3333 0.2695 1.0000 七、卷积矩阵 若有两个向量h和x,满足下面等式的矩阵C称为卷积矩阵
(1.7-8) 由式(1.6-5)可见,当滤波器的单位采样响应序列为h(n),滤波器输入为x(n),滤波 器输出信号为 (1.7-9) 可见,卷积矩阵是数字滤波器的另一种描述形式 MATLAB信号处理工具箱提供了计算卷积矩阵函数 CONVMTX。调用格式为 C 式中,h为m×1列向量;n为x列向量维数;c为(m+n-1)×n阶卷积矩阵 【例1.17】已知h=[1232],x为4×1随机序列,求其卷积矩阵, 用 MATLAB编写程序如下 %MATLAB PROGRAM 1-18 [1232] Find convolution matrix h′,n) >smp118 0 232 0232 1.1650 32
2.1821 1.2050 0.7032 1.1650 2.9567 4.8236 4.7122 0.7032 程序运行结果,证实式(1.7-9)所定义的卷积矩阵的概念 1.7.2连续时间系统 连续时间系统模型用来描述模拟滤波器。连续时间系统可以用下面几种形式来描述 (1)状态空间表达式 x= Ax+ Bu (1.7-10) (2)传递函数 H)==1)+b(2)+“+bm+1 (1.7-11) (3)零极点增益 P()k(s- z(1))(s- 2z(2)…(s二 (s-p(1))(s-p(2))…(s-p(n)) (1.7-12) (4)部分分式展开式 部分分式展开式和式(1.4-23)、(14-24)形式类似 在离散时间系统中所述的有关 MATLAB函数也适用于连续时间系统 1.8卷积及时域响应的求解 由式(1.5-5)和式(1.6-4)可知,卷积运算可用于计算线性系统的时间响应,因此卷积 算在信号处理中是十分重要的 对于序列卷积 y(n)=x(n)为h(n)= (kh(n -k) (1.7-13) MATLAB提供卷积计算的函数有CONV、CONV2和 CONVN 函数CONV用于计算向量卷积和多项式乘。调用格式为 其中,a,b为两个序列,c=a“b
若向量a的长度为na,向量b的长度为nb,则向量c的长度nc=na+nb-1。 函数CONV2用于两维卷积, CONVN用于n维卷积运算。 求离散系统的时间响应,除了用卷积运算外,还可以用 MATLAB函数 filter。函数fil- er调用格式见第五章 应用函数fter求系统对任意输入x的响应y的方法有两种:是直接利用 filter 数求x的响应y;二是利用卷积理论,先用 filter求系统对单位脉冲响应h(n),再应用卷积 y(n)=conv(x(n),h(n)。下面给出一个例子说明两种方法结果相同,读者可加深对卷 积定理的理解。 【例1.18】已知滤波器的传递函数 H(z) 0.15 输入信号为x(t)=2sin(0.05xt)+w(t),w(t)为随机信号,幅值为0.2。试绘出滤波器的 输出信号波形。 用两种方法求滤波器输出,并用 MATLAB编写程序如下 %MATLAB PROGRAM 1-19 Model of the filter b=0.15; a=[1-0.8]; Create input of filter n=[0:100]; x=2*sin(0.05*pi*n)+0.2* randn(1,101); %Calculate response according to convolution mp=[1; zeros(100,1)]; h=filter(b, a, imp) y=yc(1:101) %Calculate response according to matlab function plot(n, x, 'r,n,yl,'b,n,y, m'); xlabel('n')i( x y yc);title( Time response); grid 滤波器输入、输出波形如图1.22所示。 由图1.18可见,用卷积原理计算的输出和用函数 filter计算的输出完全吻合。本例 中,输入x是1×101维向量,h也是1×101维向量,利用函数conv求得yc为1×202维 向量,只有前1×101维向量可用来描述响应y 函数conv用于计算两个矢量的卷积,这里假定两个序列a和b都是从n=0开始的。 如果两个序列从某一负值开始,则不能直接采用conv函数计算卷积
Time res 图1.22滤波器输入和输出曲线 习题 1.1用 MATLAB绘制下列各连续时间信号的波形图。 (1)te"u(t) (2)(1+cosπt)[u(t)-u(t-2)] (3) sina(t-to) (4)sin2f,t-+cos 2f2t-+o(t) 其中,f1=25Hz,f2=100Hz,o(t)为白噪声信号。 12绘制下列各时间序列的波形图 (1)x(n)= (2)x(n)=2u(n) (3)x(n) 1 (4)x(n)=(-2)"u(n) (5)x(n)=2-u(n-1) n-1 (6)x(n)= (n) 13绘制下列各序列的波形图并检查其周期性。 1)x(n)=sinx一x (2)x(n)=0.5n+cos (3)x(n)=e(-) 1.4用 MATLAB生成复指数序列 x(n) 1-0.3)