duduaiziji 发表于 2015-11-10 11:16:50

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

想对实时采集的AD信号进行滤波,实现的过程是这样的,设定一个大小为32的缓冲数组,使用arm_fir_f32进行滤波,实现进去一个AD就出来一个滤波后的值呢?

eric2013 发表于 2015-11-10 11:26:55

FIR滤波有一个群延迟的问题,注意下这个问题就可以了。
这个在我们45期DSP教程FIR章节部分有说。

duduaiziji 发表于 2015-11-10 13:10:22

你好,我看了你们的教程上面举例都是直接把采样值存进去然后一次性滤波,有没有能够实时采集滤波的方式呢,难道是所有的信号一次性滤波完成才可以吗,请指点一下呢,谢谢。

duduaiziji 发表于 2015-11-10 13:33:42

回 eric2013 的帖子

eric2013:FIR滤波有一个群延迟的问题,注意下这个问题就可以了。
这个在我们45期DSP教程FIR章节部分有说。 (2015-11-10 11:26) images/back.gif

我看了你们的教程上面举例都是直接把采样值存进去然后一次性滤波,有没有能够实时采集滤波的方式呢,难道是所有的信号一次性滤波完成才可以吗,请指点一下呢,谢谢。

eric2013 发表于 2015-11-10 13:50:59

回 duduaiziji 的帖子

duduaiziji:我看了你们的教程上面举例都是直接把采样值存进去然后一次性滤波,有没有能够实时采集滤波的方式呢,难道是所有的信号一次性滤波完成才可以吗,请指点一下呢,谢谢。 (2015-11-10 13:33) images/back.gif

可以的哦,参考这个即可:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14732

duduaiziji 发表于 2015-11-11 09:24:26

回 eric2013 的帖子

eric2013:可以的哦,参考这个即可:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14732 (2015-11-10 13:50) images/back.gif

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

eric2013 发表于 2015-11-11 09:26:39

回 duduaiziji 的帖子

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

数据必须要连续。

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

duduaiziji 发表于 2015-11-11 09:35:04

回 eric2013 的帖子

eric2013:数据必须要连续。

不用一直初始化,仅初始化一次即可。 (2015-11-11 09:26) images/back.gif

谢谢您,采样的时候也需要时间,我能不能先指定将数据装在某个数组中,先初始化之后,采样一段时间滤波一次然后再采样一段时间滤波一次以此类推,这样的方式可行吗?

eric2013 发表于 2015-11-11 09:36:44

回 duduaiziji 的帖子

duduaiziji:谢谢您,采样的时候也需要时间,我能不能先指定将数据装在某个数组中,先初始化之后,采样一段时间滤波一次然后再采样一段时间滤波一次以此类推,这样的方式可行吗? (2015-11-11 09:35) images/back.gif

保证数据的时间连续性就行了。

duduaiziji 发表于 2015-11-11 09:40:26

回 eric2013 的帖子

eric2013:保证数据的时间连续性就行了。 (2015-11-11 09:36) images/back.gif

是可行的对吧?

eric2013 发表于 2015-11-11 15:22:01

回 duduaiziji 的帖子

duduaiziji:是可行的对吧? (2015-11-11 09:40) images/back.gif

可行。

feiante 发表于 2015-12-3 23:44:16

如果是用AD芯片,通过SPI与STM32F4连接,然后打算10ms做一次数据采集,一次采集32个数据。这样如果用Matlab求系数,那么Fs怎么计算呢?

eric2013 发表于 2015-12-8 09:06:30

回 feiante 的帖子

feiante:如果是用AD芯片,通过SPI与STM32F4连接,然后打算10ms做一次数据采集,一次采集32个数据。这样如果用Matlab求系数,那么Fs怎么计算呢? (2015-12-03 23:44) images/back.gif

Fs是采样率,你实际采集时采样率是多少,这个就是多少。

loveProgram 发表于 2022-8-18 18:11:16

duduaiziji 发表于 2015-11-10 13:33
我看了你们的教程上面举例都是直接把采样值存进去然后一次性滤波,有没有能够实时采集滤波的方式呢,难道 ...

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

loveProgram 发表于 2022-8-18 18:12:37

eric2013 发表于 2015-11-10 13:50
可以的哦,参考这个即可:http://www.armbbs.cn/forum.php?mod=viewthread&tid=14732

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

eric2013 发表于 2022-8-19 10:59:22

loveProgram 发表于 2022-8-18 18:12
您好,请问一下,FIR滤波器如何解决,输入数据是未知的,并且是动态输入的,实现动态输入数据的实时滤波 ...
https://www.armbbs.cn/forum.php?mod=viewthread&tid=94547

页: [1]
查看完整版本: 请教STM32如何用DSP库函数对实时采集信号进行FIR滤波