一维时间序列信号的奇异小波时频分析方法(Python)

最初的时频分析技术就是短时窗傅里叶变换STFT,由于时窗变短,可供分析的信号量减少,采用经典的谱估算方法引起的误差所占比重会增加。且该短时窗一旦选定.则在整个变换过程中其时窗长度是固定的。变换后的时频分辨率也即固定,这不利于低频和高频信号的检测。如果在时频分析中用长度变化的时窗来变换信号。就可更好地分析局部频率特征,这就是小波变换。根据测不准原理.小波变换的时间域分辨率和频率域分辨率不可能同时任意好,Stockwell提出的S变换是以Morlet小波为基本小波的连续小波变换的延伸.区别在于S变换中基本小波由简谐波与Gaussian函数乘积构成。基本小波中的简谐波在时间域仅作伸缩变换,Gaussian函数则进行伸缩和平移变换,而连续小波变换中简谐波与Gaussian函数同时进行伸缩和平移。此外,连续小波变换使用正交小波将信号从时间域分解到时间一尺度域,而S变换使用非正交小波将信号从时间域分解到时间一频率域。但由于S变换中的基本小波固定,无法根据地震信号本身选择基本小波。高静怀等Ⅲ提出了广义S变换.用带参数的调幅简谐波代替S变换中的基本小波,然后利用不同参数的基本小波作线性组合形成最终的基本小波。

有学者利用基于STFT时频分析技术对墨西哥湾密西西比河三角洲第四纪沉积环境进行了频谱成像。与传统的振幅属性相比,频谱成像后16Hz的峰值振幅属性图上河道的形态更清晰。与传统的相位属性相比,频谱成像后26Hz的相位属性图上河道的形态及断层均更清晰。

有学者给出了时频分析技术在储层含气性解释中的应用。对地震剖面进行频谱成像后,提取出了3个频率的振幅属性。从10Hz振幅属性剖面上可看到储层之下(约800ms处)有一个很强的反射能量.其也许为砂岩含气形成的"亮点"。但该"亮点"在20Hz振幅属性剖面上已经变弱,在30Hz振幅属性剖面上消失了.说明该"亮点"并不是由于砂岩含气形成的。

有学者提出了一种利用时频分析技术得到局部时频谱的谱反演方法,从而准确估算出随时间变化的地震子波,然后从地震数据中提取出时变子波并计算其反射系数,用于识别远小于地震分辨率的薄层。除了用于识别薄层外。该谱反演方法对刻画较小的上超或下超特征也很有效,这有助于分析准层序分布和沉积物搬运方向。

鉴于此,提出一种一维时间序列信号的奇异小波时频分析方法,时频分辨率得到了提高,程序采用Python编写。

Matlab 复制代码
import numpy as np
import waveletHelper # for wavelet functions

def morlet(Fc, Nc, Fs, norm):
    t = waveletHelper.getWaveletTimeRange(Fc, Nc, Fs) # get the time range where the wavelet is defined
    a = Fc*np.sqrt(2*np.pi)

    envelope = (a/Nc) * np.exp( - (t**2) * (a**2) * np.pi  / (Nc**2))
    wavelet = envelope * np.exp(1j * 2*np.pi*Fc * t)

    return waveletHelper.normalize(wavelet, envelope, norm, Fc)

def cwt(y, frange, Fs, baseCycle, norm, step):
    N, M = len(y), len(frange) # get N points from the input data and M frequency points for correct number of points operations    
    scalogram = np.zeros((M, N), dtype=float) # N points in time, M points in frequency

    for i in range(M):
        o = 1.0 + frange[i]/step # number of cycles increase factor per frequency
        w = morlet(frange[i], baseCycle*o, Fs, norm) # generate the wavelet
        lenW = len(w)
        scalogram[i,:] =  2 * np.abs( np.convolve(y, w, 'full')[lenW//2 -1 : -lenW//2] )**2 #apply convolution operation and correct for the resultant size
    
    return scalogram #rotate from time*frequency to frequency*time (helps heat
完整代码可通过知乎学术咨询获得:https://www.zhihu.com/consult/people/792359672131756032?isMe=1

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关推荐
GEO AI搜索优化助手23 分钟前
AI搜索革命:营销新纪元,GEO时代生成式AI重构搜索
人工智能·搜索引擎·生成式引擎优化·ai优化·geo搜索优化
赵长辉1 小时前
AGI-rag学习:ChromaDB使用1,txt类型文档【20251016课复习】
python·学习·llm·agi
丝瓜蛋汤1 小时前
NCE(noise contrastive estimation)loss噪声对比估计损失和InfoNCE loss
人工智能
DeepVis Research1 小时前
【AGI Safety/Robotics】2026年度 AGI 对抗性强化学习与软体机器人控制基准索引 (Skynet/Legion Core)
人工智能·网络安全·机器人·数据集·强化学习
じ☆冷颜〃5 小时前
分布式系统中网络技术的演进与异构融合架构(HFNA)
笔记·python·物联网·设计模式·架构·云计算
夜思红尘7 小时前
算法--双指针
python·算法·剪枝
人工智能训练7 小时前
OpenEnler等Linux系统中安装git工具的方法
linux·运维·服务器·git·vscode·python·ubuntu
Tipriest_8 小时前
torch训练出的模型的组成以及模型训练后的使用和分析办法
人工智能·深度学习·torch·utils
QuiteCoder8 小时前
深度学习的范式演进、架构前沿与通用人工智能之路
人工智能·深度学习
周名彥8 小时前
### 天脑体系V∞·13824D完全体终极架构与全域落地研究报告 (生物计算与隐私计算融合版)
人工智能·神经网络·去中心化·量子计算·agi