基于python实现matlab filter函数过程详解
matlab中的filter函数:
y=filter(b,a,x)
python实现matlab中的filter函数
deffilter_matlab(b,a,x): y=[] y.append(b[0]*x[0]) foriinrange(1,len(x)): y.append(0) forjinrange(len(b)): ifi>=j: y[i]=y[i]+b[j]*x[i-j] j+=1 forlinrange(len(b)-1): ifi>l: y[i]=(y[i]-a[l+1]*y[i-l-1]) l+=1 i+=1 returny
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]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。