提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、小波变换实现方式
  • 二、使用步骤
    • 1.主要代码
    • 2.示例Demo
  • 总结

前言

前面提到信号FFT变换的基本原理是将信号看成是多个正弦信号(三角函数)叠加而成,但小波分析是将信号看成有小波函数叠加而成,这样在对非稳态信号进行分析时,则会利用到小波函数伸缩性等优点。


一、小波变换实现方式

小波变换分为:1、连续小波变化(CWT);2、离散小波变化(DWT)。
其中连续小波变化主要用于信号的时频分析,离散小波变化用于信号的分解。

二、使用步骤

1.主要代码

代码如下(示例):

import pywt
import numpy as np
import matplotlib.pyplot as pltdef cwt(x, fs, totalscal, wavelet='cgau8'):if wavelet not in pywt.wavelist():print('小波函数名错误')else:wfc = pywt.central_frequency(wavelet=wavelet)a = 2 * wfc * totalscal/(np.arange(totalscal,0,-1))  period = 1.0 / fs[cwtmar, fre] = pywt.cwt(x, a, wavelet, period) amp = abs(cwtmar)return amp, fredef dwt(x,wavelet='db3'):cA, cD = pywt.dwt(x, wavelet, mode='symmetric')ya = pywt.idwt(cA, None, wavelet, mode='symmetric')  yd = pywt.idwt(None,cD, wavelet,mode='symmetric') return ya, yd, cA, cD

2.示例Demo

代码如下(示例):

# -*- coding: utf-8 -*-import pywt
import numpy as np
import matplotlib.pyplot as pltdef cwt(x, fs, totalscal, wavelet='cgau8'):if wavelet not in pywt.wavelist():print('小波函数名错误')else:wfc = pywt.central_frequency(wavelet=wavelet)a = 2 * wfc * totalscal/(np.arange(totalscal,0,-1))    period = 1.0 / fs[cwtmar, fre] = pywt.cwt(x, a, wavelet, period)  amp = abs(cwtmar)return amp, fredef dwt(x,wavelet='db3'):cA, cD = pywt.dwt(x, wavelet, mode='symmetric')ya = pywt.idwt(cA, None, wavelet, mode='symmetric')  yd = pywt.idwt(None,cD, wavelet,mode='symmetric')  return ya, yd, cA, cDif __name__ == '__main__':w = 5z = 30fs = 1024fsw = 5time = 10f = w * zt = np.linspace(0, time - 1 / fs, int(time * fs))x = (1 + 1 * np.sin(2 * np.pi * 20 * t)) * np.sin(2 * np.pi * f * t)amp, fre = cwt(x, fs, 512, 'morl')plt.figure(1)plt.subplot(2, 1, 1)plt.plot(t, x)plt.ylabel('Amplitude')plt.xlabel('time')plt.subplot(2, 1, 2)plt.contourf(t, fre, amp)plt.ylabel('Frequency')plt.xlabel('time')# 离散小波分析ya,yd,_,_ = dwt(x,'db3')plt.figure(2)plt.plot(t, ya)plt.xlabel('time')plt.ylabel('近似系数')plt.show()

总结

上面示例中,连续小波变化返回的是小波系数,尺度频率;离散小波变换返回的是近似系数、细节系数。
随着小波变化的发展,后面出现了小波包变换,对信号的细节分析进一步加强。
小波变换的效果受小波函数影响较大,曾经在故障诊断领域流行过一段时间,也出现了不少论文,但在该实际工程应用中,大家持谨慎态度。
PS:欢迎各位交流,后续有啥想实现的信号处理功能,请在下方评论区留言,或者关注公众号:不说话上代码

