基于MATLAB实现时间序列小波相干性分析

一、核心代码实现

%% 1. 数据生成与预处理
rng(0); % 固定随机种子
t = 0:0.001:2; % 时间轴(0.001秒采样间隔)
% 生成含噪声的耦合信号
x = cos(2*pi*10*t).*(t>=0.5 & t<1.1) + ...
     cos(2*pi*50*t).*(t>=0.2 & t<1.4) + 0.25*randn(size(t));
y = sin(2*pi*10*t).*(t>=0.6 & t<1.2) + ...
     sin(2*pi*50*t).*(t>=0.4 & t<1.6) + 0.35*randn(size(t));

%% 2. 小波相干性分析
[coherence, period, scale, coi, sig95] = wcoherence(x, y, seconds(0.001));

%% 3. 可视化参数设置
figure;
hold on;
h = pcolor(t, log2(period), coherence);
h.EdgeColor = 'none';
ax = gca;
ax.YTick = log2([0.01,0.1,1,10]); % 关键周期刻度
ax.YTickLabel = {'0.01','0.1','1','10'};
xlabel('时间 (秒)');
ylabel('周期 (秒)');
title('小波相干性分析图谱');
colorbar;
caxis([0.2 1]); % 设置颜色映射范围

%% 4. 显著性检验与边界效应
plot(ax, t, log2(coi), 'w--', 'LineWidth', 1.5); % 影响锥边界
% 添加显著性阈值线
[~,h_sig] = contour(ax, t, log2(period), sig95, [0.95 0.95], ...
    'r', 'LineWidth', 1.2);
set(h_sig, 'LineStyle', '--');

%% 5. 相位关系分析(可选)
[~, phase] = angle(coherence); % 获取相位信息
figure;
quiver(t(1:10:end), log2(period(1:10:end)), ...
    cos(phase(1:10:end)), sin(phase(1:10:end)), 'b');
hold on;
plot(t, log2(coi), 'w--', 'LineWidth', 1.5);
xlabel('时间 (秒)');
ylabel('周期 (秒)');
title('相位关系矢量图');

二、关键参数解析

参数 含义 典型值
scale 小波尺度(与频率成反比) 2(-6)~26
period 对应频率的周期(秒) 0.01~10
coi 影响锥边界(Cone of Influence) 边界效应区
sig95 95%显著性水平阈值 动态计算值

三、结果解读要点

  1. 颜色映射

    • 红色表示强相关(相干性>0.8)

    • 蓝色表示弱相关(相干性<0.3)

    • 白色为显著性边界(COI)

  2. 典型特征识别

    • 高频同步(周期<1秒):可能反映瞬态事件耦合

    • 低频共振(周期>5秒):可能对应系统固有频率

    • 相位箭头:→表示同相位,←表示反相位,↑↓表示相位差±π/2


四、高级应用扩展

1. 多尺度显著性检验

% 计算Monte Carlo显著性阈值
nMC = 1000; % 模拟次数
[~, sigMC] = wcoherence(x, y, seconds(0.001), 'NumMonteCarlo', nMC);

2. 时变频率分析

% 使用连续小波变换
[cfs_x, f_x] = cwt(x, 'morl', 'SamplingPeriod', seconds(0.001));
[cfs_y, f_y] = cwt(y, 'morl', 'SamplingPeriod', seconds(0.001));
cross_spectrum = cfs_x .* conj(cfs_y);

3. 三维可视化

% 生成三维相干曲面
[X, Y] = meshgrid(t, log2(period));
surf(X, Y, coherence', 'EdgeColor', 'none');
view(3);
shading interp;

参考代码 实现时间序列的小波相干性分析,并画出图谱 www.youwenfan.com/contentcnq/63834.html

五、工程注意事项

  1. 数据预处理

    • 必须进行去趋势和标准化处理

    • 缺失值需用线性插值填补

  2. 参数选择

    • 小波基推荐Morlet小波('morl'

    • 采样周期需与数据采样率匹配

  3. 计算优化

    • 长序列建议分段处理(每段>1000点)

    • 使用GPU加速(需Parallel Computing Toolbox)


六、应用案例对比

数据集 主要周期成分 显著相位关系 物理意义
气象温度数据 24h, 12h 温度-湿度→相位相反 蒸发冷却效应
股票价格数据 周期性波动 收盘价-成交量→同相位 市场供需联动
生物医学信号 0.1-0.5Hz EEG-EOG→相位差稳定 神经-眼动协同机制
posted @ 2026-01-19 12:45  我是一只小小鸟~  阅读(2)  评论(0)    收藏  举报