用matlab求小波系数能量,Matlab小波能量计算函数wenergy(C-L).pdf

对小波函数wenergy(C,L) 的计算方法的分析

通过Matlab 自带的小波函数[C,L] = wavedec(X,N,'name');可以目标分析数据

进行小波分解。并通过函数X = wrcoef('type',C,L,'wname',N)对小波低频数据a 和

高频数据d 进行重构。以下对该命令的计算逻辑进行简要分析:

主要结论:

该公式可以理解为计算低频信号a 能量和各高频信号d ,d ,…d 信号的能

n 1 2 n

量与总能量的比值。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

设向量a=[2 4 5 8 6 7 8 9 1 5 8 7];

1. 对该向量采用db1 小波1 层分解,得到

a1=[ 3 3 6.5 6.5 6.5 6.5 8.5 8.5 3 3 7.5 7.5]

d 1= [-1 1 -1.5 1.5 -0.5 0.5 -0.5 0.5 -2 2 0.5 -0.5]

(1)手动计算能量

∑12 2

a1 能量= (对a1 中所有数据求平方和)=462

=1

∑12 2

d 1 能量= (对d1 中所有数据求平方和)=16

=1

a1 能量占比= a1 能量/( a1 能量+ d 1 能量)= 97.7901%

d1 能量占比= a1 能量/( a1 能量+ d 1 能量)= 2.2099%

(2 )通过命令计算能量

而直接通过命令[Ea,Ed] = wenergy(c,l)计算得到 a1, d1 能量占比为

97.7901%,2.2099%

两种方法计算结果相等。

相关命令如下:

clear all;

a=[2 4 5 8 6 7 8 9 1 5 8 7];

[c,l] = wavedec(a,1,'db1');

a1=wrcoef('a',c,l,'db1',1);

d 1=wrcoef('d',c,l,'db1',1);

[Ea,Ed] = wenergy(c,l)

2. 对该向量采用db1 小波2 层分解,得到

a2=[ 4.75 4.75 4.75 4.75 7.5 7.5 7.5 7.5 5.25 5.25 5.25 5.25]

d1= [-1 1 -1.5 1.5 -0.5 0.5 -0.5 0.5 -2 2 0.5 -0.5]

d2=[ -1.75 -1.75 1.75 1.75 -1 -1 1 1 -2.25 -2.25 2.25 2.25]

(1)手动计算能量

∑12 2

a2 能量= (对a2 中所有数据求平方和)=425.5

=1

∑12 2

d 1 能量= (对d1 中所有数据求平方和)=16

=1

∑12 2

d2 能量= (对d2 中所有数据求平方和)=36.5

=1

a2 能量占比= a2 能量/( a2 能量+ d 1 能量+d2 能量)= 89.0167%

d1 能量占比= d 1 能量/( a2 能量+ d 1 能量+d2 能量)= 3.3473%

d2 能量占比= d2 能量/( a2 能量+ d 1 能量+d2 能量)= 7.6360%

(2 )通过命令计算能量

而直接通过命令[Ea,Ed] = wenergy(c,l)计算得到 a1, d1, d2 能量占比为

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值