1. 文件结构

WaveletPeriod/
├── main_wavelet_period.m   % 一键运行
├── wavelet_power_spectrum.m % 小波功率谱 + 显著性
├── period_peak_detect.m     % 自动周期峰值
├── plot_wavelet_results.m   % 时频图 + 周期图
└── example/└── temp.csv             % 示例月平均温度

2. 核心函数

① 小波功率谱(wavelet_power_spectrum.m)
function [W, period, scale, sig95] = wavelet_power_spectrum(x, dt, mother)
% 输入:
%   x     : 1×N 时间序列
%   dt    : 采样间隔(月/日/年)
%   mother: 'Morlet'(默认)
% 输出:
%   W     : 小波功率谱(N×Nscale)
%   period: 周期向量(与 W 行对应)
%   sig95 : 95% 显著性水平if nargin<3, mother = 'Morlet'; end
% 1. 选择母小波
[wave, scale] = morlet_wavelet(length(x), dt);
% 2. 连续小波变换
W = cwt(x, scale, wave);
% 3. 显著性检验(红噪声背景)
sig95 = red_noise_significance(x, dt, scale);
end
② Morlet 母小波生成(morlet_wavelet.m)
function [wave, scale] = morlet_wavelet(N, dt)
s0   = 2*dt;           % 最小尺度
dj   = 0.125;          % 尺度步长
J    = floor(log2(N)*dj^-1);
scale = s0 * 2.^((0:J)*dj);
wave  = { @(s,t) pi^(-0.25) .* exp(1j*5*t./s) .* exp(-0.5*(t./s).^2) };
end
③ 显著性检验(红噪声背景)
function sig95 = red_noise_significance(x, dt, scale)
% Torrence & Compo 红噪声显著性
alpha = ar1_coeff(x);                % 估计 AR(1) 系数
varx  = var(x);
sig95 = varx * (1-alpha^2) ./ (1 - 2*alpha*cos(2*pi/(scale/dt)) + alpha^2);
sig95 = sig95 * 0.95;                % 95% 分位
end

3. 运行(main_wavelet_period.m)

clear; clc; close all; addpath('.');%% 1. 读入时间序列(月平均温度)
data = readmatrix('example/temp.csv');  % 两列:日期, 温度
t    = data(:,1);   x = data(:,2);
dt   = 1;           % 月间隔%% 2. 小波功率谱
[W, period, scale, sig95] = wavelet_power_spectrum(x, dt);%% 3. 周期峰值检测
[pkPer, pkVal] = period_peak_detect(W, period);%% 4. 可视化
plot_wavelet_results(t, x, W, period, sig95, pkPer, pkVal);

4. 结果可视化(plot_wavelet_results.m)

  • 左侧:小波功率谱时频图(暖色 = 高能量)
  • 右侧:全局小波谱(蓝线)+ 95% 显著性(红线)+ 峰值标注

示例输出

  • 显著周期:12 个月(年循环)
  • 次峰值:6 个月(半年谐波)

参考代码 用于时间序列的小波周期分析 www.youwenfan.com/contentcsh/53539.html

5. 结果指标(示例月温度)

周期能量峰值显著性
12 月0.84>95 %
6 月0.31>95 %

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/97915.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/97915.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/97915.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何精准配置储

当电费账单变身利润引擎&#xff0c;您的企业是否做好了准备&#xff1f;鹧鸪云储能仿真软件&#xff0c;不止于仿真——我们以智能算法为核心&#xff0c;为企业定制“高收益、高适配、可持续”的储能配置方案&#xff0c;将用电数据转化为新一轮增长动能。智慧大脑&#xff1…

Uniapp崩溃监控体系构建:内存泄漏三维定位法(堆栈/资源/线程)

在Uniapp开发中&#xff0c;内存泄漏是导致应用崩溃的核心隐患。通过堆栈分析、资源追踪和线程监控三维定位法&#xff0c;可系统化定位泄漏源。以下是完整实施方案&#xff1a;一、堆栈维度&#xff1a;泄漏对象溯源内存快照比对使用Chrome DevTools定期获取内存快照&#xff…

NLP中Subword算法:WordPiece、BPE、BBPE、SentencePiece详解以及代码实现

本文将介绍以下内容&#xff1a; 1. Subword与传统tokenization技术的对比2. WordPiece3. Byte Pair Encoding (BPE)4. Byte-level BPE(BBPE)5. SentencePiece 以及各Subword算法代码实现 一、Subword与传统tokenization技术的对比 1. 传统tokenization技术 传统tokenizatio…

十一章 无界面压测

一、采用无界面压测的原因1.节约系统资源。 2.更快捷&#xff0c;只需要启动命令即可进行压测 3.主要是用于性能压测集成.无界面压测命令参数&#xff1a; -n 表示无界面压测 -t 制定你的 jmx 脚本 -l 生成 jtl 测试报告二、注意配置文件设置:输出为xml jmeter.save.s…

从零实现 Qiankun 微前端:基座应用控制子应用路由与信息交互

随着前端业务的快速发展,单体应用模式(Monolith)越来越难以支撑复杂业务场景。微前端(Micro Frontends)应运而生,它将大型应用拆解成多个子应用(Micro App),通过主应用进行统一调度和集成。 在微前端技术栈中,Qiankun(乾坤)是一个广泛使用的解决方案,基于 single…

在业务应用中集成 go-commons,实现应用+系统双指标监控

在日常 Go 服务开发中&#xff0c;我们通常需要同时监控 业务指标&#xff08;比如 QPS、请求延迟、错误率&#xff09;&#xff0c;也需要关注 系统指标&#xff08;CPU、内存、磁盘占用情况&#xff09;。 过去这类场景通常要引入多个库&#xff1a;一个负责业务指标采集&…

