Matlab小波包分解后如何求各频带信号的能量值?

异步赠书:Kotlin领衔10本好书      SDCC 2017之区块链技术实战线上峰会      程序员9月书讯      每周荐书:Java Web、Python极客编程(评论送书)
window.quickReplyflag = true; var isBole = false; var fasrc="http://my.csdn.net/my/favorite/miniadd?t=Matlab%e5%b0%8f%e6%b3%a2%e5%8c%85%e5%88%86%e8%a7%a3%e5%90%8e%e5%a6%82%e4%bd%95%e6%b1%82%e5%90%84%e9%a2%91%e5%b8%a6%e4%bf%a1%e5%8f%b7%e7%9a%84%e8%83%bd%e9%87%8f%e5%80%bc%ef%bc%9f&u=http://blog.csdn.net/heifan2014/article/details/72811273"

Matlab小波包分解后如何求各频带信号的能量值?

    
600人阅读 评论(0) 收藏 举报
分类:
clear;
clc;
n=3;
wpname=’db3’;
% [b,a]=butter(8,[5/100 99/100]);
% load a1_1-1;
load k301_1-4;
% Data=filter(b,a,Data);
Data=Data-mean(Data);
Data=detrend(Data);
wpt1=wpdec(Data,n,wpname); %对数据进行小波包分解
for i=1:2^n %wpcoef(wpt1,[n,i-1])是求第n层第i个节点的系数
E(i)=norm(wpcoef(wpt1,[n,i-1]),2);%求第i个节点的范数平方,其实也就是平方和
end
% disp(‘每个节点的能量E(i)’);
% E
% disp(‘小波包分解总能量E_total’);
E_total=sum(E); %求总能量
for i=1:2^n
pfir(i)= E(i)/E_total;%求每个节点的概率
end
pfir
% load a1_1-2;
load k302_1-4;
% Data=filter(b,a,Data);
Data=Data-mean(Data);
Data=detrend(Data);
wpt2=wpdec(Data,n,wpname); %对数据进行小波包分解
for i=1:2^n %wpcoef(wpt1,[n,i-1])是求第n层第i个节点的系数
E(i)=norm(wpcoef(wpt2,[n,i-1]),2);%求第i个节点的范数平方,其实也就是平方和
end
E_total=sum(E); %求总能量
for i=1:2^n
psec(i)= E(i)/E_total;%求每个节点的概率
end
psec
% load a1_1-4;
load k303_1-4;
% Data=filter(b,a,Data);
Data=Data-mean(Data);
Data=detrend(Data);
wpt3=wpdec(Data,n,wpname); %对数据进行小波包分解
for i=1:2^n %wpcoef(wpt1,[n,i-1])是求第n层第i个节点的系数
E(i)=norm(wpcoef(wpt3,[n,i-1]),2);%求第i个节点的范数平方,其实也就是平方和
end
E_total=sum(E); %求总能量
for i=1:2^n
pthi(i)= E(i)/E_total;%求每个节点的概率
end
pthi

格式:

y = detrend(x) % 消除时间序列中的线性趋势项
y = detrend(x,’constant’) % 消除时间序列中的均值
y = detrend(x,’linear’,bp) % 分段消除时间序列中的线性趋势项,bp为分段点向量


detrend的一个实例
 sig = [0 1 -2 1 0 1 -2 1 0]; % 无线性趋势的信号
trend = [0 1 2 3 4 3 2 1 0]; % 有两段线性的趋势
x = sig+trend; % 将上面趋势叠加到信号上
y = detrend(x,’linear’,5) % 根据指定的分段点去除两段线性趋势


y =


   -0.0000    1.0000   -2.0000    1.0000         0    1.0000   -2.0000    1.0000    0.0000
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
    
0
0


你可能感兴趣的:(信号处理)