Matlab小波工具箱的使用

合集下载

Matlab小波工具箱的使用

Matlab小波工具箱的使用

(2011-11-10 20:12:39)转载▼分类:学科知识标签:小波分析连续小波变换尺度系数信号最近想尝试一下小波的用法,就这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 选择执行小波分析的尺度使用命令行执行连续小波分析这个例子是一个包含噪声的正弦波1. 加载信号load noissin可以使用whos显示信号信息2. 执行连续小波变换c = cwt(noissin,1:48,'db4');函数cwt的参数分别为分析的信号、分析的尺度和使用的小波。

返回值c包含了在各尺度下的小波系数。

对于这里,c是一个48x1000的矩阵,每一行与一个尺度相关。

3. 绘制小波系数cwt函数可以接受第四个参数,来指定函数在执行结束后是否绘制连续小波变换系数的绝对值。

matlab小波工具箱及其应用

matlab小波工具箱及其应用

Matlab小波工具箱的相关应用09信息02班玺瑞孟魄 20092294前言在传统的傅里叶分析中,信号是完全在频域展开的,不包含任何时域的信息,这对于某些应用来说是恰当的,因为信号的频率信息对其是非常重要的。

但其丢弃的时域信息可能对某些应用非常重要,所以人们对傅里叶分析进行了推广,如短时傅里叶变换,但是短时傅里叶变换只能在一个分辨率上进行,所以对很多应用来说还不够精确,存在很大的缺陷。

而小波分析则克服了短时傅里叶变换在单分辨率上的缺陷,具有多分辨率分析的特点,在时域和频域都有表征信号局部信息的能力,所以小波运用广泛应用于各个时域分析领域,而matlab小波工具箱正是处理小波变换的一个有用工具。

在matlab中,小波工具箱提供了两种实现方式,命令行方式和图形方式[1]。

命令方式比较灵活,可以看到具体的处理过程,适合对于matlab比较熟悉的人。

而图形方式(GUI, Graphical User Interface)操作简便,界面友好,对于matlab初学者或是不熟悉小波分析具体过程的人来说,GUI是最佳选择。

GUI的主要问题是处理模式相对固定,不如命令行凡是灵活,而且可视化的操作模式看不到具体的操作机制。

本实验运主要进行了,一维小波变换,二维小波变换,图像压缩,图像降噪,边缘提取,图像扩展等操作。

通过本次试验,从命令行方式和GUI方式两个方面,运用到了matlab小波工具箱的部分功能,一方面熟悉了matlab小波工具箱,另一方面,通过matlab 对图像的处理方式,加深了对《数字图像处理》中“数字”的理解。

方法一维离散小波变换公式[2]对于还有其中表示近似值或尺度系数,表示细节或小波系数,,,)是离散变量的函数。

一维连续小波变换连续的平方可积函数的连续小波变换与实数值的小波的关系如下其中,和分别成为尺度和变换参数。

给定,可以通过反连续小波变换求得:其中,是的傅里叶变换。

二维小波变换在二维情况下,需要一个二维尺度函数和三个二维小波和。

Matlab中的小波分析工具箱 2

Matlab中的小波分析工具箱 2

连续小波发换:
格式: coefs=cwt(s,scales,’wname’) coefs=cwt(s,scales,’wname’,’plot’) 说明: s:输入信号 scales: 需要计算的尺度范围 wname:所用的小波基 plot: 用图像斱式显示小波系数
例子:
c = cwt(s,1:32,'meyr') c = cwt(s,[64 32 16:-2:2],'morl') c = cwt(s,[3 18 12.9 7 1.5],'db2')
q j t 2 2 1 j t 2 p
g (t )
g (t )
发换的统一表述:
将五种变换分别用下标 表示: g t0 , f 0 ,a , p ,q (t ) 则: ˆ Fourier 变换:f f , g 0, f ,0,0, 0 (t ) 加窗Fourier 变换:STFT( f ) f , g t , f ,0, 0, 0 (t ) 小波变换:WT ( f )(a, t ) f , g t , 0,a , 0,0 (u ) 高斯线调频小波变换: GCT ( s )(t , f ) s (u ), g t , f ,log(t ),0,q (u ) 1 1 u t 2 s (u ) exp[ ( ) ] exp[ j 2 ( fu qu2 )]du 2 T t
coifwavf biowavf
计算近似对称的紧支集双正交小波滤波器系数
计算Coifmant小波尺度滤波器系数 计算双正交样条小波尺度滤波器参数
wname='bior2.2'; [rf,rd]=biorwavf(wname)
rf =

