gpt4 book ai didi

python - 在 BeagleBone Black 上使用 numpy(不是 scipy!)编写一个 butterworth 过滤器

转载 作者:行者123 更新时间:2023-11-28 19:22:02 24 4
gpt4 key购买 nike

我是 Python 的新用户和一般的业余程序员 - 我希望能够仅使用 numpy 库来过滤信号。它将被编程到 BeagleBone Black 上,操作系统是 Angstrom Linux,因此它将更新到的最远的 numpy 库是 1.4,并且由于谣言数据限制(我实际上不确定如何检查)或只是 numpy 的版本正在太早了,scipy 将无法在板上工作。

所以第一个解决方案是获得一个新的操作系统,但我不知道从哪里开始;我更擅长将方程式放入程序中。

我希望使用 filtfilt 函数,但也许最好从 lfilter 开始。这个网站似乎有助于实现它,但它有点超出我的范围: http://docs.scipy.org/doc/scipy-0.13.0/reference/generated/scipy.signal.lfilter.html
我能够在 MATLAB 中获取滤波器系数,然后将它们传输到 BeagleBone。 x 只是我可以上传的信号数组。

第二部分有点跳跃 - 那么有没有办法只在 numpy 而不是 scipy 中执行 z 变换?此外,基于 MATLAB 中过滤算法的所有保密性,我不相信能够解决这个问题,但是是否有某种数学算法描述,或者更好的代码,描述我如何实现这个?

感谢您耐心阅读本文和回复。请不要在回复中使用复杂的语言!

-罗布

最佳答案

滤波器设计函数,可以从sicpy.signal.filter_design.py中复制代码,几乎是纯python代码。

但是要为 IIR 滤波器执行 lfilter,您需要为数据数组中的每个样本执行一个 for 循环。由于 Python 中的 for 循环很慢,我认为你需要在 C 中实现它,并通过 ctypes 调用它。你在目标机器上有 c 编译吗?

如果您可以将滤波器设计为 FIR 滤波器,则可以使用 numpy.convolve(b, x)

关于python - 在 BeagleBone Black 上使用 numpy(不是 scipy!)编写一个 butterworth 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22951129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com