请问如何提高ADC采集信号后做数字滤波的速度

2019-07-14 14:48发布



       我现在使用的芯片STM32F746,遇到的问题是我ADC采集到信号后要做一次FFT,但是我想在加窗之后,做FFT之前加一个数字滤波,由于我的数据量有点大,又希望能尽量的快,而我自己写的滤波函数无法达到要求。
       所以我想请教下,ST是否有成熟的数字滤波的库函数可以直接调用?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
青上也
1楼-- · 2019-07-14 22:09
滔滔不绝的滔滔 发表于 2019-1-4 18:53
请问你想怎么样滤波?你现在的ADC采样速率是多少?间隔多久?或者是一直全速采集?

采样率是1.8M,就是想做一个低通数字滤波
滔滔不绝的滔滔
2楼-- · 2019-07-14 23:28
青上也 发表于 2019-1-4 19:06
采样率是1.8M,就是想做一个低通数字滤波

直接软件计算不就得了。
比如你是一直以1.8M速度采集不停,可以设置DMA保存ADC数据,比如设置DMA的缓冲为100,开传输过半中断,即采集了50个数据之后进入中断,逐个处理滤波,同时不影响后50个数据的采集与保存。然后全部传输完了之后再滤波处理一下后50个数据。
保证所有的数据流并行走,用F7应该是来得及的。注意优化一下计算,移位代替除法提高速度。
青上也
3楼-- · 2019-07-15 02:24
滔滔不绝的滔滔 发表于 2019-1-4 19:16
直接软件计算不就得了。
比如你是一直以1.8M速度采集不停,可以设置DMA保存ADC数据,比如设置DMA的缓冲为100,开传输过半中断,即采集了50个数据之后进入中断,逐个处理滤波,同时不影响后50个数据的采集与保存。然后全部传输完了之后再滤波处理一下后50个数据。
保证所有的数据流并行走,用F7应该是来得及的。注意优化一下 ...

嗯,我这个有点特别啊,是ADC要一步采64个点的数据,然后对这64个数据进行去直流加窗滤波做FFT,中间是不能断的,需要连续的。目前使用的是DSP库里面的FIR滤波函数,开了优化先验证下。
青上也
4楼-- · 2019-07-15 05:24
 精彩回答 2  元偷偷看……
青上也
5楼-- · 2019-07-15 10:29
问题将将就就就这样吧,结贴吧。
crhm51900928
6楼-- · 2019-07-15 11:19
楼主,能请教你一些问题吗

一周热门 更多>