matlab 小波波形

matlab 小波波形

matlab 小波波形Matlab是一种强大而广泛使用的数值计算和科学可视化软件。

它具有丰富的功能和工具箱,可以应用于各种领域,包括信号处理。

在这篇文章中,我们将深入探讨小波波形处理的相关概念和Matlab中如何使用小波波形函数来进行信号分析和处理。

首先,让我们来了解什么是小波波形。

小波波形是一种特殊的基函数,它可以将信号分解成不同频率的组成部分。

与傅里叶变换不同,小波变换提供了更精确的频率信息,因为它不仅可以提供频率分量的幅度,还可以提供时间和频率的局部性。

这使得小波变换在非平稳和时变信号的分析中具有独特的优势。

在Matlab中,小波波形处理工具箱(Wavelet Toolbox)提供了一系列函数和工具,方便用户进行小波分析和处理。

首先,我们需要加载工具箱。

在Matlab命令窗口中,输入"wavelet"即可加载小波波形工具箱。

加载成功后,我们可以使用各种小波函数来进行信号处理。

接下来,让我们来看一个具体的例子,使用Matlab进行小波变换和逆变换。

假设我们有一个包含随机噪声的正弦信号,并且我们想要将这个信号进行小波分解,以获得不同频率的成分。

首先,我们生成这个信号:matlabFs = 1000; 采样率t = 0:1/Fs:1-1/Fs; 时间向量x = sin(2*pi*50*t) + randn(size(t)); 正弦信号加上噪声我们生成了一个频率为50Hz的正弦信号,并在这个信号中加入了随机噪声。

接下来,我们可以使用小波函数对信号进行小波分解。

matlabwname = 'db4'; 小波波形名称level = 5; 小波分解的层数[c,l] = wavedec(x,level,wname); 小波分解在上述代码中,我们选择了'Daubechies 4'小波波形,并将信号分解为5个级别。

这意味着我们将获得5个频率成分的系数。

接下来,我们可以绘制小波系数的图像,以了解信号在不同频率上的能量分布。

(完整版)最近想尝试一下小波的用法

(完整版)最近想尝试一下小波的用法

最近想尝试一下小波的用法,就这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 选择执行小波分析的尺度使用命令行执行连续小波分析这个例子是一个包含噪声的正弦波1. 加载信号4. 选择分析的尺度cwt函数的第二个参数可以设定任意小波分析的尺度,只要这些尺度满足如下要求l 所有尺幅必须为正实数l 尺度的增量必须为正l 最高的尺度不能超过由信号决定的一个最大值如下面的代码可以执行从2开始的偶数尺度计算c = cwt(noissin,2:2:128,'db4','plot');显示结果如下这幅图像很明确的表示出了信号的周期性。

使用图形接口做连续小波分析1. 开启一维连续小波工具,只需输入如下命令wavemenu出现如下小波工具箱主菜单选择Continuous Wavelet 1-D菜单项,出现如下一维信号分析连续小波分析工具2. 加载信号选择菜单File->Load Signal,在Load Signal对话框里选择noissin.mat文件,它在matlab安装目录的toolbox/wavelet/wavedemo文件夹下,点击OK加载信号。

小波分析中的matlab使用

小波分析中的matlab使用

小波分析中的matlab使用Matlab主窗口File菜单File菜单,弹出如图1所示的菜单选项。

其中,各子菜单选项的功能如下:图 1New选项包含5个选项:M-File,Figure,Varible,Model和gui。

1)M-File选项:打开m文件编辑器;2)Figure选项:将打开一个空白的图形窗口;3)Variable选项:可变因素;4)Model选项:用于创建新模型的窗口;5)Gui选项:创建新的图形用户界面的对话框。

Open选项:打开一个open对话框,可以在对话框中选择相应的文件,然后matlab将用相应的编辑器打开该文件。

Close…选项:跟随某个打开的视窗名。

