java 小波变换_小波变换教程(八)
连续小波变换的计算
对上面公式的解释将在本节中进行详细说明。以x(t)作为被分析的信号。选用的小波作为信号处理中用到的所有窗函数的原型。应用的所有窗都是母小波的放大(或缩小)和平移版本。有很多函数可以满足这个条件。Morlet小波和墨西哥帽小波(Mexican hat)是其中最有代表性的,本章中后面部分中所举的例子也会用这两个小波进行小波分析。
一旦选择了母小波,就可以从s=1开始计算了,连续小波变换就是计算对应所有值的s,或者小于1,或者大于1。不过,与要分析的信号有关,一般不需要完整的变换。对所有的应用来说,信号是有带宽限制的,因此,在有限时间内做变换就经常能够满足要求了。在这篇文章里的后续部分,只用到s在有限时间内的值。
为方便起见,计算过程将会始于s=1,然后s值逐渐增大,即分析将会从高频开始,然后逐步到低频。s的第一个值是对大多数缩小的小波的反映。随着s增大,小波逐渐被放大。
小波要被放在信号的最初点,即t=0时刻。用尺度为1的小波函数与信号相乘,然后在所有时间内做积分。积分结果再乘上这个常量——1/sqrt(s)。后面这次相乘是为了使能量归一化处理而作的,其目的是使变换后的信号在任意比例上都有相同的能量。最终结果就是变换后的值,即在t=0时刻和s=1的情况下的连续小波变换。换句话说,就是在时间-尺度平面内,tau=0,s=1时刻信号的响应。
然后平移s=1时的小波值至t=tau时刻的位置,得到在时间-尺度平面内,t=tau,s=1时刻信号的响应。
重复这个过程,直到小波到达了信号的末端。这是,在时间-尺度平面内,就会得到一系列的点。
然后,将s增大一点。注意到,这是小波变换,所以tau和s都必须连续的增加。不过,如果是由计算机来进行这个变换过程,两个参数都以一个很小的步长增加。这是由于采样造成的。
对所有s值,重复上面这个过程。每一个根据给定的s计算的结果都对应时间-尺度平面内的一行。当对所应所有的s都计算完成后,对信号的连续小波变换就完成了。
下面的图说明了计算过程的每一步:
图3.3
在图3.3中,显示了在四个不同时刻tau时的信号和小波函数。信号是图3.1所示的信号的裁剪版本,对应着信号的高频部分。可以看到它多么紧凑(蓝色的窗口)。它的宽度应该与信号中最高频分量出现的时间一致。图中显示了to=2,to=40,to=90和to=140时刻小波的位置。在每一个位置,都将它与信号相乘。很明显,只有在小波的支撑域内,乘积不为0,其余部分全为0。通过在时间轴上平移小波,信号被定位在时间轴上。进一步,通过改变s的值,信号又被定为在频率范围内。
如果信号对当前的s值有一个谱分量(这个例子中s的值是1),在信号的谱分量出现的时刻,信号与小波的乘积会相当大。如果对于当前的s值,谱分量不存在,那么,乘积将会很小或为0。图3.3中,在s=1和t=100ms附近,信号中存在一个窗口宽度的频谱分量。
图3.3中,在100ms时,对信号做连续小波变换后将会产生大的结果,在其他时候则值很小。另一方面,当尺度很高时,连续小波变换将对在整个信号周期内得到一个很大的值,因为低频信号在整个周期内都存在。
java 小波变换_小波变换教程(八)相关推荐
- java socket channel_Java NIO 教程(八) SocketChannel
目录 Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道.可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服 ...
- windows java配置_菜鸟教程 windows 配置java的环境变量
第一步:下载java的JDK 放在你们的D盘下面(其实C盘也一样),然后傻瓜是安装,安装路径一般默认放在 C:\Program Files\Java,这个不需要管. 第二步:直接上图 ... 看懂了吗 ...
- 远行星号java 出错_按照教程搞了一条新船,但是出错了,求大神看看怎么回事...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 11069 [Thread-5] ERROR com.fs.starfarer.combat.D - java.lang.IllegalArgumentE ...
- java和python自学教程视频_免费视频教程,2019年最新Java、PYthon、web视频
干货视频,培训机构最新java.Python.web前端.人工智能视频(基础班+就业班).价值几万的Java.PYthon.web.人工智能视频教程, 为还在学习迷茫的你提供一个学习Java.Pyth ...
- Java并发编程实战_一线大厂架构师整理:java并发编程实践教程
并发编程是Java语言的重要特性之一, 在Java平台上提供了许多基本的并发功能来辅助开发多线程应用程序.然而,这些相对底层的并发功能与上层应用程序的并发语义之间并不存在一种简单而直观的映射关系.因此 ...
- 小波滤波器与其他滤波器的区别_小波变换(六):小波变换在机器学习中的应用(上)...
本文讲解一篇关于小波变换在机器学习中的应用的博客:<A guide for using the Wavelet Transform in Machine Learning>,极力推荐!!目 ...
- oracle java 并发_【转】JAVA并发教程(ORACLE官网资料)
本文是Oracle官方的Java并发相关的教程,感谢并发编程网的翻译和投递. 计算机的使用者一直以为他们的计算机可以同时做很多事情.他们认为当其他的应用程序在下载文件,管理打印队列或者缓冲音频的时候他 ...
- Java Regex 教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 正则表达式不仅仅是Java的技术,在任何一门编程语言中都会存在,是一种通用的IT技术,其理念和用法在任何编程语言中基本一致,除了有一些由于语言不同而导致的一些语法不同正则表达式,主要用于匹配 ...
- java 多线程写缓存,Java多线程_缓存对齐
1.什么是缓存对齐 当前的电脑中,数据存储在磁盘上,可以断电保存,但是读取效率较低.不断电的情况下,数据可以在内存中存储,相对硬盘效率差不多是磁盘的一万倍左右.但是运算时,速度最快的是直接缓存在CPU ...
最新文章
- 容器集群管理平台的比较
- 八个开源的 Spring Boot 学习资源,你值得拥有
- 2019第十届蓝桥杯C/C++ A组省赛 —— 第二题: 数列求值
- Java多线程与并发控制
- ArcGIS Server SOE开发之奇怪异常:
- 在linux系统下挂接(mount)光盘镜像文件、移动硬盘、U盘以及Windows网络共享和UNIX...
- matlab 平滑曲线连接_科研画图-率失真曲线图改进:散点连接成曲线并画出原散点的标记点(基于Matlab)...
- SVN 版本回退 命令行
- 在进行github相关操作的时候一直被要求Enter passphrase for key. 如何避免每次操作都重新填写一遍passphrase?
- struct template 函数 特化
- BFC(块级格式化上下文)
- Mac小白应该使用App Tamer减慢或停止哪些应用程序?
- iOS添加pch头文件
- 学习总结20-04-18:包装类
- GBase 8s Java UDR安装说明
- php mysql 家谱_mysql家谱表查询某人所有后代
- 惠普HP LaserJet 5L 打印机出纸口卡纸的维修
- web安全攻防学习之1-渗透测试信息收集
- C++:实现量化SMM Caplet α 校准测试实例
- Mysql安装与设置用户名、密码