You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMSIS FIR抽取器系数配置异常导致输出结果错误问题咨询

系数逻辑是否正确

如果你的需求是无抗混叠滤波、仅做间隔取点的简单抽取,核心逻辑是成立的,但存在两个前提:

  • 你的ADC输入信号本身没有超过1000Hz(抽取后采样率的1/2)的频率分量,否则会出现混叠失真
  • 你当前的系数反转配置和取点预期是不匹配的:你预期取每4个点的第1个,那时间反转后的存储系数应该是{1,0,0,0},而不是你现在用的{0,0,0,1},后者会取每4个点的最后1个,如果你对输入样本的时序对齐要求高,这个也会导致结果不符合预期。

输出错误的常见配置问题

你出现异常输出大概率是以下几个配置疏漏导致的:

  • 未初始化状态缓存:CMSIS FIR类函数要求提前申请足够长度的状态数组,且在调用处理函数前调用对应的初始化函数(如arm_fir_decimate_init_f32)完成状态清零。如果没有初始化,状态数组残留的随机值会直接导致输出异常。状态数组的最小长度要求为滤波器系数长度 + 单次输入样本数 - 1,按你的配置需要至少35个对应精度的元素空间。
  • 初始化参数不匹配:检查初始化函数传入的参数是否完全符合你的配置:
    • 抽取因子是否设为4
    • 滤波器系数长度是否设为4
    • 系数指针、状态缓存指针是否指向正确的内存地址
  • 输入样本不连续:确认你每次传入处理的32个ADC样本是连续采集的,没有丢点、错位的情况。

参考学习资料

  • CMSIS DSP库官方模块说明文档
  • 《多速率数字信号处理》(Crochiere, R.E. 著)
  • DSPGuru 多速率信号处理FAQ

内容的提问来源于stack exchange,提问作者Android_dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:18:05