MATLAB 時間序列小波周期分析

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;幫…