2013-09-25 46 views
-1

我已经通过使用scipy写了一个低通巴特沃思滤波器。我有这样的数据例如-2,-1,0,1,2,但过滤器将其更改为0,-1,2,1,2。任何想法来解决它?低通巴特沃斯scipy的问题

def lowPassButterworthDigital(self, signal1 =None, signal2 = None): 
     ''' 
     Digital low-pass Butterworth filter 
     ''' 
     #design filter 
     signals = [signal1, signal2] 
     for i in range(len(signals)): 
      b,a = signal.butter(2, 0.1, "low", False, "ba") 

      if i == 0: 
       signal1 = signal.lfilter(b, a, signal1) 
      else: 
       signal2 = signal.lfilter(b, a, signal2) 
     return signal1, signal2 
+2

您看到了什么问题?也许一些示例输入,输出会有所帮助? – Freddie

回答

0

我成功解决了这个问题。我将过滤器更换为filteredfilt

def lowPassButterworthDigital(self, signal1 =None, signal2 = None): 
    ''' 
    Digital low-pass Butterworth filter 
    ''' 
    #design filter 
    signals = [signal1, signal2] 
    print signal1 
    print signal2 
    for i in range(len(signals)): 
     b,a = signal.butter(2, 0.1, "low", False, "ba") 

     if i == 0: 
      signal11 = signal.filtfilt(b, a, signal1) 
      print signal11 
     else: 
      signal2 = signal.filtfilt(b, a, signal2) 
      print signal2 


    return signal11, signal2