Matlab小波包分解后如何求各频带信号的能量值?
2015-12-03 09:18
405 查看
Matlab小波包分解后如何求各频带信号的能量值? [转]
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
相关文章推荐
- eigen与matlab对应函数列表
- 利用Matlab Image Processing Toolbox中的图像配准工具
- matlab图像几何操作
- MATLAB GUI 程序设计中将axes保存为高质量矢量图的方法
- weka和matlab完成完整分类实验
- matlab调用opencv2.4
- matlab绘制概率分布图形
- MATLAB入门教程
- 基于COM接口的VC++与MATLAB混合编程
- plot函数用法(MATLAB)
- subplot函数用法(MATLAB)
- MATLAB链接MinGW编译器
- python和matlab的语法对比
- 在单片机上运行USB Audio实现MATLAB简单虚拟示波器
- matlab-图片-imrect使用
- MATLAB常用数学函数
- (转)Matlab中图像函数大全 - [基础知识]
- 初步体验libsvm用法3(matlab实例)
- matlab imfilter 对于 opencv filter2D 参数
- Analyse of MV Field by Matlab