首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CMSIS FIR系数进行抽取似乎不正确

使用CMSIS FIR系数进行抽取似乎不正确
EN

Stack Overflow用户
提问于 2021-10-15 21:04:05
回答 1查看 43关注 0票数 0

我使用的是OEM ADC IC,其最小采样率为4000Hz。我想通过定制的现有解决方案发送捕获的数据,这些解决方案的参数不打算更改。

由于ADC的采样率为4000 by,因此我希望减少发送的样本数量,即抽取(我认为是什么),在抽取因子4之后,我将有1000 by的样本,然后我可以插回4000 by。我在一秒内收集了32个样本125次,结果是4000赫兹。

我从here和其他参考文献中学习了基本的抽取和插值,并使用了CMSIS FIR抽取器和FIR内插器。

我将参数设置如下:查看CMSIS decimatorinterpolator

代码语言:javascript
复制
number of coefficients in the filter: 4
decimation factor: 4
filter coefficients: [1, 0, 0, 0]
number of input samples to process per call: 32
代码语言:javascript
复制
upsample factor: 4
number of filter coefficients in the filter: 4
filter coefficient buffer: [1, 0, 0, 0]
number of samples to process: 8

滤波器系数以变量{0,0,0,1}的形式存储,即文档here中的时间倒序。

我对FIR滤波器系数的理解是否正确,即1,0,0,0,因为我想简单地抽取数据,而不是实际过滤数据?

在实现了不正确的抽取器后,我得到了0,-1,0,-1,-1,-1,-1,-1等值。我在这里犯了什么错误?有什么需要我参考的资料吗?

EN

回答 1

Stack Overflow用户

发布于 2021-10-21 09:53:50

1,0,0,0是不正确的。这有点像len=4的增量函数,如果你使用这些系数进行滤波,就会出现混叠。

在下采样之前,你需要一个过滤器。如果你想降低噪声水平60或80 dB,你需要更多像this这样的系数。所以你应该设计一个合适的过滤器。如果你有64个系数的计算问题,你可以使用CIC滤波器。有关CIC或滤波器设计的更多信息,请参阅chapter 10

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69590581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档