容器化部署番外篇之docker网络通信06

一、四种网络模式 Bridge模式&#xff1a;容器的默认网关&#xff0c;默认新建容器的网络模式Host模式&#xff1a;容器和宿主机共用一个 Network&#xff0c;使用主机的IP:PORT就可以访问容器&#xff0c;但安全性不高&#xff0c;用得少Container模式&#xff1a;这个模式指定…

Linux 线程的概念

序言&#xff1a; 在这篇博客中我们将讲解线程的概念&#xff0c;如何理解线程&#xff0c;线程和进程的区别&#xff0c;线程的优缺点等&#xff0c;我相信你看完这篇博客后会以别样的视角重新理解线程&#xff0c;下面的内容全部是基于Linux操作系统的。 一、线程的概念 1…

vscode 中通义灵码显示登录过期

本文主要分享&#xff1a;vscode 中通义灵码显示登录过期的解决办法。vscode 中的小插件通义灵码&#xff0c;用的好好的&#xff0c;突然提示&#xff1a;登录过期&#xff0c;尝试访问网页版阿里云&#xff0c;登录后&#xff0c;关闭 vscode 重新打开&#xff0c;通义灵码还…

ESP32C3-MINI-1开发板踩坑记录

某东买了一个ESP32C3-MINI-1开发板&#xff0c;名字跟ESP官网的很像&#xff0c;想着应该差不多的&#xff0c;价格便宜17块&#xff0c;而官网的就贵了60还不包邮&#xff0c;买来才发现是巨坑。 看结论&#xff0c;直接到最后&#xff0c;前面都是我的踩坑过程。第一块板子发…

基于粒子群算法的山地环境无人机最短路径规划研究(含危险区域约束的三维优化方法)

无人机在复杂地形与危险环境中的自主路径规划是保障任务顺利执行的关键问题。本文针对山地环境下单无人机三维路径规划难题&#xff0c;提出了一种基于粒子群算法&#xff08;PSO&#xff09;的优化方法。首先&#xff0c;建立了包含真实地形高程、危险区域和飞行约束条件的三维…

Linux-> UDP 编程2

目录 本文说明 一&#xff1a;字典程序的几个问题 1&#xff1a;字典的本质 2&#xff1a;翻译功能的本质 3&#xff1a;让服务端和翻译功能相关联 二&#xff1a;字典类(Dict.hpp) 1&#xff1a;加载词典(Load) 2&#xff1a;翻译单词(Translate) 三&#xff1a;服务…

辉视养老方案:重塑老年生活的温馨与安心

在当今社会&#xff0c;随着老龄化进程的加速&#xff0c;如何为老年人提供更加便捷、舒适且安全的养老环境&#xff0c;成为了全社会共同关注的焦点。辉视养老方案应运而生&#xff0c;它以科技为翼&#xff0c;以关爱为心&#xff0c;通过远程探望、客控系统、信息服务、IPTV…

SQuAD:机器阅读理解领域的里程碑数据集

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 1 什么是SQuAD&#xff1f; SQuAD&#xff08;Stanford Question Ans…

【vim,Svelte】怎样使用 vim 编辑 Svelte 那些奇奇怪怪名字的文件?

当你要使用 vim&#xff08;或者neovim&#xff09;来编辑 Svelte 下面的文件时&#xff0c;比如这些文件&#xff1a; page.svelte layout.svelte$ vim page.svelte $ vim "page.svelte" $ vim page.svelte $ vim \page.svelte使用上面的命令&#xff0c;你会遇到这…

深入解析 HTTP 状态码

在日常的网络浏览和 Web 开发过程中&#xff0c;我们总会不可避免地遇到各种 HTTP 状态码。比如常见的 “404 Not Found”&#xff0c;它意味着我们所请求的页面不存在&#xff1b;还有 “500 Internal Server Error”&#xff0c;表示服务器端出现了错误。这些由三位数字组成的…

【C++】C++类和对象—(中)

前言&#xff1a;在上一篇类和对象(上)的文章中我们已经带领大家认识了类的概念&#xff0c;定义以及对类和对象的一些基本操作&#xff0c;接下来我们要逐步进入到类和对象(中)的学习。我们将逐步的介绍类和对象的核心——类和对象的六个默认成员函数。(注意&#xff1a;这六个…

使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目

今天给大家分享一个我最近做的一个学校宿舍管理系统&#xff0c;python版&#xff0c;这个系统实现的功能有&#xff1a;首页 | 学校管理 | 宿舍楼管理 | 宿舍管理 | 学生管理 | 学生调宿 | 学生退宿 | 报修等级 | 宿舍卫生评分 | 违纪记录 | 管理员管理 。一共有11个菜单。 使…

阻塞 vs 非阻塞:程序等待的两种哲学

当程序需要等待外部操作时&#xff0c;是应该"干等"还是"边等边干"&#xff1f;为什么有些程序会卡住不动&#xff0c;而另一些却能流畅运行&#xff1f;这一切都取决于阻塞与非阻塞的编程选择&#xff01;本文将为你揭示这两种模式的本质区别&#xff01;…

MySQL 核心操作全解析(用户 + SHOW+DML+DCL)

MySQL 核心操作全解析&#xff08;用户 SHOWDMLDCL&#xff09; 基于你提供的实操笔记&#xff0c;我们将 MySQL 核心操作拆解为用户管理、SHOW 查询命令、DML 数据操作、TRUNCATE 与 DELETE 对比、DCL 权限控制五大模块&#xff0c;梳理语法逻辑、补充避坑提示&#xff0c;帮…