作业帮 > 综合 > 作业

当我用simulink的Fdatool里面的滤波器设计3阶巴特沃斯滤波器时,导出了系数,怎么写传递函数?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 08:54:17
当我用simulink的Fdatool里面的滤波器设计3阶巴特沃斯滤波器时,导出了系数,怎么写传递函数?
比如我用[b,a]=tf(Hd)得到的系数为

这就是巴特沃斯滤波器特出的系数,怎么写传递函数?有什么好的资料是介绍simulink中用传递函数设计滤波器的,请告诉下名字,
首先你要明白你得出的b和a是什么意思,在MATLAB中函数如下公式:这种用法主要出现在信号处理方向,控制方向上主要使用z,而不是z^-1,这是习惯问题,都一样.其次,了解了其具体函数,则它的传递函数就好写了,如下:h = tf(b,a,0.1,'variable','z^-1');     %0.1表示采样时间,你可以根据自己设计的滤波器来设定.h表示的传递函数就是上面公式中的H(z).而在simulink环境中,可以直接使用Discrete库中的Discrete Filter模块直接写入b,a值即可以完成如下形式:当然,你也可以用“Discrete Transfer Fcn”模块来建立传递函数,由于这个模块是直接以Z的形式,所以a,b系统应该倒过来写,相信这个你应该理解.好了,希望能解答你的疑问,采纳我的答案!
再问: 这是我的问题,因为字数的限制,就直接把问题转换成图片了?请帮忙解答一下?

再答: 你上面不是已经得到H(z)了嘛,这个是数字滤波器,你如果需要连续滤波器,只需使用如下命令:sysc = d2c(sysd,method),其中sysd就是H(z),method表示数字到连续变换时所用的方法,比如击零阶保持器等。具体用法示例如下:H = d2c(Hd,'zoh'),即可得出你所需的连续传递函数H(s)。 此外Discrete Filter中设计出来的当然是数字滤波器,如果你滤除的是模拟信号,可以使用Analog Filter Design模块来设计,希望对你有用!
再问: 再问最后一点,我用的是数字滤波器,将信号滤波后就变成离散的了,但是我需要去传递给系统需要连续信号,在simulink中需要用什么模块,我知道模拟到离散需要加一个零阶保持器就行,那反过来加什么?
再答: 模型信号向数字信号转换需要零阶保持器这些方法,反过来,数字信号向模型信号转换就需要利用插值方法了,插值模块你可以在lookup tables库中选择你需要的插值模块,如一维插值、N维插值等。 PS:奖励分太少啊!