我有一個包含 256 個數(shù)據(jù)元素的列表。我想使用橢圓過濾器過濾這些數(shù)據(jù)。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當我運行它時,我看到濾波器設計和系數(shù)是正確的,但我使用 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,它執(zhí)行時沒有任何錯誤?,F(xiàn)在我使用的是 Python3.7.0
1 回答

梵蒂岡之花
TA貢獻1900條經(jīng)驗 獲得超5個贊
問題是這c3
是一個字符串列表。 lfilter
期望一個數(shù)值序列。它不會自動將字符串轉(zhuǎn)換為數(shù)字,因此您必須在調(diào)用lfilter
.
做類似的事情
c3 = [float(t) for t in c3]
在傳遞c3
到lfilter
.
更好的是回顧一下您c3
在“真實”代碼中的實際創(chuàng)建方式(假設問題中的代碼是一個簡化示例)。在創(chuàng)建時將字符串轉(zhuǎn)換為數(shù)字是有意義的c3
。
添加回答
舉報
0/150
提交
取消