搜索
bottom↓
回复: 13

求教:波形的FFT与低通滤波截至频率。。。

[复制链接]

出0入25汤圆

发表于 2012-4-26 17:17:41 | 显示全部楼层 |阅读模式

如下图所示,是我通过ADC采集热敏电阻分压得到的电压值值:



从图上可知,信号中存在较多的干扰,所以需要一个低通滤波器进行,,可是我该把低通滤波器的截至频率设为多少呢???

为了知道信号的频谱,我参考网上的一个Python脚本对上面的波形进行了FFT,求的的频谱分布如下所示:





但是,我不知道这种方法是不是可行,,如果可行的话,那低通滤波器的截至频率是不是应该设为10Hz左右啊???如果这种方法不可行,那要怎样确定低通滤波器的截止频率呢???


还有,最上面那个波形到底可不可以用FFT进行频谱分析啊???

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2012-4-26 17:28:29 | 显示全部楼层
滤波前分析信号的频谱是必然的
而且Matlab做FFT很简单
不过从给出的频谱看 10Hz左右信号强度比起低频信号(0Hz)附近的非常弱啊

出0入663汤圆

发表于 2012-4-26 17:36:34 | 显示全部楼层
FFT点数明显不够啊。

出0入0汤圆

发表于 2012-4-26 17:49:16 | 显示全部楼层
对楼主的这种情况,用频谱分析法已经不使用了。

假设使用简单一阶RC低通滤波器:
我们知道其对阶跃输入的响应为O(t)=1-e^(-t/τ),误差为E(t)=e^(-t/τ),式中τ=R*C,为电路的时间常数。
如果系统要求在5秒内采集到与实际值误差在5%以内的数据,那么:
e^(-5/τ)<0.05
两边同时取倒数得:
e^(5/τ)>20
两边取对数得:
5/τ>ln(20)≈3
即:
R*C=τ < 5/3≈1.667

出0入25汤圆

 楼主| 发表于 2012-4-26 17:50:06 | 显示全部楼层
gzhuli 发表于 2012-4-26 17:36
FFT点数明显不够啊。

您具体指什么“明显不够”???我不太懂。。。

你是想要下面这样子吗???




忘了说了:我的ADC采样频率是100Hz,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入25汤圆

 楼主| 发表于 2012-4-26 17:53:46 | 显示全部楼层
eduhf_123 发表于 2012-4-26 17:49
对楼主的这种情况,用频谱分析法已经不使用了。

假设使用简单一阶RC低通滤波器:


谢谢指教,,,
这个我不太懂,我先研究研究。。。

出0入0汤圆

发表于 2012-4-26 17:59:40 | 显示全部楼层
按照上述方法取参数,则:
f。= 1/(2*π*R*C) ≈ 0.1Hz、

值得注意的是,此时RC滤波电路中的R取值在百KΩ量级,无法驱动ADC,需要再加一级缓冲。

出0入25汤圆

 楼主| 发表于 2012-4-26 18:06:27 | 显示全部楼层
eduhf_123 发表于 2012-4-26 17:59
按照上述方法取参数,则:
f。= 1/(2*π*R*C) ≈ 0.1Hz、


谢谢,0.1Hz截止频率的话,那好像真的跟FFT的方法确定的频率不太一样了,,


您能具体讲解一下,为什么针对这种情况FFT已经不适用了吗???

出0入663汤圆

发表于 2012-4-26 18:54:41 | 显示全部楼层
直流分量太大了,去掉再出曲线看看。
初步看5Hz附近有一个小峰,截止频率多少就要看滤波器特性了。
4楼是按1阶RC低通来算的,截止点当然低了,既然你都ADC采回来了,最理想的当然是DSP处理了。

出0入0汤圆

发表于 2012-4-26 21:47:51 | 显示全部楼层
既然都 matlab 了  直接用 matlab  做一个数字滤波 套到程序里就好

出0入25汤圆

 楼主| 发表于 2012-4-26 22:09:04 | 显示全部楼层
wear778899 发表于 2012-4-26 21:47
既然都 matlab 了  直接用 matlab  做一个数字滤波 套到程序里就好

程序中的数字滤波当然是不可或缺的,但是对输入信号在进入ADC之前进行适当的硬件滤波也是必要的吧。。。

出0入0汤圆

发表于 2012-4-26 22:29:09 | 显示全部楼层
ADC采集看:主信号不是周期函数用FFT效果不明显,干扰比主信号频率高很多
最简单的滤波算法:采集256点总和再移8位,之后总和-ADC0+ADC256
总和=总和-ADC(N)+ADC(N+256)
A(N)=(总和)>>8
计算可以达到很快速度

出0入663汤圆

发表于 2012-4-27 11:06:07 | 显示全部楼层
XIVN1987 发表于 2012-4-26 22:09
程序中的数字滤波当然是不可或缺的,但是对输入信号在进入ADC之前进行适当的硬件滤波也是必要的吧。。。 ...

只要干扰信号不超出ADC量程范围,可以不需要额外的硬件滤波。
移动平均法就是最简单的FIR滤波器,而且相位特性是线性的,没有过冲,特别适合这种阶跃信号。

出0入0汤圆

发表于 2012-4-27 11:14:25 | 显示全部楼层
随便搞个滑动平均就会改善很多。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 09:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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