为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python3.7.0 中使用 scipy.signal.lfilter() 时出错:

在 Python3.7.0 中使用 scipy.signal.lfilter() 时出错:

慕勒3428872 2021-06-07 17:27:20
我有一个包含 256 个数据元素的列表。我想使用椭圆过滤器过滤这些数据。import matplotlib.pyplot as pltfrom scipy.signal import *import numpy as npdef elliptical_bandpass():    Fs=256    lowcut=5    highcut=30    order=5    Rp = 0.5;      # Passband Ripple (dB)    Rs = 30;     #  Stopband Ripple (dB)    nyq = Fs/2 #Nyquist frequency    wp = lowcut / nyq    ws = highcut / nyq当我运行它时,我看到滤波器设计和系数是正确的,但我使用 lfilter 时出错文件“C:\Users\gtec\AppData\Local\Programs\Python\Python37-32\lib\site-packages\scipy\signal\signaltools.py”,第 1354 行,在 lfilter 中返回 sigtools._linear_filter(b, a, x,axis) SystemError: 返回 NULL 没有设置错误以前我使用的是 python2.7,它执行时没有任何错误。现在我使用的是 Python3.7.0
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

问题是这c3是一个字符串列表。 lfilter期望一个数值序列。它不会自动将字符串转换为数字,因此您必须在调用lfilter.

做类似的事情

c3 = [float(t) for t in c3]

在传递c3lfilter.

更好的是回顾一下您c3在“真实”代码中的实际创建方式(假设问题中的代码是一个简化示例)。在创建时将字符串转换为数字是有意义的c3


查看完整回答
反对 回复 2021-06-09
  • 1 回答
  • 0 关注
  • 370 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信