东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2068|回复: 5
打印 上一主题 下一主题

[Python] python实现matlab中的filter函数

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14439
QQ
跳转到指定楼层
楼主
发表于 2022-2-10 14:52:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式





python实现matlab中的filter函数


  1. clc;clear all;close all;


  2. h = [8, -3.5, 0.5, -1.5, 0.2517, 18, 19, 20];
  3. a = [1];
  4. x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];

  5. y = filter(h,a,x);

  6. % y的值:[8,12.5000000000000,17.5000000000000,21,24.7517000000000,46.5034000000000,87.2551000000000,148.006800000000,208.758500000000,269.510200000000,330.261900000000,391.013600000000,451.765300000000,512.517000000000,573.268700000000,634.020400000000]

复制代码




  1. import numpy as np
  2. from scipy.signal import lfilter


  3. def filter_matlab(b, a, x):
  4.     y = []
  5.     y.append(b[0] * x[0])
  6.     for i in range(1, len(x)):
  7.         y.append(0)
  8.         for j in range(len(b)):
  9.             if i >= j:
  10.                 y[i] = y[i] + b[j] * x[i - j]
  11.                 j += 1
  12.         for l in range(len(b) - 1):
  13.             if i > l:
  14.                 y[i] = (y[i] - a[l + 1] * y[i - l - 1])
  15.                 l += 1
  16.         i += 1
  17.     return y


  18. h = [8, -3.5, 0.5, -1.5, 0.2517, 18, 19, 20]
  19. a = [1]
  20. x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
  21. # y = filter_matlab(h, a, x)    # 这个基本对 但是有bug 以后再细看
  22. # https://stackoverflow.com/questions/8922657/matlab-filter-with-scipy-lfilter
  23. y = lfilter(h, a, x)

  24. # According to their documentation for Matlab filter() and SciPy lfilter()

  25. print("python的结果(个数=%d):" % len(y), y)

  26. # python的结果(个数=16): [  8.      12.5     17.5     21.      24.7517  46.5034  87.2551 148.0068
  27. #  208.7585 269.5102 330.2619 391.0136 451.7653 512.517  573.2687 634.0204]
复制代码







让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

32

帖子

90

积分

注册会员

Rank: 2

积分
90
沙发
发表于 2022-3-24 14:58:26 | 只看该作者
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

32

帖子

90

积分

注册会员

Rank: 2

积分
90
板凳
发表于 2022-4-4 16:07:17 | 只看该作者

请问怎样才有198的阅读权限?
回复

使用道具 举报

0

主题

32

帖子

90

积分

注册会员

Rank: 2

积分
90
地板
发表于 2022-4-4 16:07:54 | 只看该作者

请问怎样才有198的阅读权限?
回复

使用道具 举报

0

主题

32

帖子

90

积分

注册会员

Rank: 2

积分
90
5#
发表于 2022-4-4 16:08:10 | 只看该作者

请问怎样才有198的阅读权限?
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14439
QQ
6#
 楼主| 发表于 2022-4-4 16:55:48 | 只看该作者
Dummy 发表于 2022-4-4 16:08
请问怎样才有198的阅读权限?

联系我微信:dfy_88888
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-19 11:53 , Processed in 0.170494 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表