[转载]Matlab小波工具箱的使用1

标签:
转载 |
最近想尝试一下小波的用法,就这matlab的帮助尝试了一下它的例子,顺便翻译了一下帮助的内容,发现matlab帮助做的确实不错,浅显易懂!现把翻译的文档写出来吧,想学习的共同学习吧!
小波工具箱简介
小波工具箱包含了图像化的工具和命令行函数,它可以实现如下功能:
l 测试、探索小波和小波包的特性
l 测试信号的统计特性和信号的组分
l 对一维信号执行连续小波变换
l 对一维、二维信号执行离散小波分析和综合
l 对一维、二维信号执行小波包分解(参见帮助Using Wavelet Packets)
l 对信号或图像进行压缩、去噪
另外,工具箱使用户更方便的展示数据。用户可以做如下选择:
l 显示哪个信号
l 放大感兴趣的区域
l 配色设计来显示小波系数细节
工具箱可以方便的导入、导出信息到磁盘或matlab工作空间。具体详见File Menu Options
一维连续小波分析
这一部分来测试连续小波分析的特性。连续小波分析只需要一个小波函数cwt。在这一部分将学到如下内容:
l 加载信号
l 对信号执行连续小波变换
l 绘制小波系数
l 绘制指定尺度的小波系数
l 绘制整个尺度小波系数中的最大值
l 选择显示方式
l 在尺度和伪频率之间切换
l 细节放大
l 在普通或绝对模式下显示系数
l 选择执行小波分析的尺度
使用命令行执行连续小波分析
这个例子是一个包含噪声的正弦波
http://s14/bmiddle/6163bdeb07826d4d86d6d&690
1. 加载信号
load noissin
可以使用whos显示信号信息
whos
Name
Size
Bytes
Class
noissin
1x1000
8000
double
2. 执行连续小波变换
c = cwt(noissin,1:48,'db4');
函数cwt的参数分别为分析的信号、分析的尺度和使用的小波。返回值c包含了在各尺度下的小波系数。对于这里,c是一个48x1000的矩阵,每一行与一个尺度相关。
3. 绘制小波系数
cwt函数可以接受第四个参数,来指定函数在执行结束后是否绘制连续小波变换系数的绝对值。另外还可以接受更多的参数来定义显示的不同特性,详见cwt函数。如下面的语句绘制系数结果
c = cwt(noissin,1:48,'db4','plot');
http://s13/bmiddle/6163bdeb4b1845286758c&690
4. 选择分析的尺度
cwt函数的第二个参数可以设定任意小波分析的尺度,只要这些尺度满足如下要求
l 所有尺幅必须为正实数
l 尺度的增量必须为正
l 最高的尺度不能超过由信号决定的一个最大值
如下面的代码可以执行从2开始的偶数尺度计算
c = cwt(noissin,2:2:128,'db4','plot');
显示结果如下
http://s14/bmiddle/6163bdeb4b18458f8babd&690
这幅图像很明确的表示出了信号的周期性。
使用图形接口做连续小波分析
1. 开启一维连续小波工具,只需输入如下命令
wavemenu
出现如下小波工具箱主菜单
http://s11/bmiddle/6163bdeb4b1845a2cdf2a&690
选择Continuous Wavelet 1-D菜单项,出现如下一维信号分析连续小波分析工具
http://s13/bmiddle/6163bdeb4b1845d23161c&690
2. 加载信号
选择菜单File->Load Signal,在Load Signal对话框里选择noissin.mat文件,它在matlab安装目录的toolbox/wavelet/wavedemo文件夹下,点击OK加载信号。
一维连续小波工具开始加载信号,加载后默认采样频率为1s。
3. 执行连续小波变换
下面来测试使用db4小波对尺度1到48做小波分析,设置如下
http://s16/bmiddle/6163bdeb4b1845dd4ff7f&690
4. 点击Analyze按钮
在短暂的计算后,工具将绘制小波系数,并在Coefficients line坐标系中绘制尺度为24的小波系数,在local maxima坐标系中绘制各尺度的小波系数最大值。
http://s10/bmiddle/6163bdeb4b18464451909&690
5. 查看小波Coefficients Line
在小波系数图中右键点击可以选择展示其他尺度的小波系数,选择后点击New Coefficients Line按钮,Coefficients Line会相应更新。
http://s16/bmiddle/6163bdeb4b18465c42e3f&690
6. 查看Maxima Line
点击Refresh Maxima Line按钮,可以显示从尺度1到所选尺度的小波系数的最大值。
http://s8/bmiddle/6163bdeb4b184698afd07&690
注意当在系数图中按下鼠标右键并移动时,会在最下面的Info框中显示当前鼠标位于的X位置和尺度。
http://s12/bmiddle/6163bdeb4b18471ebc73b&690
7. 在尺度和伪频率之间切换
在右边选择Frequencies,当再在系数图中选择时,在Info中显示的将是Hz。
http://s8/bmiddle/6163bdeb4b18473fef9c7&690
而关于尺度和频率的转换关系,可以看How to Connect Scale to Frequency?
8. 选择要显示的坐标系
http://s15/bmiddle/6163bdeb4b1847cd6ed6e&690
9. 放大细节
在系数框中按鼠标左键可以选择放大的范围。
10. 选择好放大范围后点击最下面的按钮可以实现指定的放大
http://s11/bmiddle/6163bdeb4b1847e2a8b2a&690
11. 显示普通系数或系数绝对值
http://s13/middle/6163bdeb4b16051ffdc9c&690
两种显示方式的区别在于,普通模式下,颜色映射是在系数的最大最小之间;而绝对模式,颜色映射是在0和最大的系数绝对值之间。
图形接口的导入导出信息
导入信号到一维连续小波工具
首先将要处理的信号保存到mat文件中,要求信号是一维的向量。然后使用工具的File
->Load Signal菜单功能,选择此信号文件即可导入信号。
文件中第一个一维变量被认为是信号,变量在文件中顺序是按字母排序的。
保存小波系数
小波分析完成后,点击File->Save->Coefficients,可以将分析结果保存到mat文件。保存后,可以使用load函数加载数据,会看到保存的变量有小波系数coeff、尺度scales、小波的名字wname。
一维复信号连续小波分析
对于复信号连续小波分析,小波工具箱中对应的函数是cwt。
使用命令行分析复信号
这个例子是一个带尖头的信号,如下
http://s10/bmiddle/6163bdeb07826d9cb40e9&690
1. 加载信号
load cuspamax
文件中包含两个变量,caption和cuspamax,前者是此信号的定义,如下
caption =
x = linspace(0,1,1024); y = exp(-128*((x-0.3).^2))-3*(abs(x-0.7).^0.4);
2. 执行连续小波变换
c = cwt(cuspamax,1:2:64,'cgau4');
3. 绘制结果
c = cwt(cuspamax,1:2:64,'cgau4','plot');
http://s16/bmiddle/6163bdeb4b184828c698f&690
结果显示了四副图形,分别为系数的实部、虚部、模、相角。
使用图形接口分析复信号
与实信号不同的是,选择Complex Continuous Wavelet 1-D,得到的结果如下
http://s13/bmiddle/6163bdeb4b18483fe01dc&690
具体操作过程与实信号的相似,如下