单击该选项,将关闭该视窗。

Importdata…选项:打开一个import对话框,用户可以选择相应的数据文件,然后将该数据文件中的数据导入到matlab工作空间。

Saveworkspaceas…选项:打开一个savetomat-File对话框,用户需要为保存的工作空间命名。

Setpath…选项:打开设置路径对话框。

通过该对话框可以更改matlab执行命令时搜索的路径。

Preferences:首选参数。

Pagesetup选项:用于设置页面布局,页面的页眉,页面所用的文字。

Print…选项:用于打印预定义好的页面内容,也可以设置一些参数。

Printselection…选项:当选中命令窗口内的一部分内容后,该选项将处于激活状态,此时单击该选项,将打印对话框中选中的内容。

Exitmatlab选项:关闭matlab。

也可以通过快捷键ctrl+O来关闭。

Edit菜单单击edit菜单,会弹出如图2所示的菜单选项。

其中,各子菜单选项的功能如下:Undo选项:取消上一次的操作。

Redo选项:重复上一次的操作。

Cut选项:剪切所选中的部分。

Copy选项:选复制被选中的部分。

Paste选项:把存放在缓冲区中的内容粘贴到光标所在的位置。

Pastespecial选项:打开导入数据向导,该向导引导用户把存放在缓冲区中的内容以特定格式存放到剪贴板变量中。

小波分析MATLAB工具箱简介

小波分析MATLAB工具箱简介

小波分析MATLAB工具箱简介MATLAB的小波分析一、小波分析用于降噪的基本过程1、分解过程:选定一种小波,对信号进行N层分解;2、作用阈值过程:对分解得到的各层系数选择一个阈值,并对细节系数进行软阈值处理;3、重建过程:降处理后的系数通过小波重建恢复原始信号;二、基本降噪模型函数一维离散小波分解命令Dwt [cA cD] = dwt(X,’wname’)使用小波’wname’对型号X 进行单层分解,求得的近似系数存放于数组cA中,细节系数存放在数组cD 中;[cA cD] = dwt(X,’wname’,’mode’,MODE) 利用MODE方式进行扩展[cA cD] = dwt(X,Lo_D,Hi_D) 利用指定滤波器进行小波分解Wanedec [C, L] = wavedec(X,N,’wname’) 使用wname的小波进行N层分解,C为层数,L为各层系数Idwt X= idwt(cA,cD,’wname’) 利用小波wname把近似系数CA和CD重建为上一层近似系数XX= idwt(cA,cD,’wname’,L) 重建至L层Waverec X= waverec(C,L,‘wname‘)重建为原始信号Wrcoef X = wrcoef(‘type’,C,L,’wname’,N) 通过分解系数重构指定的数,type为a 或者dX= wrcoef(‘type’,C,L,’wname’) 把分解系数重建至最高层Upcoef Y= upcoef(O,X,’wname’,N)用适当的滤波器作用在X上N次,求得重建系数Y,O为a表示低通滤波器,d表示高通滤波器Detcofe D= detcoef(C,L,N)从分解系数中提取第N层近似系数D= detcoef(C,L,N)提取至最后一层Appcoef A= appcoef(C,L,’wname’,N) 用小波从分解系数中提取第N层系数Wnoisest stdc = woisest(c,l,s)根据传入的小波分解系数[c,l]对s中标识的小波层数求得其标准差,作为对噪声强度的估计;Ddencmp [THR,SORH,KEEPAPP,CRIT] = ddencmp(IN1,IN2,X) 根据传入的参数IN1 和IN2所指定的方式,对输入信号X求得其降噪或压缩的各级阈值。

matlab小波工具箱小波分析步骤

matlab小波工具箱小波分析步骤

