首页 > 其他分享 >小波变换原理简要实现和分析

小波变换原理简要实现和分析

时间:2023-04-17 15:12:35浏览次数:45  
标签:简要 1.0 父小波 变换 plt np 原理 totalscal

傅里叶变换是频谱分析的重要工具,适用于周期性平稳信号,但是对于非平稳信号而言,效果较差。

其实质是卷积求正弦波相关性,由于正弦波不是能量有限信号,对无差别做一个全部卷积,算出来的结果不考虑时间。

小波变换也是频谱分析的重要工具,基函数为能量有限信号,也可以进行时域分析。针对不同的信号,可以更换不同的基函数。

建议看看:形象易懂讲解算法I——小波变换 - Alexander - 博客园 (cnblogs.com)

一般有母小波、父小波。母小波就是基函数,父小波是尺度函数,他们都是正交归一化的基向量。父小波是信号在不同尺度空间下的近似。如下所示,为母小波的系数求法,a是尺度,尺度与频率是反比关系,为了保证归一化,要除以根号a。

 关于父小波:小波变换完美通俗讲解系列之 (二) - 知乎 (zhihu.com)

 

 上式的第一项是父小波,第二项则是母小波。

下面是cwt的一个小小实现,抄自(26条消息) python连续小波分析CWT_python 小波变换_赵孝正的博客-CSDN博客

import numpy as np
import pywt
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pylab as plt

sampling_rate = 1024  # 采样频率
t = np.arange(0, 1.0, 1.0/sampling_rate)  # 0-1.0之间的数,步长为1.0/sampling_rate
f1 = 100  # 频率
f2 = 200
f3 = 300
data = np.piecewise(t, [t < 1, t < 0.8, t < 0.3],
                    [lambda t: np.sin(2 * np.pi * f1 * t),
                     lambda t: np.sin(2 * np.pi * f2 * t),
                     lambda t: np.sin(2 * np.pi * f3 * t)]
                    )
wavename = "cgau8"  # 小波函数
totalscal = 256     # totalscal是对信号进行小波变换时所用尺度序列的长度(通常需要预先设定好)
fc = pywt.central_frequency(wavename)  # 计算小波函数的中心频率
cparam = 2 * fc * totalscal  # 常数c
scales = cparam/np.arange(totalscal, 1, -1)  # 为使转换后的频率序列是一等差序列,尺度序列必须取为这一形式(也即小波尺度)
[cwtmatr, frequencies] = pywt.cwt(data, scales, wavename, 1.0/sampling_rate)  # 连续小波变换模块

plt.figure(figsize=(8, 4))
plt.subplot(211)  # 第一整行
plt.plot(t, data)
plt.xlabel(u"time(s)")
plt.title(u"300Hz 200Hz 100Hz Time spectrum")
plt.subplot(212)  # 第二整行

plt.contourf(t, frequencies, abs(cwtmatr))
plt.ylabel(u"freq(Hz)")
plt.xlabel(u"time(s)")
plt.subplots_adjust(hspace=0.4) #调整边距和子图的间距 hspace为子图之间的空间保留的高度,平均轴高度的一部分
plt.show()

 

标签:简要,1.0,父小波,变换,plt,np,原理,totalscal
From: https://www.cnblogs.com/xmds/p/17325915.html

相关文章

  • 微机原理(二)
    第二章:微处理器与总线微型计算机组成传统电子计算机由五大部分组成:运算器、控制器、存储器(内部存储器、外部存储器)、输入设备、输出设备。外部设备:外部存储器、输入出设备。主机:运算器、控制器、、内部存储器。(微处理器)中央处理器(CPU):运算器、控制器。微处理器(CPU)......
  • 深度学习的基本原理和常用框架介绍
    深度学习是一种基于人工神经网络的机器学习方法,它可以从大量的数据中学习抽象和复杂的特征,从而实现各种智能任务,如图像识别、自然语言处理、语音识别等。深度学习的基本原理是利用多层的神经网络结构,通过前向传播和反向传播的算法,不断调整网络中的参数,使得网络的输出能够逼近或优......
  • rem、vw、vh、em原理汇总
    1.rem: rem是根据根元素的font-size大小来设置的,比如设置htmlfont-size=100px,那么1rem=100px,之后所有的元素都可以使用这个基准值来设置大小2.vw:视口宽度单位  1vw=1/100视口宽度,宽度全屏就是100vw3.vh:视口高度单位1vh=1/100视口高度,高度全屏就......
  • 【深度思考】聊聊JDK动态代理原理
    1.示例首先,定义一个接口:publicinterfaceStaff{voidwork();}然后,新增一个类并实现上面的接口:publicclassCoderimplementsStaff{@Overridepublicvoidwork(){System.out.println("认真写bug……");}}假设现在有这么一个需求:在不......
  • .NET无侵入自动化探针原理和主流实现
    前言最近,我在微信公众号和博客园分享了一篇关于.NET微服务系统迁移至.NET6.0的故事的文章,引起了许多读者的关注。其中,许多人对基于OpenTelemetry.NET的观测指标和无侵入自动化探针颇感兴趣。事实上,我已计划抽出时间,与大家分享这方面的内容。巧合的是,在二月末,我收到了来自Op......
  • 基于hough变换的条形码数字分割和数字识别matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:        2.算法涉及理论知识概要       霍夫变换是一种特征提取(featureextraction),被广泛应用在图像分析(imageanalysis)、计算机视觉(computervision)以及数位影像处理(digitalimageprocessing)。霍夫......
  • 基于hough变换的条形码数字分割和数字识别matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要霍夫变换是一种特征提取(featureextraction),被广泛应用在图像分析(imageanalysis)、计算机视觉(computervision)以及数位影像处理(digitalimageprocessing)。霍夫变换是用来辨别找出物件中的特征,例如:线条。他的......
  • Stable Diffusion(一)Stable Diffusion 原理
    StableDiffusion原理此文为译文,原文见:https://stable-diffusion-art.com/how-stable-diffusion-work/StableDiffusion是一个深度学习模型,我们会深入解析SD的工作原理。 1.StableDiffusion能做什么直白地说,SD是一个text-to-image模型,通过给定textprompt(文本提示词),它可......
  • Tomcat长轮询原理与源码解析
    系列文章目录和关于我零丶长轮询的引入最近在看工作使用到的diamond配置中心原理,发现大多数配置中心在推和拉模型上做的选择出奇的一致选择了基于长轮询的拉模型基于拉模型的客户端轮询的方案客户端通过轮询方式发现服务端的配置变更事件。轮询的频率决定了动态配置获取的实......
  • 计算机组成原理—存储器
    计算机组成原理—硬件结构二、存储器1.概述存储器是计算机系统中的记忆设备,用来存放程序和数据1.1存储器的层次结构缓存-主存层次主要解决CPU和主存速度不匹配的问题,速度接近缓存主存-辅存层次主要解决存储系统的容量问题,容量接近与价位接近于主存2.主存储器2.1概述主......