声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2980|回复: 15

[滤波] 求教一个小小的关于滤波的问题

[复制链接]
发表于 2014-5-28 22:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我有一个小小的问题想请教下大家。就是我做实验得到的一组数据想进行带通滤波,用的直接是labview里面的butterworth滤波器。我这组数据的是振动过程中一个牵引力大小值,所以不像加速度在0的上下进行波动,然后我直接用滤波器滤波的时候,出现的结果就很奇怪,一看就是完全不对,如左图所示。这组数据的大小大概是以3.8为线上下波动。这个3.8不是太准吧,就是我把这组数据时减去3.8的话,就会出现有正有负了。然后我再进行滤波,结果就感觉还不错了。如是不是这滤波器只能处理均值为0的信号啊? 1.png                       2.png

         


回复
分享到:

使用道具 举报

 楼主| 发表于 2014-5-29 16:28 | 显示全部楼层
木有人理我
发表于 2014-6-4 14:17 | 显示全部楼层
我也遇到相似的问题,信号幅值不大的时候,滤波之后会出现固定的频率分量。
 楼主| 发表于 2014-6-4 19:48 | 显示全部楼层
20140216 发表于 2014-6-4 14:17
我也遇到相似的问题,信号幅值不大的时候,滤波之后会出现固定的频率分量。

那您后来是咋解决的呢?
发表于 2014-6-4 20:50 | 显示全部楼层
。。。你把数据去均值不行吗?干嘛直接减去3.8啊。妹子?唉。如果你不去均值的话,信号里会有一个很大的直流分量的。
 楼主| 发表于 2014-6-4 21:09 | 显示全部楼层
yugang2010 发表于 2014-6-4 20:50
。。。你把数据去均值不行吗?干嘛直接减去3.8啊。妹子?唉。如果你不去均值的话,信号里会有一个很大的直 ...

我当时是为了省事,看了个大概均值差不多3.8,就减去了,然后试着重新运行了一下。我是想着没办法的话就挨个取均值再滤波。但是昨天有人和我说,让我直接低通滤波,这样,直流分量就不会影响了,但是我试了试,结果也差不多,也是一看就是不对的。这是为什么呢,是labview的这个滤波器不能这样用吗?那我这类处理数据都要先求均值,那不是很麻烦呢?然后就是那个让我直接低通滤波的朋友,用的是c++设计的滤波器,不过处理的不是我的这组数据,但是我看上去也是类似的数据,但是就没问题,这是为啥呢?
发表于 2014-6-4 21:17 | 显示全部楼层
labview类似于一款编程语言,大家用的一般是别人做好的软件。我用的matlab比较多,一个函数直接搞定。低通滤波?直流分量是低频的,用低通滤波不就只剩下直流分量了么。
如果labview里没有提供去均值的话,你自己写函数也行。就是计算所有点的和值,然后除以点数就是均值了。然后用每个点减去这个均值就可以了。
 楼主| 发表于 2014-6-4 21:40 | 显示全部楼层
yugang2010 发表于 2014-6-4 21:17
labview类似于一款编程语言,大家用的一般是别人做好的软件。我用的matlab比较多,一个函数直接搞定。低通 ...

matlab用的哪个函数啊?我这个数据量比较大诶,然后我在labview里直接可以选择我需要哪部分数据(就是去掉开头和结尾的一些不要的数据)。我刚借了本matlab信号处理,还没看呢。那是所有的滤波都要先去均值吗?求教,嗷
发表于 2014-6-4 21:47 | 显示全部楼层
diying813 发表于 2014-6-4 21:40
matlab用的哪个函数啊?我这个数据量比较大诶,然后我在labview里直接可以选择我需要哪部分数据(就是去 ...

data=detrend(data);这个函数就可以了。即可以是一维向量,也可以是多维矩阵。
选取数据时,可以这么玩data(1:5120);,这样就是选取你想要的数据点。
 楼主| 发表于 2014-6-4 21:49 | 显示全部楼层
yugang2010 发表于 2014-6-4 21:17
labview类似于一款编程语言,大家用的一般是别人做好的软件。我用的matlab比较多,一个函数直接搞定。低通 ...

然后我还是不太明白,低通滤波器不是留下低频的吗,我用一个截止频率10HZ的低通滤波器,为啥不行的,直流分量不就是零频率的信号,低通滤波不能留下呢?原谅我是菜鸟
 楼主| 发表于 2014-6-4 21:51 | 显示全部楼层
yugang2010 发表于 2014-6-4 21:47
data=detrend(data);这个函数就可以了。即可以是一维向量,也可以是多维矩阵。
选取数据时,可以这么玩d ...

恩恩,谢谢你,我试试看,嘿嘿
发表于 2014-6-4 21:58 | 显示全部楼层
diying813 发表于 2014-6-4 21:49
然后我还是不太明白,低通滤波器不是留下低频的吗,我用一个截止频率10HZ的低通滤波器,为啥不行的,直流 ...

你对你的信号进行低通滤波以后,剩下的信号里会有直流分量的。通常直流分量就是1Hz、2Hz的那么点。用10Hz的话,里面也有可能含有有效的信号成分。
从你的叙述里,感觉你应该是想去掉低频成分的。你现在的做法应该是反了吧。直流分量是低频的。

作为一个绅士,为女士解答问题,荣幸之至。不用客气..............
 楼主| 发表于 2014-6-4 22:13 | 显示全部楼层
yugang2010 发表于 2014-6-4 21:58
你对你的信号进行低通滤波以后,剩下的信号里会有直流分量的。通常直流分量就是1Hz、2Hz的那么点。用10Hz ...

嘿嘿。我做的课题是主动减振,减小低频振动,所以只考虑10HZ以下的就行,但是分析的时候,高一点频率的也需要看看。至于低截止频率实际上我没有要求,但是我要是直接低通滤波,我的正常的那些加速度信号(有正有负的)滤出来后,我看频域,感觉有些不对劲,所以我就加了个低截止频率0.1HZ,用带通。我这组信号是牵引力。对了,那我分析我的加速度信号的时候,就是有正有负的那些,也需要先减去均值咯?
发表于 2014-6-4 22:25 | 显示全部楼层
diying813 发表于 2014-6-4 22:13
嘿嘿。我做的课题是主动减振,减小低频振动,所以只考虑10HZ以下的就行,但是分析的时候,高一点频率的也 ...

对于主动减振来说,确实是只关心低频振动。
减振里分为主动和被动。被动减振不是不想关心低频振动,而是做不到。所以,降低低频振动主要是依靠主动。

你先去均值,然后再做低通滤波,应该可以得到你想要的信号。

加速度信号一般也需要去均值,不过一般情况下,加速度信号就是在0上下波动,所以,有时候也不需要去均值。且行且珍惜吧。

评分

1

查看全部评分

 楼主| 发表于 2014-6-4 22:33 | 显示全部楼层
yugang2010 发表于 2014-6-4 22:25
对于主动减振来说,确实是只关心低频振动。
减振里分为主动和被动。被动减振不是不想关心低频振动,而是 ...

恩恩,明白啦,太感谢你啦
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-28 10:09 , Processed in 0.077644 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表