- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字信号处理实验数字滤波器网格结构变换
实验4 数字滤波器网络结构转换
实验目的:
用MATLAB编程,熟悉数字滤波器各种结构类型及转换。
实验内容:
1、 已知滤波器系统函数 试求其级联结构,要求写出级联结构的系统函数及相应的结构流图。 若输入序列 ,试求该级联结构的输出。
2、已知滤波器系统函数 试求其并联结构,要求写出并联结构的系统函数及相应的结构流图(两种方法实现)。
实验要求:
打印出程序、运行结果,并分析实验结果。
附录:程序及实验结果
第一题程序:
clear all
b=[1 -1.6 0.65 -0.05];
a=[1 -7.3 12.1 -3];
x=[0 1 0 0 0 0 0 0 0];
[sos,G]=tf2sos(b,a)
[r,p,k]=residuez(b,a)
hc=G*sosfilt(sos,x)
结果:
sos =
1.0000 -0.1000 0 1.0000 -5.0000 0
1.0000 -1.5000 0.5000 1.0000 -2.3000 0.6000
G =
1
r =
1.2511
-0.2794
0.0117
p =
5.0000
2.0000
0.3000
k =
0.0167
hc =
1.0e+004 *
0 0.0001 0.0006 0.0030 0.0154 0.0777 0.3901 1.9530 9.7704
第二题程序:
1,源代码dir2par.m
function [C,B,A] = dir2par(b,a)
M=length(b);N=length(a);
[r1,p1,C]=residuez(b,a);
p=cplxpair(p1eps);
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
2,源代码cplxcomp.m
function I=cplxcomp(p1,p2)
I=[];
for j=1:1:length(p2)
for i=1:1:length(p1)
if(abs(p1(i)-p2(j))0.0001)
I=[I,i];
end
end
end
I=I;
3,源代码parfilt.m
function y=parfilt(C,B,A,x)
[K,L]=size(B);
N=length(x);
w=zeros(K+1,N);
w(1,:)=filter(C,1,x);
for i=1:1:K
w(i+1,:)=filter(B(i,:),A(i,:),x);
end
y=sum(w);
4,源代码par2dir.m
function [b,a]=par2dir(C,B,A)
[K,L]=size(A);R=[];P=[];
for i=1:1:K
[r,p,k]=residuez(B(i,:),A(i,:));
R=[R;r];P=[P;p];
end
[b,a]=residuez(R,P,C);
b=b(:);
a=a(:);
5,源代码Untitled2.m
clear all;close a
文档评论(0)