python 实现matlab,基于python实现matlab filter函数过程详解

基于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]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2020-06-07

map()函数可以对一个数据进行同等迭代操作.例如: def f(x): return x * x r = map(f, [

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值