正弦波信号如何实现滤波?

[复制链接]
7837|15
 楼主| gaobq 发表于 2015-1-24 21:23 | 显示全部楼层 |阅读模式
单片机采集一个12位的电流传感器信号,该信号输出理论上是50Hz的正弦波,输出电流大小与正弦波的幅值成正比,程序连续采集100ms,每ms采一个数,利用EXCEL观察采集到的100个数字量,确实是5个正弦波,但是中间夹杂着干扰值,想请教一下,利用软件如何实现滤波算法,剔除这些干扰量,且准确快速地找到真正的幅值?谢谢!
chunyang 发表于 2015-1-24 21:33 | 显示全部楼层
合适的算法要看你的要求,简单的比如限幅滤波法,噪声不算太大时足以满足。若噪声非常大,卡尔曼滤波足够能对付。
ningling_21 发表于 2015-1-24 21:45 | 显示全部楼层
或查查干扰信号的来源,如果能去掉干扰就不用滤波
xuyaqi 发表于 2015-1-25 13:57 | 显示全部楼层
带通滤波器,低通滤波器
airwill 发表于 2015-1-25 16:23 | 显示全部楼层
    作为信号采样, 每周期20个采样点是足够的. 但要是简单的滤波, 这个采样点数并不大. 限幅滤波, 滑动平均值法, 都会引起一定的偏差. 这样卡尔曼滤波应该能够获得更好一些的结果. 当然, 算法略微复杂一些.
 楼主| gaobq 发表于 2015-1-25 21:47 | 显示全部楼层
是不是应该这样,因为信号是50Hz的,采样20ms,采100个点,两头去掉几个最大值和最小值,取次最大、最小,想减得到幅值。
回头看看卡尔曼滤波,看看怎么实现。
 楼主| gaobq 发表于 2015-1-25 21:47 | 显示全部楼层
是不是应该这样,因为信号是50Hz的,采样20ms,采100个点,两头去掉几个最大值和最小值,取次最大、最小,想减得到幅值。
回头看看卡尔曼滤波,看看怎么实现。
manbo789 发表于 2015-1-26 08:13 | 显示全部楼层
icekoor 发表于 2015-1-26 09:01 | 显示全部楼层
FIR滤波器,网上参考例程很多。
jjeemm77 发表于 2015-1-26 10:32 | 显示全部楼层
嗯!…会心一笑!瓢过…
 楼主| gaobq 发表于 2015-1-29 16:12 | 显示全部楼层
怎么没法结账给分,50分分配完了啊?
lllll60 发表于 2016-3-22 13:22 | 显示全部楼层
gaobq 发表于 2015-1-29 16:12
怎么没法结账给分,50分分配完了啊?

亲 你最后是怎么滤波的
zyj9490 发表于 2016-3-22 13:32 | 显示全部楼层
纯软件,要没过采样,进行简单的平均运算(如你要进行100个点幅值运算,可能每个运算点采样10次,10次平均,也可以在10次数据作中值算),不能过采样,更复杂的运算,如FFT,
奔牛滚滚 发表于 2016-3-22 21:41 | 显示全部楼层
直接搞个有源带通滤波器
charrijon 发表于 2016-3-22 21:45 | 显示全部楼层
理论上是正弦波,实际有很大突变,这种情况一般都是硬件电路设计有问题,正常的正弦电路只要用低通滤波器就能取得很好效果了。
21dianziishu 发表于 2018-9-18 17:08 | 显示全部楼层
楼主,最后怎样滤波的。我的情况和你有一点相似,我是提前已经采集到了一组数据,对这组数据进行滤波。我看了卡尔曼的滤波程序的,其中的噪声啊,上一时刻的预测值啊,这些都没有啊,所以不知道怎么用这种滤波方法写,希望楼主能指教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

172

主题

831

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部