heikeyang 发表于 2007-8-8 11:03

butterworth滤波新人请教

各位大虾:
      小弟是学土木的,要对一组应力监测数据进行低通滤波,取样频率为Fs=100Hz,检测数据s平面幅值单位应变值。
现在恶补相关数字滤波知识,因时间有限,有些问题无法花时间去琢磨,在此请教各位大虾。
(1)用matlab或者手算设计滤波器时,通带内的浮动很多书上写的是1db,我想问下如果我想把我的待滤数据的通带内
的波动控制在20个应变值,那么这个20是不是要经过幅值归一化处理啊。db单位和应变值单位之间量纲是不是没有联系。
类似的阻带内衰减Rp的取值如何规定,怎样换算成我希望的源数据的单位。取值大小对滤波结果有何影响??
(2)如果我70Hz以下低通,那么在用matlab求num和den时时wp和ws是要进行归一化处理,wp=70/(Fs/2)岂不大于1了。
(3)如果知道了num和den后,是不是非要用dir2cas才能转换为级联形式,便于编程。

以上问题请各位大虾帮忙。

[ 本帖最后由 zhangnan3509 于 2007-8-8 20:29 编辑 ]

heikeyang 发表于 2007-8-8 14:01

请各位大侠指导指导

HolySaint 发表于 2007-8-8 14:11

取样频率太小了吧

ms是wp=f/fs*2*pi

heikeyang 发表于 2007-8-8 14:54

土木结构的振动频率是很低的啊。不像机械或者信号属高频。现在看数字信号处理的书看得一头雾水啊。苦啊。搞不明白啊。

songzy41 发表于 2007-8-8 15:56

1,不明白“检测数据s平面幅值单位应变值”。楼主采集来的是应变随时间变化的数据,是不是?要明确需要做什么,达到什么目的。
2,正如HolySaint 所说,或是采样频率太低,或是70Hz设置得不合适,按照采样定理,采样频率要大于信号最高频率的2倍,用100Hz采样时信号中不应包含70Hz的分量,所有的信号分量都应小于50Hz,那时设置了fp除Fs/2不是小于1了。
3,通带的设置与多少个应变值无关。
4,设置wp和ws后,可以用buttord和butter直接求出滤波器系数,不必求num和den。
5,一般不需要经dir2cas函数把系数转换成级联形式。

heikeyang 发表于 2007-8-8 17:04

1.采集来的确实是应变随时间的变化,里面有些杂波,需要滤掉。取样频率是100hz,但结构振动的应变变化频率可能在50左右,所以想取70hz。这点我可以在论证下,具体取多少为通带频率。应该可以解决。
2。我用Vb写的程序,里面想直接写出滤波的程序,故想用matlab求出所有的系数,级联形式不是方便用一个循环来对待滤数据进行滤波,便于编程。
3。我的理解:通带内允许的振动波幅肯定有一定的意义的。设置的小和大对滤波效果会有怎样的影响。

[ 本帖最后由 zhangnan3509 于 2007-8-8 20:28 编辑 ]

songzy41 发表于 2007-8-8 20:27

1,如果在被采样的信号中有大于50hz的分量,则在采样前应加抗混叠滤波器。
2,如果用VB来编写滤波程序,在MATLAB中把滤波器系数分解有好处,确可编二类函数(或子程序)--1阶滤波和2阶滤波,便能实现数字滤波。
3,通带的大小的设置和振动的幅值的大小无关。
同时不理解#1中“待滤数据的通带内的波动控制在20个应变值”。

heikeyang 发表于 2007-8-8 22:20

1、“待滤数据的通带内的波动控制在20个应变值”就是想知道通带内允许振动波幅可以选1db也可以选2db,这个大小的衡量标准是什么?
2、matlab中的butt滤波器相关函数是不是设计出的就是数字滤波器,将输入直接乘上系统函数(转移函数)即为输出吗?

songzy41 发表于 2007-8-9 09:03

本帖最后由 wdhd 于 2016-9-7 15:18 编辑

原帖由 heikeyang 于 2007-8-8 22:20 发表
1、“待滤数据的通带内的波动控制在20个应变值”就是想知道通带内允许振动波幅可以选1db也可以选2db,这个大小的衡量标准是什么?
2、matlab中的butt滤波器相关函数是不是设计出的就是数字滤波器,将输入直接乘上系统函数(转移函数)即为输出吗?
1、还是不明白“通带内的波动”和“20个应变值”有什么关系,怎么会联系在一起的。Butterworth滤波器的频响曲线,通带部分如同一个上凸的抛物线,中心频率处为最大,然而向两旁衰减。另外还想说明一点,滤波器通带的起伏和接收到振动信号幅值的波动是两回事。
2、在matlab中设计的Butterworth数字滤波器主要是得到它的滤波器系数,通过滤波器系数能对输入数据进行滤波,在matlab中用filter函数,而不是“将输入直接乘上系统函数(转移函数)即为输出”。
页: [1]
查看完整版本: butterworth滤波新人请教