利用Python实现IIR滤波器(待续)

1.1 直接I型

利用Python实现IIR滤波器(待续)_第1张图片利用Python实现IIR滤波器(待续)_第2张图片

1.2 算法实现

class filter:
    def __init__(self,order,a_weight,b_weight):
        self.order=order
        self.output=[]
        self.IIR_Output=[]
        self.a_order=order
        self.b_order=order
        self.a_weight=a_weight
        self.b_weight=b_weight
        self.vo=[0]*self.b_order
        self.vo_index=0
   
    def IIR_Filter(self,vi):
        sum_array=[]
        sum_out=0
        for index_vi in range(len(vi)):
            sum_a=0
            for i in range(self.b_order):
                sum_a=sum_a + self.b_weight[i]*vi[index_vi-i]
             
            sum_b=0
            
            for j in range(self.a_order):
                if len(self.vo)<self.a_order:
                    sum_b=sum_b + self.a_weight[i]*self.vo[index_vi-i]
            
            sum_out = sum_out+sum_a+sum_b
            sum_array.append(sum_out)
            self.vo[self.vo_index] = sum_out
            self.vo_index=self.vo_index+1
            if(self.vo_index>=self.a_order):
                self.vo_index=0
            
        return sum_array

1.3 数据仿真

2.1直接II型

利用Python实现IIR滤波器(待续)_第3张图片

利用Python实现IIR滤波器(待续)_第4张图片

利用Python实现IIR滤波器(待续)_第5张图片

2.2 算法实现

2.3 数据仿真

你可能感兴趣的:(笔记)