基于快速傅里叶变换的外汇Tick数据去噪:自动阈值确定
基于FFT的货币对Tick数据自动去噪需求
我拥有大量货币对Tick数据集,希望使用Fast Fourier Transform(FFT)进行去噪。目前只能通过绘图尝试不同值确定阈值,但这种方式无法满足需求——该模块需要集成到持续接收并预处理新数据的大型系统中,因此必须实现阈值的自动确定。
现有实现代码
market_data = market_data["<BID>"] market_data = market_data.fillna(method="ffill") market_data = market_data.fillna(method="bfill") market_data = market_data - market_data.mean() fourier = np.fft.fft(market_data) amplitude_filter = fourier.copy() amplitude_filter[(np.abs(amplitude_filter) < treshold)] = 0 # 阈值应用部分 amplitude_filtered_back = np.fft.ifft(amplitude_filter)
效果示例
- 阈值设为8000的去噪效果:经过FFT阈值过滤后,数据曲线平滑度提升,高频噪声被大幅抑制
- 聊天参考的频率过滤示例:仅保留频率分量的最后80个索引,对应去噪后的平滑数据曲线
- 原始数据:未处理的Tick数据,包含大量高频波动噪声
频率过滤代码片段
amplitude_filter = amplitude_filter[-80:]
目前核心待解决问题:仍需实现自动确定阈值或选择保留频率索引的逻辑。
内容的提问来源于stack exchange,提问作者Vinicento
相关产品推荐
相关产品推荐

