我是Python的新用户,也是一个业余程序员—我希望能够使用numpy库过滤信号。它将被编程到BeagleBone Black上,操作系统是Angstrom Linux,因此它将更新到的最远的numpy库是1.4,并且由于传言的数据限制(我实际上不确定如何检查)或者只是numpy版本太早,scipy将无法在板上运行。在
因此,第一个解决方案是获得一个新的操作系统,但我不知道从哪里开始;在将方程放入程序的领域,我更为自在。在
我希望使用filter函数,但也许最好从lfilter开始。这个网站似乎有助于实现它,但它有点超出我的能力:
http://docs.scipy.org/doc/scipy-0.13.0/reference/generated/scipy.signal.lfilter.html
我可以在MATLAB中得到滤波器系数,然后将它们传输到BeagleBone。x就是我可以上传的信号数组。在
第二部分有点跳跃-那么有没有一种方法可以在numpy中执行z变换,而不是scipy?另外,基于MATLAB中滤波器算法的所有保密性,我不相信能解决这个问题,但是有没有某种数学算法描述,或者更好的是代码,来描述我如何实现这一点?在
感谢您耐心阅读本文和回复。请不要在回复中使用复杂的语言!在
-罗布
对于过滤器设计函数,可以从sicpy.sicpy.sicpy.sicpy.sicpy.sicpy.filter_设计.py,它们几乎是纯python代码。在
但是要对IIR过滤器执行
lfilter
,您需要为数据数组中的每个样本使用一个for循环。因为Python中的for循环很慢,所以我认为您需要用C实现它,并通过ctypes调用它。目标机器中有c编译吗?在如果您可以将滤波器设计为FIR滤波器,那么您可以使用
numpy.convolve(b, x)
。在相关问题 更多 >
编程相关推荐