zoukankan      html  css  js  c++  java
  • python实现matlab中的filter函数

    matlab中的filter函数:

    y = filter(b,a,x)

    python实现matlab中的filter函数

    def filter_matlab(b,a,x):
        y = []
        y.append(b[0] * x[0])
        for i in range(1,len(x)):
            y.append(0)
            for j in range(len(b)):
                if i >= j :
                    y[i] = y[i] + b[j] * x[i - j ]
                    j += 1
            for l in range(len(b)-1 ):
                if i >l:
                    y[i] = (y[i] - a[l+1] * y[i -l-1])
                    l += 1
            i += 1
        return y

    example:

    b =  [8,-3.5,0.5]
    a =  [1,-1.5,0.25]
    x = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
    y = filter_matlab(b,a,x)

    函数的结果和matlab的filter函数结果一致,为
    [8,
     24.5,
     52.25,
     94.75,
     156.5625,
     243.65625,
     363.84375,
     527.3515625,
     747.56640625,
     1042.01171875,
     1433.6259765625,
     1952.43603515625,
     2637.74755859375,
     3541.0123291015625,
     4729.581604003906,
     6291.619323730469,
     8342.533584594727,
     11033.395545959473,
     14561.959922790527,
     19187.090997695923]
     
  • 相关阅读:
    排球运动规则简介
    我与计算机
    我和电脑的不解之缘
    作业
    怎样成为一个高手 观后感
    本周作业
    作业个人
    本周作业
    本周总结
    本周总结(13周)
  • 原文地址:https://www.cnblogs.com/chilalaa/p/13043716.html
Copyright © 2011-2022 走看看