python 滤波

1. HP滤波

https://blog.csdn.net/itnerd/article/details/105948495

HP 滤波是一种分解信号的低频趋势与高频部分的滤波方法:

https://blog.csdn.net/weixin_39777626/article/details/88003139

相关讨论

https://bbs.pinggu.org/thread-68565-1-1.html

《中国经济周期波动的测定和理论研究》一书中看到的(著者:陈磊,东北财经大学出版社2005年10月版,该书由社科院刘树成作序言一、东财夏德仁作序言二)。

关于HP滤波,该书第40页说:“一些研究(如Harvey and Jaeger,1993)分析了这种滤波的结果,表明对于差分平稳过程可能产生伪周期,从而在消除趋势后的数据中所观察到的周期波动仅仅反映了滤波的性质,而没有告诉我们数据本身的特征。”

第79页说:“现代经济计量学的研究证明,去势(即分离趋势detrend——引者注)的方法在一定程度上依赖于变量时序的趋势特性,即变量是趋势平稳序列还是差分平稳序列。有鉴于此,本节将首先对我国主要经济总量指标长期趋势的性质进行严格的统计检验,以确定适当的趋势分离方法。”

他们认为一般使用时,不要求同时属于“趋势平稳”和“非差分平稳”,只要满足“趋势平稳”就行了。也有人认为两者必须全部满足。但我看到的文章都是仅要求满足趋势平稳就行了。国内使用时,也没有考虑这么详细。

公式推导

https://blog.csdn.net/Mikumiku339/article/details/111345966

python实现

https://blog.csdn.net/itnerd/article/details/105948495

@ 用法

1.

https://www.zhihu.com/question/36223283

在python 3.5以后,@是一个操作符,表示矩阵-向量乘法

A@x 就是矩阵-向量乘法A*x: np.dot(A, x)

http://c.biancheng.net/view/2270.html

2.函数装饰器

  1. @funA
  2. def funB():
  •  等价于
  1. def funB():
  2. funB = funA(funB)

numpy.dot(a,b)

https://blog.csdn.net/lens___/article/details/84303054

2. 二阶低通滤波?

def LowpassFilter(dataRaw,alpha):
    '''
    二阶低通滤波
    '''
    n=len(dataRaw)
    data=[dataRaw[0],dataRaw[1]]
    #alpha=0.02
    for i in range(2,n):
        temp=(alpha-(alpha*alpha)/4)*dataRaw[i]+(alpha*alpha/2)*dataRaw[i-1]-(alpha-3*alpha*alpha/4)*dataRaw[i-2]+2*(1-alpha)*data[i-1]-(1-alpha)**2*data[i-2]
        data.append(temp)
    return data 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中可以使用二阶低通滤波来进行滤波分解。这个滤波器可以通过在给定的窗口内计算新数据点的加权平均值来平滑数据。具体实现代码可以参考引用中提供的Python实现函数"LowpassFilter"。该函数接受原始数据和一个参数alpha作为输入,返回经过二阶低通滤波后的数据。 在滤波过程中,根据二阶低通滤波的公式,新的数据点是通过对前面的数据点进行加权平均来计算的。这个加权平均是根据当前数据点、前两个数据点和alpha值计算得出的。具体公式如下: temp = (alpha - (alpha * alpha) / 4) * dataRaw[i] + (alpha * alpha / 2) * dataRaw[i-1] - (alpha - 3 * alpha * alpha / 4) * dataRaw[i-2] + 2 * (1 - alpha) * data[i-1] - (1 - alpha) ** 2 * data[i-2] 其中,dataRaw是原始数据,data是滤波后的数据,i是当前数据点的索引。 需要注意的是,alpha是一个介于0和1之间的参数,用于调整滤波器的响应速度。较小的alpha值会产生更平滑的输出,但可能会导致滤波器对快速变化的信号响应较慢。 滤波分解是通过重复应用这个滤波器来逐步平滑数据的过程。每次应用滤波器,原始数据都会变得更平滑。这样,可以得到一系列不同程度平滑的数据,从而实现滤波分解。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python 滤波](https://blog.csdn.net/jack__captain/article/details/117525456)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值