HP滤波图文介绍

  • 目标
  • 原理
  • python实现
    • 代码
    • 结果

目标


我们希望去除信号中的趋势,使信号看起来是直的

原理




python实现

代码

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
def hp(y, lamb=10):def D_matrix(N):#(N-1,N) 元素全为0D = np.zeros((N-1,N))#后(N-1,N-1)对角线元素置1D[:,1:] = np.eye(N-1)#前(N-1,N-1)对角线元素置-1D[:,:-1] -= np.eye(N-1)"""D1[[-1.  1.  0. ...  0.  0.  0.][ 0. -1.  1. ...  0.  0.  0.][ 0.  0. -1. ...  0.  0.  0.]...[ 0.  0.  0. ...  1.  0.  0.][ 0.  0.  0. ... -1.  1.  0.][ 0.  0.  0. ...  0. -1.  1.]]"""return DN = len(ts)D1 = D_matrix(N)D2 = D_matrix(N-1)#@是矩阵乘法  D2.shape = (N-2,N-1) D1.shape = (N-1,N) 所以 D.shape = (N-2,N) D = D2 @ D1# G = [i+λF]*-1Y#np.linalg.inv为矩阵求逆 套用公式 D.T@D = F F.shape=(N,N)g = np.linalg.inv((np.eye(N)+lamb*D.T@D))@ tsreturn gN = 100
t = np.linspace(1,10,N)
ts = np.sin(t) + np.cos(20*t) + np.random.randn(N)*0.1
plt.figure(figsize=(10,10))#尝试不同的λ
for i,l in enumerate([0.1,1,10,100,1000, 10000]):plt.subplot(3,2,i+1)g = hp(ts,l)plt.plot(ts, label='original')plt.plot(g, label='filtered')plt.legend()plt.title('$\lambda$='+str(l))
plt.show()

结果


可以看到,λ越大,曲线越平滑

HP滤波图文介绍与python代码实现相关推荐

  1. 数据结构之平衡树:红黑树的介绍与Python代码实现——17

    红黑树的介绍与Python代码实现 红黑树的介绍 红黑树(Red-Black Tree)是一种平衡二叉查找树,它是一种以比较简单的方式实现的2-3查找树 红黑树基于2-3查找树的表现 红链接:将两个2 ...

  2. NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现)、案例应用之详细攻略

    NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现).案例应用之详细攻略 导读:2023年1月30日版本更新,以下是最新消 ...

  3. 数据结构之并查集:并查集的介绍与Python代码实现——18

    并查集的介绍 并查集(Union-find)数据结构也称作合并查找集(Merge-find set)或者不相交集数据结构(disjoint-set data structure),它是一种记录了由一个 ...

  4. python svr回归_SVR入门介绍(Python代码)

    一. SVR原理简述 在前面的文章中详细讨论过关于线性回归的公式推导,线性回归传送站.线性回归的基本模型为: ,从某方面说这和超平面的的表达式: 有很大的相似性.但SVR认为只要 与 不要偏离太大即算 ...

  5. svr公式推导_SVR入门介绍(Python代码)

    一. SVR原理简述 在前面的文章中详细讨论过关于线性回归的公式推导,线性回归传送站.线性回归的基本模型为: ,从某方面说这和超平面的的表达式: 有很大的相似性.但SVR认为只要 与 不要偏离太大即算 ...

  6. 朴素贝叶斯分类器原理介绍及python代码实现

    目录 频率学派和贝叶斯学派 朴素贝叶斯分类器 python实现朴素贝叶斯分类器 频率学派和贝叶斯学派 说起概率统计,不得不提到频率学派和贝叶斯学派,通过对概率的不同理解而演变的两个不同的概率学派. 频 ...

  7. KMeans算法实现步骤介绍及Python代码

    文章目录 一.KMeans算法的步骤 二.KMeans实现过程中需要注意的地方 1.初始聚类中心的确定 2. 常用的距离度量 3. 聚类效果的衡量 SSE 4.迭代结束条件 5.空簇的处理 三.结果展 ...

  8. 有关mean iou 言简意赅的介绍 及python 代码实现

    IOU全名为(Intersection over Union),又称为交并比,通常被应用在目前目标检测算法的评价中,IOU值越高,说明算法对目标的预测精度越高,下面本文将以图的方式来解释IOU的定义. ...

  9. Python代码运行不够流畅?看大神如何多角度优化!

    更多深度文章,请关注:https://yq.aliyun.com/cloud 这是"Python代码性能优化"系列中的第一篇文章--环境设置.通过每个帖子,我将介绍一些Python ...

最新文章

  1. shell与 .sh文件与 .bash文件
  2. mysql jdbc 创建存储过程_mysql JDBC 调用存储过程
  3. opencv图像处理总结
  4. Android -- onWindowFocusChanged
  5. 彻底理解HashMap的元素插入原理
  6. 【剑指offer】面试题45:把数组排成最小的数
  7. Linux/Documentations: Kernel Livepatching
  8. 微信浏览器如何禁止iPhone手机上下滑动网页
  9. 三句话捋清楚java垃圾收集器
  10. matlab单边指数信号傅里叶变换,第三章3典型信号傅里叶变换性质1讲解.ppt
  11. 原生拨号盘设置电信卡呼叫转移概率失败
  12. 小学-综合素质【4】
  13. 物联网、大数据和云计算的基本关系和应用
  14. css: 照片有如层叠效果
  15. 基因家族TBTools
  16. 干货集中营app制作
  17. 在腾讯,我们如何做 Code Review
  18. C语言基础:函数的声明与定义
  19. 图像处理专业术语中英文对照
  20. 大数据 别让技术蛊惑

热门文章

  1. 国家电网泛在电力物联网分析—中台战略
  2. 2019程序seo排名_SEO趋势可帮助您在2019年排名更高
  3. 索引的优缺点以及如何创建索引
  4. Python的轻量级ORM框架peewee
  5. Python之二维列表换行输出
  6. Python 小贴士(1)pythonic 思维
  7. CC协议是怎么一回事?
  8. C#方法摘要-汉字计数器
  9. 【7.2 指标的应用与设计(15%)-业务数据分析】——CDA
  10. Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?(文末福利)