小波变换 matlab 总结Word文档格式.docx

上传人:b****7 文档编号:22638414 上传时间:2023-02-05 格式:DOCX 页数:78 大小:4.87MB
下载 相关 举报
小波变换 matlab 总结Word文档格式.docx_第1页
第1页 / 共78页
小波变换 matlab 总结Word文档格式.docx_第2页
第2页 / 共78页
小波变换 matlab 总结Word文档格式.docx_第3页
第3页 / 共78页
小波变换 matlab 总结Word文档格式.docx_第4页
第4页 / 共78页
小波变换 matlab 总结Word文档格式.docx_第5页
第5页 / 共78页
点击查看更多>>
下载资源
资源描述

小波变换 matlab 总结Word文档格式.docx

《小波变换 matlab 总结Word文档格式.docx》由会员分享,可在线阅读,更多相关《小波变换 matlab 总结Word文档格式.docx(78页珍藏版)》请在冰豆网上搜索。

小波变换 matlab 总结Word文档格式.docx

10.Mexicanhat小波

小波名mexh

11.Morlet小波

小波名morl

12.ComplexGaussian小波系

小波名cgau

调用名cgau1cgau2cgau3cgau4cgau5cgau

13.Shannon小波系

小波名shan

调用名shan1-1.5shan1-1shan1-0.5shan1-0.1shan2-3

14.FrequencyB小波系

小波名fbsp

调用名fbsp1-1-1.5fbsp1-1-1fbsp1-1-0.5fbsp2-1-1fbsp2-1-0.5fbsp2-1-0.1

15.ComplexMorlet小波系

小波名cmor

调用名cmor1-1.5cmor1-1cmor1-0.5cmor1-1cmor1-0.5cmor1-0.1

3.滤波器函数

wfilters函数