选择要处理的信 号,界面出现 loaded信号,这就 是没有去噪前的原 始信号
在wavemenu主界面 中选择file-load signal或者import from workspace— import signal
将数据文件(.Mat 格式)托到matlab 软件主界面的 workspace
分析后在左边栏目 中出现s,a*, d*,其中s为原信 号,a*为近似信 号,d*为细节信号
点击denoise开始 正式去噪
在噪声结构下面的 数值不要随意改, 这是系统默认的去 噪幅度
在噪声结构中选择 unscaled white noise,因为在工 程应用中的噪声一 般不仅仅含有白噪 声
去噪结束
去噪结束后,把去 噪后信号(.mat格 式)拖至matlab主 界面的workspace 中,与原信号一起 打包,以便以后计 算统计量
Matlab编程计算相 关统计量以及特征 量
得出统计量和特征 量后结束
将原始数据文件夹 copy到装有matlab 的电脑
打开matlab软件, 进入软件主界面
在软件的左下方找 到start按钮,点 击选择toolbox, 然后选择wavelet
Hale Waihona Puke 进入wavemenu界 面,选择一维小波 中的wavelet1-D并 进入
右上角选择用于小 波分析的小波基以 及分解层数并点击 analyse开始分析
然后点击denoise 去噪
阈值方法常用的有 4种fixed(固定阈 值), rigorsure, heusure,minmax 根据需要选择,一 般情况下 rigorsure方式去 噪效果较好
Soft(软阈值), hard(硬阈值)一 般选择软阈值去噪 后的信号较为平滑

Matlab中的小波分析工具箱 2

Matlab中的小波分析工具箱 2

例子:
c = cwt(s,1:32,'meyr') c = cwt(s,[64 32 16:-2:2],'morl') c = cwt(s,[3 18 12.9 7 1.5],'db2')
一维离散小波变换:
dwt [cA,cD]=dwt(X,’wname’) [cA,cD]=dwt(X,H,G) 其中:cA :低频分量, cD:高频分量 X:输入信号。 wname:小波基名称 H:低通滤波器 G:高通滤波器
1 ≤ t < 500 ⎧sin(0.03t ) freqbrk (t ) = ⎨ ⎩ sin(0.3t ) 501 ≤ t ≤ 1000
连续小波变换:
格式: coefs=cwt(s,scales,’wname’) coefs=cwt(s,scales,’wname’,’plot’) 说明: s:输入信号 scales: 需要计算的尺度范围 wname:所用的小波基 plot: 用图像方式显示小波系数
LastWave 小波信号和图像处理软件,用C语言编写,可在 Unix和Macintosh上运行。 下载地址:
值得关注的几个发展方向:
提升小波变换(Lifting scheme wavelet transform) 多小波变换(Multiwavelet transform) 线调频小波变换(chirplet transform)。
小波基的名称 计算Morlet小波滤波器系数 计算墨西哥草帽小波滤波器系数 计算Meyer小波与尺度滤波器系数 计算Meyer小波辅助函数 计算紧支集双正交小波滤波器系数 计算紧支集双正交小波尺度滤波器系数 计算近似对称的紧支集双正交小波滤波器系数 计算Coifmant小波尺度滤波器系数 计算双正交样条小波尺度滤波器参数

Matlab小波工具箱的使用2

Matlab小波工具箱的使用2

Matlab小波工具箱的使用2工具箱提供了如下函数做一维信号分析:在这一部分,可以学到l 加载信号l 执行一层小波分解l 从系数重建近似和细节l 显示近似和细节l 通过逆小波变换重建信号l 执行多层小波分解l 抽取近似系数和细节系数l 重构第三层近似l 重构第1、2、3层细节l 显示多层分解的结果l 从第三层分解重构原始信号l 从信号中去除噪声l 改善分析l 压缩信号l 显示信号的统计信息和直方图一维分析---使用命令行这个例子包含一个真实世界的信号---测量3天的电功耗。

这个信号很典型,因为它包含一个明显的测量噪声,而小波分析可以有效的移除噪声。

1. 加载信号load leleccum截取信号s = leleccum(1:3920);l_s = length(s);2. 对信号执行一层小波分解使用db1小波执行一层小波分解,执行下面的语句产生近似系数cA1、细节系数cD1 [cA1,cD1] = dwt(s,'db1');3. 从系数中构建近似和细节从系数cA1和cD1中构建一层近似A1和细节D1,执行以下代码A1 = upcoef('a',cA1,'db1',1,l_s);D1 = upcoef('d',cD1,'db1',1,l_s);或A1 = idwt(cA1,[],'db1',l_s);D1 = idwt([],cD1,'db1',l_s);4. 显示近似和细节subplot(1,2,1); plot(A1); title('Approximation A1')subplot(1,2,2); plot(D1); title('Detail D1')5. 使用逆小波变换恢复信号A0 = idwt(cA1,cD1,'db1',l_s);err = max(abs(s-A0))err =2.2737e-0136. 执行多层小波分解执行3层信号分解[C,L] = wavedec(s,3,'db1');函数返回3层分解的各组分系数C(连接在一个向量里),向量L里返回的是各组分的长度。

