硬汉嵌入式论坛

 找回密码
 立即注册
查看: 11536|回复: 15
收起左侧

[DSP] 请教STM32如何用DSP库函数对实时采集信号进行FIR滤波

[复制链接]

2

主题

8

回帖

2

积分

新手上路

积分
2
发表于 2015-11-10 11:16:50 | 显示全部楼层 |阅读模式
想对实时采集的AD信号进行滤波,实现的过程是这样的,设定一个大小为32的缓冲数组,使用arm_fir_f32进行滤波,实现进去一个AD就出来一个滤波后的值呢?
2324.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2015-11-10 11:26:55 | 显示全部楼层
FIR滤波有一个群延迟的问题,注意下这个问题就可以了。
这个在我们45期DSP教程FIR章节部分有说。
回复

使用道具 举报

2

主题

8

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2015-11-10 13:10:22 | 显示全部楼层
你好,我看了你们的教程上面举例都是直接把采样值存进去然后一次性滤波,有没有能够实时采集滤波的方式呢,难道是所有的信号一次性滤波完成才可以吗,请指点一下呢,谢谢。
回复

使用道具 举报

2

主题

8

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2015-11-10 13:33:42 | 显示全部楼层

回 eric2013 的帖子

eric2013:FIR滤波有一个群延迟的问题,注意下这个问题就可以了。
这个在我们45期DSP教程FIR章节部分有说。 (2015-11-10 11:26) 
我看了你们的教程上面举例都是直接把采样值存进去然后一次性滤波,有没有能够实时采集滤波的方式呢,难道是所有的信号一次性滤波完成才可以吗,请指点一下呢,谢谢。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2015-11-10 13:50:59 | 显示全部楼层

回 duduaiziji 的帖子

duduaiziji:我看了你们的教程上面举例都是直接把采样值存进去然后一次性滤波,有没有能够实时采集滤波的方式呢,难道是所有的信号一次性滤波完成才可以吗,请指点一下呢,谢谢。 (2015-11-10 13:33) 
可以的哦,参考这个即可:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14732
回复

使用道具 举报

2

主题

8

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2015-11-11 09:24:26 | 显示全部楼层

回 eric2013 的帖子

eric2013:可以的哦,参考这个即可:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14732 (2015-11-10 13:50) 
我想问的其实是1进1出怎么实现,我是让 inputF32只能装32个数据,这样不停的更新里面的数据,但是滤波之后是有问题,是不是滤波的数据需要连续,不能不停的初始化,每一次初始化之后是不是前面32个滤出的数据都是无效的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2015-11-11 09:26:39 | 显示全部楼层

回 duduaiziji 的帖子

duduaiziji:我想问的其实是1进1出怎么实现,我是让 inputF32只能装32个数据,这样不停的更新里面的数据,但是滤波之后是有问题,是不是滤波的数据需要连续,不能不停的初始化,每一次初始化之后是不是前面32个滤出的数据都是无效的 (2015-11-11 09:24) 
数据必须要连续。

不用一直初始化,仅初始化一次即可。
回复

使用道具 举报

2

主题

8

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2015-11-11 09:35:04 | 显示全部楼层

回 eric2013 的帖子

eric2013:数据必须要连续。

不用一直初始化,仅初始化一次即可。 (2015-11-11 09:26) 
谢谢您,采样的时候也需要时间,我能不能先指定将数据装在某个数组中,先初始化之后,采样一段时间滤波一次然后再采样一段时间滤波一次以此类推,这样的方式可行吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2015-11-11 09:36:44 | 显示全部楼层

回 duduaiziji 的帖子

duduaiziji:谢谢您,采样的时候也需要时间,我能不能先指定将数据装在某个数组中,先初始化之后,采样一段时间滤波一次然后再采样一段时间滤波一次以此类推,这样的方式可行吗? (2015-11-11 09:35) 
保证数据的时间连续性就行了。
回复

使用道具 举报

2

主题

8

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2015-11-11 09:40:26 | 显示全部楼层

回 eric2013 的帖子

eric2013:保证数据的时间连续性就行了。 (2015-11-11 09:36) 
是可行的对吧?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2015-11-11 15:22:01 | 显示全部楼层

回 duduaiziji 的帖子

duduaiziji:是可行的对吧? (2015-11-11 09:40) 
可行。
回复

使用道具 举报

91

主题

289

回帖

562

积分

金牌会员

积分
562
发表于 2015-12-3 23:44:16 | 显示全部楼层
如果是用AD芯片,通过SPI与STM32F4连接,然后打算10ms做一次数据采集,一次采集32个数据。这样如果用Matlab求系数,那么Fs怎么计算呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2015-12-8 09:06:30 | 显示全部楼层

回 feiante 的帖子

feiante:如果是用AD芯片,通过SPI与STM32F4连接,然后打算10ms做一次数据采集,一次采集32个数据。这样如果用Matlab求系数,那么Fs怎么计算呢? (2015-12-03 23:44)
Fs是采样率,你实际采集时采样率是多少,这个就是多少。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-8-18 18:11:16 | 显示全部楼层
duduaiziji 发表于 2015-11-10 13:33
我看了你们的教程上面举例都是直接把采样值存进去然后一次性滤波,有没有能够实时采集滤波的方式呢,难道 ...

您好,这个问题解决了吗,fir滤波器的实时滤波
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-8-18 18:12:37 | 显示全部楼层
eric2013 发表于 2015-11-10 13:50
可以的哦,参考这个即可:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14732

您好,请问一下,FIR滤波器如何解决,输入数据是未知的,并且是动态输入的,实现动态输入数据的实时滤波呀
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-8-19 10:59:22 | 显示全部楼层
loveProgram 发表于 2022-8-18 18:12
您好,请问一下,FIR滤波器如何解决,输入数据是未知的,并且是动态输入的,实现动态输入数据的实时滤波 ...

https://www.armbbs.cn/forum.php?mod=viewthread&tid=94547
image.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 05:25 , Processed in 0.232002 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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