scipy巴特沃斯滤波器到arm cmsis

问题描述 投票:0回答:1

在 scipy 中,我用巴特沃斯滤波器做了一些实验,如下所示:

sos = butter(order, normal_cutoff, btype='low', analog=False, output="sos")

我期望 sos 是滤波器的系数。

我需要将此过滤器移植到手臂平台上。 CMSIS 库中实现了多种过滤器函数,但我不明白巴特沃斯是否属于 CMSIS 中实现的一个过滤器家族。

我的问题是:我应该自己实现 Butterworth 还是有 cmsis 函数?

python scipy arm cmsis
1个回答
0
投票

实现与滤波器设计(本例中为巴特沃斯)无关,而是与滤波器的结构相关,这里的返回是二阶部分(SOS)链,其中每个部分都是一个二阶 IIR 滤波器。

我自己还没有测试过,但有同样的问题,这是 CMSIS 使用的功能:

https://www.keil.com/pack/doc/CMSIS/DSP/html/group__BiquadCascadeDF1.html

您可以查看其中的图表,了解 SOS 部分链的方式以及系数的定义方式。然而,我不确定 a 系数的符号,正如他们在 CMSIS 文章中提到的那样,您需要小心检查滤波器设计算法中这些系数的符号是否与 CMSIS 函数使用的符号相匹配。

© www.soinside.com 2019 - 2024. All rights reserved.