Matlab小波工具箱的使用3

Matlab小波工具箱的使用3

Matlab⼩波⼯具箱的使⽤3⼀维离散平稳⼩波分析离散平稳⼩波分析所⽤到的函数有swt⼩波分解和iswt⼩波重构。

在这⼀部分可以学到如下内容:l 加载信号l 执⾏平稳⼩波分解l 从⼩波系数中构造近似和细节l 显⽰第⼀层的近似和细节l 平稳⼩波逆变换恢复原始信号l 执⾏多层平稳⼩波分解l 重构第3层近似l 重构1、2、3层细节l 重构1、2层近似l 显⽰分解的结果l 从3层分解中重构原始信号l 除噪使⽤命令⾏实现⼀维分析1. 加载信号(⼀个噪声污染的多普勒效应信号)2. 设置变量s = noisdopp;对于SWT变换,如果需要在第k层分解信号,那么原始信号需要能够平分成2^k份。

所以如果原始信号的长度不满⾜要求,需要使⽤Signal Extension GUI⼯具或使⽤wextend函数来扩展它。

3. 执⾏⼀层平稳⼩波分解[swa,swd] = swt(s,1,'db1');函数执⾏将产⽣1层近似和细节的系数,两者和信号的长度是相等的,这也是平稳⼩波和普通⼩波不同的地⽅,从⽽使它在某些领域有好的效果。

4. 显⽰近似、细节⼩波系数显⽰⼀层近似和细节的系数subplot(1,2,1), plot(swa); title('Approximation cfs')subplot(1,2,2), plot(swd); title('Detail cfs')5. 使⽤平稳⼩波逆变换恢复原始信号A0 = iswt(swa,swd,'db1');重构的误差为err = norm(s-A0)2.1450e-0146. 从系数中构建近似和细节构建⼀层近似和细节,输⼊如下代码nulcfs = zeros(size(swa));A1 = iswt(swa,nulcfs,'db1');D1 = iswt(nulcfs,swd,'db1');显⽰结果如下subplot(1,2,1), plot(A1); title('Approximation A1');subplot(1,2,2), plot(D1); title('Detail D1');7. 执⾏多层平稳⼩波分解使⽤db1⼩波做3层⼩波分解[swa,swd] = swt(s,3,'db1');产⽣的近似系数在swa中,细节系数在swd中,⽽且它们有相同的长度。

Matlab中的小波变换工具箱

Matlab中的小波变换工具箱

Fourier变换: fˆ f , g0, f ,0,0,0 (t)
加窗 Fourier变换: STFT ( f ) f , gt, f ,0,0,0 (t)
小波变换: WT ( f )(a, t) f , gt,0,a,0,0 (u)
高斯线调频小波变换: GCT (s)(t, f ) s(u), gt, f (u) ,log(t),0,q
2020/11/23
小波基的名称
Morlet小波 墨西哥草帽小波 Meyer小波 Haar小波 紧支集正交小波 近似对称的紧支集双正交小波 Coifmant小波 双正交样条小波
怎样获取小波基的信息:
• 在Matlab窗口键入“waveinfo(‘参数名’ )?waveinfo('meyr')
MEYRINFO Information on Meyer wavelet.
• 对变换信号的伪彩色编码:wcodemat • 反变换:idwt2,idwtper2, • 重构: upwlev2,waverec2,wrcoef2,
2020/11/23
小波包分解:
• 树操作
allnodes 列出数结构的所有节点。 isnode 判断指定位置是否存在节点。 istnode 判断一个节点是否为终端节点。 nodejoin 树的剪枝。
其中:(x)=(1,2,,r )T
2020/11/23
双尺度方程:
( x) Pk (2 x k ) k
其中: Pk是 r r矩阵。 由于研究无穷矩阵序列 的困难,通常的双尺度 方程 为有限项。
M
( x) Pk (2 x k ) k 0
2020/11/23
• 多小波在理论上所表现出来的优势以及它在应用领域 所具有的潜力,使其受到高度重视。在它诞生的短短 几年时间内,从理论方面,多小波的构造、多小波变 换实现中,预滤波器的设计及信号的边界处理正迅速 成为新的研究热点,而对它在图像处理方面的应用, 人们正进行积极探索,并在静止图像编码、图像去噪 两方面取得了一定的成果。