Python 信号分析——小波变换相关推荐

  1. python信号分析_Python频谱分析

    我正在尝试估计ECG信号的心率变异性的PSD.为了测试我的代码,我从fantasia ECG database中提取了R-R间隔.我已经提取了信号,可以访问here.为了计算PSD,我使用的是如下所示 ...

  2. Python信号分析 | 连续信号的傅立叶变换

    1.连续周期信号的傅立叶级数 由傅立叶级数的形式可以看出,其都属于积分形式,故在MATLAB中和Python中均可以用积分函数来实现求解. 例:Python中代码如下: ""&qu ...

  3. Python信号分析—波峰波谷

    @[TOC](文章目录) #任务目标 以折线图的形式表现信号,以茎图的形式表现波峰波谷数值,检验给出的波峰波谷数值是否与原信号相符 一.Material 数据:GitHub - SHUTCM-tcme ...

  4. 计算机算法音乐专业,音乐信号分析算法的乐理简说(非音乐专业的乐理)

    前言 这篇文章不是讲乐理知识的,那是音乐制作人,编曲人员所需要钻研的学问,不过你要有兴趣也可以看看专业的乐理知识. 这里仅仅是说在音乐信号分析的项目中,我们需要知道的一些参数的意义. 在诸多信号处理, ...

  5. 心音与心电信号分析之一--6.26--心音信号数字滤波

    这才是我要学习的重点哇... 传统的低通,高通滤波,维纳滤波,卡尔曼滤波,自适应滤波属于线性滤波,在消除噪声的同时,往往会造成信号的奇异点改变或信号边缘模糊不清等不利因素,而同态滤波主要解决的是信号与 ...

  6. MNE-Python | 开源生理信号分析神器(一)

    介绍MNE-Python系列文章,持续更新中- 0. 什么是MNE ? 开门见山地说,MNE是我用过的最强生理信号分析神器(可能是我见识浅薄,大佬勿喷),处理范围涵盖EEG.MEG等各种类型. MNE ...

  7. 【C4】基于深度学习的心电信号分析

    ★★★ 本文源自AI Studio社区精品项目,[点击此处]查看更多精品内容 >>> 基于深度学习的心电信号分析 一.项目背景 近年来,随着人工智能和算法的发展,以机器学习和深度学习 ...

  8. 《MATLAB语音信号分析与合成(第二版)》:第4章 语音信号的线性预测分析

    <MATLAB语音信号分析与合成(第二版)>:第4章 语音信号的线性预测分析 前言 1. 数据与函数路径设置 2. MATLAB仿真一:LPC的频谱分析 3. MATLAB仿真二:普通预测 ...

  9. 《MATLAB语音信号分析与合成(第二版)》:第8章 基音周期的估算方法

    <MATLAB语音信号分析与合成(第二版)>:第8章 基音周期的估算方法 前言 1. 数据与函数路径设置 2. MATLAB仿真一:基音周期提取的预处理 3. MATLAB仿真二:倒谱法的 ...

最新文章

  1. 酒桌游戏c语言,最受欢迎的12种酒桌游戏
  2. windows系统中,在当前目录下打开cmd命令行的两种方法
  3. 判断三个数最大的数 从结果出发思考问题
  4. codeforce 603B - Moodular Arithmetic
  5. 眼压与角膜厚度的关系
  6. 玻璃体液化研究(控制)
  7. LeetCode 886. 可能的二分法(着色DFS/BFS/拓展并查集)
  8. 通过AVFoundation框架获取摄像头数据
  9. PyCharm使用期间出现报错集合 持续更新ing
  10. 【报告分享】2020企业精细化运营白皮书.pdf(附下载链接)
  11. iOS:ASIHttpRequest虽不更新,但仍值得详细了解
  12. composer:php的依赖管理工具
  13. 3月2日 ESC CAN 比特率 波特率 带宽与容量 香农定理 奈奎斯特定理 信噪比
  14. 谷歌浏览器 官网下载离线安装包
  15. Oracle | oracle11g安装环境变量配置
  16. Maven错误:was cached in the local repository, resolution will not be reattempted until the update
  17. 大哥都是从小弟做起的
  18. 【No JSON object could be decoded】问题解决
  19. 201912月灵感记录
  20. 如何抓取 bet365 即时足球比分数据

热门文章

  1. 转贴: AV音响连接方法 - 回上个问题,次世代音轨通过HDMI透传给了功放,那图像信号怎么给到电视? 这篇文章教你...
  2. 后端存储实战课——设计篇
  3. 网红张大奕订婚:未婚夫不是蒋凡 传是地产富二代
  4. Linux 操作文本内容命令
  5. U盘损坏了变成未格式化?如何格式化U盘而不丢失数据?
  6. 使用css排版推特上的星星爆炸效果。
  7. 现代软件工程_团队项目_阿尔法阶段_阿里云服务器部署_2017.11.24
  8. [导入][转]1997年南航空难BlackBox12分钟录音网上曝光
  9. CCRC信息安全服务资质有哪几种常见的类型?
  10. 如何微信增粉5万?从偶遇微信地推员说起