多尺度小波分解与重构,matlab,对系数进行处理后,构造C,重构信号1

自己要解决的问题是,用小波分解对时间序列进行多尺度分解,再分别对各系数进行预测,最后重构得到最后的预测结果。

因为对系数进行了新的处理,所以不能直接用waverec函数重构原始信号,而需要先构造C,再用waverec函数重构原始信号。

所以这里主要解决的问题是如何用新的系数构造C,进而用waverec函数重构原始信号。

如果有哪个地方理解错误,还望指正


%%首先是不对系数进行另外处理的直接重构原始信号

%小波分解与重构

gasload=importdata('load_new.xls');
loaddata=gasload.data.Sheet2; 

a=loaddata(:,4);

a=a';

ls=length(a);
%多尺度一维分解

[C,L]=wavedec(a,3,'db1');

%提取系数

cA3=appcoef(C,L,'db1',3);
cD3=detcoef(C,L,3);
cD2=detcoef(C,L,2);

cD1=detcoef(C,L,1);

%重构系数
A3=wrcoef('a',C,L,'db1',3);
D1=wrcoef('d',C,L,'db1',1);
D2=wrcoef('d',C,L,'db1',2);
D3=wrcoef('d',C,L,'db1',3);

%重构原始信号
A0=waverec(C,L,'db1');
%重构最大误差

Err=max(abs(a-A0));

------------------------------------------以上是直接重构原始信号--------------------------

------------------------------------------以下是对系数进行处理后,构造C,再用waverec函数重构原始信号--------------------------

%%%省略对系数的处理过程

%%%。。。。。。。

%%%用新的系数构造C

这里之所以构造C,是因为waverec函数的参数C里存放的是原始的系数,而不是经过处理的新的系数;所以需要得到由新的系数构造的C。

现在需要了解C的构造方式,以便以正确的结构用新的参数构造C。在matlab里用help函数查看wavedec函数,可以看到关于C的结构介绍。从而反向来构造C。

help wavedec



已在matlab里通过size函数计算得到,

size (a)  为1*1000; size(C)为 1*1000;  size(L)为1*5;L=[125,125,250,500,1000];

size(cA3)为1*125;size(cD3)为1*125;size(cD2)为1*250;size(cD1)为1*500;


则依据help的结果,C的组成结构为【cA3,cD3,cD2,cD1】;

L1为近似系数cA3的长度(125),L2为细节系数cD3的长度(125);L3为cD2的长度(250),L4为cD1的长度(500),L5为a的长度(1000)。


则用处理过的系数重构C就变得很简单;

C=[cA3,cD3,cD2,cD1]

再用waverec函数重构原始信号


A0=waverec(C,L,'db1');
%重构最大误差

Err=max(abs(a-A0));
















评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值