Matlab中的小波分析工具箱

Matlab中的小波分析工具箱
其中:cA :低频分量, cH:水平高频分量 cV:垂直高频分量 cD:对角高频分量 X:输入信号。 wname:小波基名称 H:低通滤波器 G:高通滤波器
15
二维信号的多层小波分解:
[A,L]=wavedec2(X,N,’wname’) [A,L]=wavedec2(X,N,H,G) 其中:A :各层分量, L:各层分量长度
Regularity
indefinitely derivable
Symmetry
yes
Reference: I. Daubechies, Ten lectures on wavelets, CBMS, SIAM, 61, 1994, 117-119, 137, 152.
5
计算小波滤波器系数的函数:
29
多小波变换还需要解决的问题:
多小波变换是和矢值滤波器组对应的。因此,需要对“好的”矢 值滤波器组和多小波给出合理的解释并提出更好的多小波及多滤 波器组设计准则。
不平衡多小波的实现中,预滤波器的设计是一个关键。针对不同 多小波的特性,采取怎样的预滤波器设计方案及怎样评价这些设 计方案是需要继续深入研究的课题。
30
线调频小波变换:
寻求Fourier变换,加窗Fourier变换和小 波变换的统一。
寻求对信号的时间-频率-尺度的完美 表达。
31
仿射时频变换的合成算子:
设g (t )是窗函数,则五种仿射变换为:
(1)时间平移算子:g(t t0 ) (2)频率平移算子:e j2f0t g(t)
(3)时频拉伸算子:ea/2 g(ea (t a))
j 1 t 2
(4)时间倾斜算子:(-jp)1/2 e p g(t)
(5)

使用MATLAB小波工具箱进行小波分析:

使用MATLAB小波工具箱进行小波分析:

