HP滤波图文介绍与python代码实现
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代码实现相关推荐
- 数据结构之平衡树:红黑树的介绍与Python代码实现——17
红黑树的介绍与Python代码实现 红黑树的介绍 红黑树(Red-Black Tree)是一种平衡二叉查找树,它是一种以比较简单的方式实现的2-3查找树 红黑树基于2-3查找树的表现 红链接:将两个2 ...
- NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现)、案例应用之详细攻略
NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现).案例应用之详细攻略 导读:2023年1月30日版本更新,以下是最新消 ...
- 数据结构之并查集:并查集的介绍与Python代码实现——18
并查集的介绍 并查集(Union-find)数据结构也称作合并查找集(Merge-find set)或者不相交集数据结构(disjoint-set data structure),它是一种记录了由一个 ...
- python svr回归_SVR入门介绍(Python代码)
一. SVR原理简述 在前面的文章中详细讨论过关于线性回归的公式推导,线性回归传送站.线性回归的基本模型为: ,从某方面说这和超平面的的表达式: 有很大的相似性.但SVR认为只要 与 不要偏离太大即算 ...
- svr公式推导_SVR入门介绍(Python代码)
一. SVR原理简述 在前面的文章中详细讨论过关于线性回归的公式推导,线性回归传送站.线性回归的基本模型为: ,从某方面说这和超平面的的表达式: 有很大的相似性.但SVR认为只要 与 不要偏离太大即算 ...
- 朴素贝叶斯分类器原理介绍及python代码实现
目录 频率学派和贝叶斯学派 朴素贝叶斯分类器 python实现朴素贝叶斯分类器 频率学派和贝叶斯学派 说起概率统计,不得不提到频率学派和贝叶斯学派,通过对概率的不同理解而演变的两个不同的概率学派. 频 ...
- KMeans算法实现步骤介绍及Python代码
文章目录 一.KMeans算法的步骤 二.KMeans实现过程中需要注意的地方 1.初始聚类中心的确定 2. 常用的距离度量 3. 聚类效果的衡量 SSE 4.迭代结束条件 5.空簇的处理 三.结果展 ...
- 有关mean iou 言简意赅的介绍 及python 代码实现
IOU全名为(Intersection over Union),又称为交并比,通常被应用在目前目标检测算法的评价中,IOU值越高,说明算法对目标的预测精度越高,下面本文将以图的方式来解释IOU的定义. ...
- Python代码运行不够流畅?看大神如何多角度优化!
更多深度文章,请关注:https://yq.aliyun.com/cloud 这是"Python代码性能优化"系列中的第一篇文章--环境设置.通过每个帖子,我将介绍一些Python ...
最新文章
- shell与 .sh文件与 .bash文件
- mysql jdbc 创建存储过程_mysql JDBC 调用存储过程
- opencv图像处理总结
- Android -- onWindowFocusChanged
- 彻底理解HashMap的元素插入原理
- 【剑指offer】面试题45:把数组排成最小的数
- Linux/Documentations: Kernel Livepatching
- 微信浏览器如何禁止iPhone手机上下滑动网页
- 三句话捋清楚java垃圾收集器
- matlab单边指数信号傅里叶变换,第三章3典型信号傅里叶变换性质1讲解.ppt
- 原生拨号盘设置电信卡呼叫转移概率失败
- 小学-综合素质【4】
- 物联网、大数据和云计算的基本关系和应用
- css: 照片有如层叠效果
- 基因家族TBTools
- 干货集中营app制作
- 在腾讯,我们如何做 Code Review
- C语言基础:函数的声明与定义
- 图像处理专业术语中英文对照
- 大数据 别让技术蛊惑