[Lo_D,Hi_D,Lo_R,Hi_R]=wfilters('

计算对应小波的滤波器。

Thefouroutputfiltersare

Lo_D,用于分解的低通滤波器

Hi_D,用于分解的高通滤波器

Lo_R,用于重构的低通滤波器

Hi_R,用于重构的高通滤波器

4.量化编码

wcodemat函数

y=wcodemat(x,nb,opt,absol)

y=wcodemat(x,nb,opt)

y=wcodemat(x,nb)

y=wcodemat(x)

该函数是用来对矩阵X进行量化编码,它返回矩阵X的一个编码矩阵,在编码中,把矩阵X中元素绝对值最大的作为NB(NB是一个整数),绝对值最小的作为1,其他元素依其绝对值的大小在1与NB中排列.

当OPT为'

row'

时,做行编码;

col'

时,做列编码,

mat'

时,做全局编码,即把整个矩阵中的元素绝对值最大的元素作为NB,最小的作为1,其他元素依其绝对值的大小在整个矩阵中排列.

当ABSOL为0时,该函数返回输入矩阵X的一个编码版本;

为非0时,返回X的绝对值

5.阈值获取

MATLAB中实现阈值获取的函数有ddencmp、thselect、wbmpen和wwdcbm,下面对它们的用法进行简单的说明。

ddencmp函数

调用格式:

[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X)

函数ddencmp用于获取信号在消噪或压缩过程中的默认阈值。

输入参数X为一维或二维信号;

IN1取值为'

den'

或'

cmp'

,'

表示进行去噪,'

表示进行压缩;

IN2取值为'

wv'

wp'

,wv表示选择小波,wp表示选择小波包。

输出参数THR为函数选择的阈值,SORH为函数选择阈值使用方式。

Sorh=s,为软阈值;

Sorh=h,为硬阈值;

输出参数KEEPAPP决定了是否对近似分量进行阈值处理。

可选为0或1。

CRIT为使用小波包进行分解时所选取的熵函数类型。

例:

自动生成信号小波处理的阈值选取方案。

r=2055415866;

randn('

seed'

r);

x=randn(1,1000);

%产生白噪声;

%求取对信号进行小波消噪处理的默认阈值、软阈值,并且保留低频系数;

[thr,sorh,keepapp]=ddencmp('

'

x);

输出:

thr=3.8593

sorh=s

keepapp=1

thselect函数

调用格式如下:

THR=thselect(X,TPTR);

根据字符串TPTR定义的阈值选择规则来选择信号X的自适应阈值。

自适应阈值的选择规则包括以下四种:

*TPTR='

rigrsure'

,自适应阈值选择使用Stein的无偏风险估计原理。

heursure'

,使用启发式阈值选择。

sqtwolog'

,阈值等于sqrt(2*log(length(X))).

minimaxi'

,用极大极小原理选择阈值。

阈值选择规则基于模型y=f(t)+e,e是高斯白噪声N(0,1)。

wbmpen函数

THR=wbmpen(C,L,SIGMA,ALPHA);

返回去噪的全局阈值THR。

THR通过给定的一种小波系数选择规则计算得到,小波系数选择规则使用Birge-Massart的处罚算法。

[C,L]是进行去噪的信号或图像的小波分解结构;

SIGMA是零均值的高斯白噪声的标准偏差;

ALPHA是用于处罚的调整参数,它必须是一个大于1的实数,一般去ALPHA=2。

wdcbm函数

(1)[THR,NKEEP]=wdcbm(C,L,ALPHA);

(2)[THR,NKEEP]=wdcbm(C,L,ALPHA,M);

函数wdcbm是使用Birge-Massart算法获取一维小波变换的阈值。

返回值THR是与尺度无关的阈值,

NKEEP是系数的个数。

[C,L]是要进行压缩或消噪的信号在j=length(L)-2层的分解结构;

LAPHA和M必须是大于1的实数;

THR是关于j的向量,THR(i)是第i层的阈值;

NKEEP也是关于j的向量,NKEEP(i)是第i层的系数个数。

一般压缩时ALPHA取1.5,去噪时ALPHA取3.

6.阈值去噪

MATLAB中实现信号的阈值去噪的函数有wden、wdencmp、wthresh、wthcoef、wpthcoef以及wpdencmp。

下面对它们的用法作简单的介绍。

wden函数

(1)[XD,CXD,LXD]=wden(X,TPTR,SORH,SCAL,N,'

(2)[XD,CXD,LXD]=wden(C,L,TPTR,SORH,SCAL,N,'

函数wden用于一维信号的自动消噪。

X为原始信号,[C,L]为信号的小波分解,N为小波分解的层数。

THR为阈值选择规则:

SORH是软阈值或硬阈值的选择(分别对应'

s'

和'

h'

)。

SCAL指所使用的阈值是否需要重新调整,包含下面三种:

*SCAL='

one'

不调整;

sln'

根据第一层的系数进行噪声层的估计来调整阈值。

mln'

根据不同的噪声估计来调整阈值。

XD为消噪后的信号,[CXD,LXD]为消噪后信号的小波分解结构。

格式

(1)返回对信号X经过N层分解后的小波系数进行阈值处理后的消噪信号XD和信号XD的小波分解结构[CXD,LXD]。

格式

(2)返回参数与格式

(1)相同,但其结构是由直接对信号的小波分解结构[C,L]进行阈值处理得到的。

wdencmp函数

调用格式有以下三种:

(1)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('

gbl'

X,'

N,THTR,SORH,KEEPAPP);

(2)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('

lvd'

N,THTR,SORH);

(3)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('

C,L,'

函数wdencmp用于一维或二维信号的消噪或压缩。

wname是所用的小波函数。

gbl(global的缩写)表示每一层都采用同一个阈值进行处理。

lvd表示每层采用不同的阈值进行处理。

N表示小波分解的层数。

THR为阈值向量,对于格式

(2)和(3)每层都要求有一个阈值,因此阈值向量THR的长度为N。

SORH表示选择软阈值或硬阈值(分别取值为'

),

参数KEEPAPP取值为1时,则低频系数不进行阈值量化,反之,低频系数要进行阈值量化。

XC是要进行消噪或压缩的信号,

[CXC,LXC]是XC的小波分解结构,

PERF0和PERFL2是恢复或压缩L^2的范数百分比。

如果[C,L]是X的小波分解结构,则PERFL2=100*(CXC向量的范数/C向量的范数)^2;

如果X是一维信号,小波wname是一个正交小波,则PERFL2=100||XC||^2/||X||^2。

wthresh函数

Y=wthresh(X,SORH,T)

返回输入向量或矩阵X经过软阈值(如果SORH='

)或硬阈值(如果SORH='

)处理后的信号。

T是阈值。

Y=wthresh(X,'

T)返回的是Y=SIG(X)*(|X|-T)+,即把信号的绝对值与阈值进行比较,小于或等于阈值的点变为零,大于阈值的点为该点值与阈值的差值。

T)返回的是Y=X*1(|X|>

T),即把信号的绝对值和阈值进行比较,小于或等于阈值的点变为零,大于阈值的点保持不变。

一般来说,用硬阈值处理后的信号比用软阈值处理后的信号更粗糙。

wthcoef函数

(1)NC=wthcoef('

d'

C,L,N,P)

(2)NC=wthcoef('

C,L,N)

(3)NC=wthcoef('

a'

C,L)

(4)NC=wthcoef('

t'

C,L,N,T,SORH)

用于一维信号小波系数的阈值处理。

格式

(1)返回小波分解结构[C,L]经向量N和P定义的压缩率处理后的新的小波分解向量NC,[NC,L]构成一个新的小波分解结构。

N包含被压缩的细节向量,P是把较小系数置0的百分比信息的向量。

N和P的长度必须相同,向量N必须满足1<

=N(i)<

=length(L)-2。

格式

(2)返回小波分解结构[C,L]经过向量N中指定的细节系数置0后的小波分解向量NC。

格式(3)返回小波分解结构[C,L]经过近似系数置0后的小波分解向量NC。

格式(4)返回小波分解结构[C,L]经过将向量N作阈值处理后的小波分解向量NC。

如果SORH=’s‘,则为软阈值;

如果SORH='

则为硬阈值。

N包含细节的尺度向量,T是N相对应的阈值向量。

N和T的长度必须相等。

wpdencmp函数

[XD,TREED,PERF0,PERFL2]=wpdencmp(X,SORH,N,'

CRIT,PAR,KEEPAPP)

[XD,TREED,PERF0,PERFL2]=wpdencmp(TREE,SORH,CRIT,PAR,KEEPAPP)

函数wpdencmp用于使用小波包变换进行信号的压缩或去噪。

格式

(1)返回输入信号X(一维或二维)的去噪或压缩后的信号XD。

输出参数TREED是XD的最佳小波包分解树;

PERFL2和PERF0是恢复和压缩L2的能量百分比。

PERFL2=100*(X的小波包系数范数/X的小波包系数)^2;

如果X是一维信号,小波wname是一个正交小波,则PERFL2=100*||XD||^2/||X||^2。

SORH的取值为'

,表示的是软阈值或硬阈值。

输入参数N是小波包的分解层数,wname是包含小波名的字符串。

函数使用由字符串CRIT定义的熵和阈值参数PAR实现最佳分解。

如果KEEPAPP=1,则近似信号的小波系数不进行阈值量化;

否则,进行阈值量化。

格式

(2)与格式

(1)的输出参数相同,输入选项也相同,只是它从信号的小波包分解树TREE进行去噪或压缩。

实例:

loadnoisdopp;

x=noisdopp;

%给出全局阈值

%根据全局阈值对信号降噪

xc=wdencmp('

x,'

sym4'

2,thr,sorh,keepapp);

[c,l]=wavedec(x,2,'

);

[thr1,nkeep]=wdcbm(c,l,3);

xc1=wdencmp('

c,l,'

2,thr1,'

subplot(311);

plot(x);

title('

原始信号'

subplot(312);

plot(xc);

title('

使用全局阈值降噪后的信号'

subplot(313);

plot(xc1);

使用分层阈值降噪后的信号'

loadwoman

%下面进行噪声的产生

init=3;

rand('

init);

Xn=X+18*(rand(size(X)));

%下面进行图像的去噪处理

Xn);

Xd=wdencmp('

Xn,'

sym5'

%用sym5小波对图像信号进行二层的小波分解

[c,s]=wavedec2(X,2,'

[thr1,nkeep1]=wdcbm2(c,s,1.5);

Xd1=wdencmp('

c,s,'

%显示图像

subplot(221);

image(X);

colormap(map);

原始图像X'

axissquare

subplot(222);

image(Xn);

含噪声的图像'

subplot(223);

image(Xd);

colormap(map);

去噪后的图像'

subplot(224);

image(Xd1);

分层去噪后的图像'

二、小波变换函数

单尺度一维小波变换

cwt一维连续小波变换

coefs=cwt(s,scale,’wname’)

【仅给出系数值】

coefs=cwt(s,scale,’wname’,’plot’)

【给出系数值同时生成图像】

loadnoissin;

figure

subplot(121)

plot(noissin);

subplot(122)

c=cwt(noissin,1:

48,'

db4'

plot'

dwt一维离散小波变换

[cA1,cD1]=dwt(X,’wname’)

【使用指定的小波基函数'

对信号X进行分解】

[cA1,cD1]=dwt(X,Lo_D,Hi_D)

【使用指定的滤波器组Lo_D、Hi_D对信号进行分解】

loadleleccum;

s=leleccum(1:

3920);

ls=length(s);

[cA,cD]=dwt(s,'

db1'

plot(cA);

plot(cD)

[cA1,cD1]=dwt(s,Lo_D,Hi_D);

plot(cA1);

plot(cD1)

idwt一维离散小波逆变换

X=idwt(cA,cD,'

【由近似分量cA和细节分量cD经小波反变换重构原始信号X】

X=idwt(cA,cD,Lo_R,Hi_R)

【用指定的重构滤波器Lo_R和Hi_R经小波反变换重构原始信号X 

L)

【指定返回信号X中心附近的L个点】

X=idwt(cA,cD,Lo_R,Hi_R,L)

【与上边一致】

upcoef一维小波系数重构

Y=upcoef(O,X,'

N)

N,L)

Y=upcoef(O,X,Lo_R,Hi_R,N)

Y=upcoef(O,X,Lo_R,Hi_R,N,L)

这一函数是一维小波分解系数的直接重构

它重建的是原信号在指定层次的,高频或者低频分量。

也就是说,这个信号不是原本的信号,而且某个层次上的逼近。

N=1条件下相当与缺省模式的idwt

A1=upcoef('

cA1,'

1,l_s)相当于A1=idwt(cA1,[],'

l_s);

D1=upcoef('

cD1,'

1,l_s)相当于D1=idwt([],cD1,'

而O是一个标识符,O=‘a’低频,O=‘d’高频

N代表了小波系数的级别,是几级小波系数。

L则指定返回信号X中心附近的L个点

例子:

A1=upcoef('

cA,'

1,ls);

D1=upcoef('

cD,'

%A1=idwt(cA,[],'

ls);

D1=idwt([],cD,'

subplot(1,2,1);

plot(A1);

ApproximationA1'

subplot(1,2,2);

plot(D1);

DetailD1'

多尺度一维小波变换

wavedec多尺度一维分解

[C,L]=wavedec(X,N,’wname’)

[C,L]=wavedec(X,N,Lo_D,Hi_D)

函数返回N层分解的各组分系数C(连接在一个向量里),向量L里返回的是各组分的长度。

分解的结构如下

[C,L]=wavedec(s,3,'

plot(C);

C'

plot(L);

L'

waverec多尺度一维重构

X=waverec(C,L,’wname’)

X=waverec(C,L,Lo_R,Hi_R)

A0=waverec(C,L,'

Err=abs(s-A0);

figure

(1)

subplot(3,1,1);

plot(s);

originals'

subplot(3,1,2);

plot(A0);

wavereconstructions'

subplot(3,1,3);

plot(Err);

wavereconstructionerr'

appcoef低频系数提取

A=appcoef(C,L,’wname’,N)从C中抽取N层近似系数

A=appcoef(C,L,’wname’)

A=appcoef(C,L,Lo_R,Hi_R,N)

A=appcoef(C,L,Lo_R,Hi_R)

detcoef高频系数提取

A=detcoef(C,L,N)

A=detcoef(C,L)

cA3=appcoef(C,L,'

3);

cD3=detcoef(C,L,3);

cD2=detcoef(C,L,2);

cD1=detcoef(C,L,1);

subplot(2,2,1);

plot(cA3);

cA3'

subplot(2,2,2);

plot(cD3);

cD3'

subplot(2,2,3);

plot(cD2);

cD2'

subplot(2,2,4);

plot(cD1);

cD1'

wrcoef多尺度小波系数重构

X=wrcoef(‘type’,C,L,’wname’,N)

X=wrcoef(‘type’,C,L,Lo_R,Hi_R,N)

X=wrcoef(‘type’,C,L,’wname’)

X=wrcoef(‘type’,C,L,Lo_R,Hi_R)

其中type=‘a’低频,type=‘d’高频

作用类似于upcoef,只不过是多尺度函数。

cA3=wrcoef('

cD1=wrcoef('

1);

cD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1