使用MATLAB小波工具箱进行小波分析:如上图所示的小波分解过程,可以调用wfilters 来获得指定小波的分解和综合滤波器系数,例如:% Set wavelet name.wname = 'db5';% Compute the four filters associated with wavelet name given% by the input string wname.[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters(wname);subplot(221); stem(Lo_D);title('Decomposition low-pass filter');subplot(222); stem(Hi_D);title('Decomposition high-pass filter');subplot(223); stem(Lo_R);title('Reconstruction low-pass filter');subplot(224); stem(Hi_R);title('Reconstruction high-pass filter');xlabel('The four filters for db5')% Editing some graphical properties,% the following figure is generated.以上例子,得到’db5’小波的分解和综合滤波器系数,并显示出来。

下面是wfilters的具体用法:Wname 可指定为列表中的任意一种小波,直接调用[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('wname')会返回分解和综合滤波器系数。

如果只想返回其中的一些而不是全部,可以调用[F1,F2] = wfilters('wname','type')其中’type’可指定为4种类型,每种类型的具体意义详见matlab wfilters帮助。

Matlab中的小波分析工具箱2

Matlab中的小波分析工具箱2
2020/4/6
例子:

c = cwt(s,1:32,'meyr')

c = cwt(s,[64 32 16:-2:2],'morl')

c = cwt(s,[3 18 12.9 7 1.5],'db2')
2020/4/6
一维离散小波变换:
• dwt [cA,cD]=dwt(X,’wname’) [cA,cD]=dwt(X,H,G)
indefinitely derivable
Symmetry
yes
2020/4/6
Reference: I. Daubechies, Ten lectures on wavelets, CBMS, SIAM, 61, 1994, 117-119, 137, 152.
计算小波滤波器系数的函数:
2020/4/6
其中:cA :低频分量, cH:水平高频分量 cV:垂直高频分量 cD:对角高频分量 X:输入信号。 wname:小波基名称 H:低通滤波器 G:高通滤波器
2020/4/6
二维信号的多层小波分解:
[A,L]=wavedec2(X,N,’wname’) [A,L]=wavedec2(X,N,H,G) 其中:A :各层分量, L:各层分量长度
2020/4/6
• LastWave 小波信号和图像处理软件,用C语言编写, 可在Unix和Macintosh上运行。
wname='bior2.2'; [rf,rd]=biorwavf(wname)
rf =
0.2500 0.5000 0.2500
2020/4/6
rd = -0.1250 0.2500 0.7500 0.2500 -0.1250
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(2011-11-10 20:12:39)转载▼分类:学科知识标签:小波分析连续小波变换尺度系数信号最近想尝试一下小波的用法,就这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 选择执行小波分析的尺度使用命令行执行连续小波分析这个例子是一个包含噪声的正弦波1. 加载信号load noissin可以使用whos显示信号信息2. 执行连续小波变换c = cwt(noissin,1:48,'db4');函数cwt的参数分别为分析的信号、分析的尺度和使用的小波。

返回值c包含了在各尺度下的小波系数。

对于这里,c是一个48x1000的矩阵,每一行与一个尺度相关。

3. 绘制小波系数cwt函数可以接受第四个参数,来指定函数在执行结束后是否绘制连续小波变换系数的绝对值。

另外还可以接受更多的参数来定义显示的不同特性,详见cwt函数。

如下面的语句绘制系数结果c = cwt(noissin,1:48,'db4','plot');4. 选择分析的尺度cwt函数的第二个参数可以设定任意小波分析的尺度,只要这些尺度满足如下要求l 所有尺幅必须为正实数l 尺度的增量必须为正l 最高的尺度不能超过由信号决定的一个最大值如下面的代码可以执行从2开始的偶数尺度计算c = cwt(noissin,2:2:128,'db4','plot');显示结果如下这幅图像很明确的表示出了信号的周期性。

使用图形接口做连续小波分析1. 开启一维连续小波工具,只需输入如下命令wavemenu出现如下小波工具箱主菜单选择Continuous Wavelet 1-D菜单项,出现如下一维信号分析连续小波分析工具2. 加载信号选择菜单File->Load Signal,在Load Signal对话框里选择文件,它在matlab安装目录的toolbox/wavelet/wavedemo文件夹下,点击OK加载信号。

一维连续小波工具开始加载信号,加载后默认采样频率为1s。

3. 执行连续小波变换下面来测试使用db4小波对尺度1到48做小波分析,设置如下4. 点击Analyze按钮在短暂的计算后,工具将绘制小波系数,并在Coefficients line坐标系中绘制尺度为24的小波系数,在local maxima坐标系中绘制各尺度的小波系数最大值。

5. 查看小波Coefficients Line在小波系数图中右键点击可以选择展示其他尺度的小波系数,选择后点击New Coefficients Line按钮,Coefficients Line会相应更新。

6. 查看Maxima Line点击Refresh Maxima Line按钮,可以显示从尺度1到所选尺度的小波系数的最大值。

注意当在系数图中按下鼠标右键并移动时,会在最下面的Info框中显示当前鼠标位于的X 位置和尺度。

7. 在尺度和伪频率之间切换在右边选择Frequencies,当再在系数图中选择时,在Info中显示的将是Hz。

而关于尺度和频率的转换关系,可以看How to Connect Scale to Frequency?8. 选择要显示的坐标系9. 放大细节在系数框中按鼠标左键可以选择放大的范围。

10. 选择好放大范围后点击最下面的按钮可以实现指定的放大11. 显示普通系数或系数绝对值两种显示方式的区别在于,普通模式下,颜色映射是在系数的最大最小之间;而绝对模式,颜色映射是在0和最大的系数绝对值之间。

图形接口的导入导出信息导入信号到一维连续小波工具首先将要处理的信号保存到mat文件中,要求信号是一维的向量。

然后使用工具的File ->Load Signal菜单功能,选择此信号文件即可导入信号。

文件中第一个一维变量被认为是信号,变量在文件中顺序是按字母排序的。

保存小波系数小波分析完成后,点击File->Save->Coefficients,可以将分析结果保存到mat文件。

保存后,可以使用load函数加载数据,会看到保存的变量有小波系数coeff、尺度scales、小波的名字wname。

一维复信号连续小波分析对于复信号连续小波分析,小波工具箱中对应的函数是cwt。

使用命令行分析复信号这个例子是一个带尖头的信号,如下1. 加载信号load cuspamax文件中包含两个变量,caption和cuspamax,前者是此信号的定义,如下caption =x = linspace(0,1,1024); y = exp(-128*(.^2))-3*(abs.^;2. 执行连续小波变换c = cwt(cuspamax,1:2:64,'cgau4');3. 绘制结果c = cwt(cuspamax,1:2:64,'cgau4','plot');结果显示了四副图形,分别为系数的实部、虚部、模、相角。

使用图形接口分析复信号与实信号不同的是,选择Complex Continuous Wavelet 1-D,得到的结果如下具体操作过程与实信号的相似,如下Matlab小波工具箱的使用2 (2011-11-11 09:32:57)转载▼标签:分类:学科知识信号阈值分解系数小波分析一维离散小波分析在这一部分,可以学到l 加载信号l 执行一层小波分解l 从系数重建近似和细节l 显示近似和细节l 通过逆小波变换重建信号l 执行多层小波分解l 抽取近似系数和细节系数l 重构第三层近似l 重构第1、2、3层细节l 显示多层分解的结果l 从第三层分解重构原始信号l 从信号中去除噪声l 改善分析l 压缩信号l 显示信号的统计信息和直方图一维分析---使用命令行这个例子包含一个真实世界的信号---测量3天的电功耗。

这个信号很典型,因为它包含一个明显的测量噪声,而小波分析可以有效的移除噪声。

1. 加载信号load leleccum截取信号s = leleccum(1:3920);l_s = length(s);2. 对信号执行一层小波分解使用db1小波执行一层小波分解,执行下面的语句产生近似系数cA1、细节系数cD1[cA1,cD1] = dwt(s,'db1');3. 从系数中构建近似和细节从系数cA1和cD1中构建一层近似A1和细节D1,执行以下代码A1 = upcoef('a',cA1,'db1',1,l_s);D1 = upcoef('d',cD1,'db1',1,l_s);或A1 = idwt(cA1,[],'db1',l_s);D1 = idwt([],cD1,'db1',l_s);4. 显示近似和细节subplot(1,2,1); plot(A1); title('Approximation A1')subplot(1,2,2); plot(D1); title('Detail D1')5. 使用逆小波变换恢复信号A0 = idwt(cA1,cD1,'db1',l_s);err = max(abs(s-A0))err =6. 执行多层小波分解执行3层信号分解[C,L] = wavedec(s,3,'db1');函数返回3层分解的各组分系数C(连接在一个向量里),向量L里返回的是各组分的长度。

分解的结构如下7. 抽取近似系数和细节系数从C中抽取3层近似系数cA3 = appcoef(C,L,'db1',3);从C中抽取3、2、1层细节系数cD3 = detcoef(C,L,3);cD2 = detcoef(C,L,2);cD1 = detcoef(C,L,1);或者[cD1,cD2,cD3] = detcoef(C,L,[1,2,3]);结果显示如下,从上到下依次为原始信号、3层近似系数和3~1层细节系数1. 重建3层近似和1、2、3层细节从C中重建3层近似A3 = wrcoef('a',C,L,'db1',3);从C中重建1、2、3层细节D1 = wrcoef('d',C,L,'db1',1);D2 = wrcoef('d',C,L,'db1',2);D3 = wrcoef('d',C,L,'db1',3);2. 显示多层分解的结果显示3层分解的结果subplot(2,2,1); plot(A3);title('Approximation A3')subplot(2,2,2); plot(D1);title('Detail D1')subplot(2,2,3); plot(D2);title('Detail D2')subplot(2,2,4); plot(D3);title('Detail D3')10. 从3层分解中重建原始信号A0 = waverec(C,L,'db1');err = max(abs(s-A0))err =11. 粗糙的去噪信号使用小波从信号中移除噪声需要辨识哪个或哪些组分包含噪声,然后重建没有这些组分的信号。

在这个例子中,我们注意到连续的近似随着越来越多的高频信息从信号中滤除,噪声变得越来越少。

相关文档
最新文档