分形分析 Hurst 指数计算与验证系统
项目介绍
本系统是一个专门用于分形分析的工具集,专注于时间序列长程相关性的定量评估。系统实现了从复杂随机过程信号合成到核心非线性指标提取的全流程,通过分数布朗运动(fBm)模拟具有特定记忆特性的样本数据,并利用重标极差分析法(R/S Analysis)对这些数据进行 Hurst 指数的回测与验证。该系统能够帮助研究人员直观地观测不同 Hurst 指数下信号的持久性特征,并通过严谨的统计回归提供量化依据。
功能特性
- 高精度信号合成:系统内置基于 Davies-Harte 算法的噪声生成模块,能够精确生成符合理论自协方差特性的分数高斯噪声(fGn)及其累加序列分数布朗运动(fBm)。
- 多尺度 R/S 分析:支持在对数空间内自动划分计算尺度,通过对子区间的均值平移、累积偏离及极差计算,实现对序列复杂度的深度挖掘。
- 线性拟合估值:利用双对数坐标系下的最小二乘法回归提取回归斜率,将理论目标值与实际估计值进行对比。
- 可靠性评估:系统自动计算决定系数(R²)和残差,用于评估线性拟合的平滑度及其结果的置信度。
- 可视化集成:同步生成时间序列波形图与 R/S 拟合折线图,支持直观的分析与对比。
系统实现逻辑
系统按照以下逻辑流程运行:
- 参数初始化:预设目标 Hurst 指数(如 0.7、0.8)、序列长度(2的幂次方,以便于 FFT 计算)以及 R/S 分析的尺度跨度。
- 分数噪声生成:通过计算自协方差函数并构造循环矩阵的特征值,利用快速傅里叶变换(FFT)在频域中合成随机信号,经过逆变换获得分数高斯噪声。
- 时间序列重构:对生成的分数高斯噪声进行累加求和,转换为具有长程演化特征的分数布朗运动序列。
- 多尺度采样分析:将序列划分为不同长度的区间,在每个区间内执行重标极差运算。
- 回归与验证:对尺度项与极差均值项取常用对数,进行线性拟合,得到的斜率即为估计的 Hurst 指数。
关键函数与算法分析
该模块采用谱方法实现。首先计算基于预设 Hurst 指数的自协方差序列,随后构造循环矩阵的第一行。通过 FFT 将协方差转化为特征值,在频域赋予标准正态分布的随机性,再通过逆 FFT 返回实数空间。最后对数据进行归一化处理,确保均值为0,标准差为1。这种方法保证了生成序列在统计意义上严格符合分形特征。
该模块是系统的核心。它首先在对数尺度上生成等间距的采样规模。针对每一个规模,将原始序列切割为不重叠的子片段。对于每个片段,执行以下精细化步骤:
*
计算均值并平移:消除局部均值的影响。
*
求取累积偏差序列:反映信号相对于局部均值的偏离趋势。
*
计算极差(Range):即累积偏差序列的最大值与最小值之差。
*
计算标准差(Standard Deviation):用于对极差进行重新标度,消除震荡幅度的干扰。
*
求取均值:对当前尺度下所有片段的 R/S 值取平均,作为该尺度下的代表值。
使用多项式拟合函数对对数指标进行一阶回归。除了计算斜率外,系统还通过残差平方和与总离差平方和的关系计算出 R² 值,用来量化信号的长程自相似性是否严格符合幂律关系。
使用方法
- 在 MATLAB 环境中直接运行主函数。
- 系统将自动依次处理多个预设的目标 Hurst 指数。
- 运行结束后,命令行窗口会输出对应的目标值、估计值以及拟合相关系数。
- 图形窗口将弹出四组子图:上方展示 fbm 序列的动态演化波形,下方展示 R/S 分析的双对数回归直线及采样点位。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 核心工具箱:基础 MATLAB 功能(包含 polyfit, fft, randn 等标准函数库)。
- 硬件建议:由于涉及大规模 FFT 运算和循环计算,建议内存不低于 8GB。