对负荷数据进行小波去噪,整理

gasload=importdata('load_new.xls');
loaddata=gasload.data.Sheet2; 
a=loaddata(:,4);
size(a)    %size(a)为1行4列
 [c_a,l_a]=wavedec(a,4,'db4');
 %对高频部分进行消噪处理,然后再还原信号,
 %% 从系数中4层近似(低频)和1,2,3,4层细节(高频)
 %信号a的4层近似和1,2,3,4层细节
 A4_a=wrcoef('a',c_a,l_a,'db4',4);
 D4_a=wrcoef('d',c_a,l_a,'db4',4);
 D3_a=wrcoef('d',c_a,l_a,'db4',3);
 D2_a=wrcoef('d',c_a,l_a,'db4',2);
 D1_a=wrcoef('d',c_a,l_a,'db4',1);
 %% 对高频信息进行消噪处理
 aThreshold1=thselect(D1_a,'sqtwolog');
 aThreshold2=thselect(D2_a,'sqtwolog');
 aThreshold3=thselect(D3_a,'sqtwolog');
 aThreshold4=thselect(D4_a,'sqtwolog');
 aTR=[aThreshold1,aThreshold2,aThreshold3,aThreshold4];
 
 %% 恢复去噪后的各项指标
 %SORH是阈值选项,为s时选择软阈值,为h时选择硬阈值
 SORH = 's';
 %PERF0是恢复和压缩的范数百分比
 %'lvd'为允许设置各层的阈值
 %'gbl'为固定阈值
 % 4为阈值的长度
 [wa,CXC,LXC,PERF0,PERF2]=wdencmp('lvd',a,'db4',4,aTR,SORH);
 %最后衡量一下去噪的效果,这段代码比较死,可以copy用,用多了就熟悉了。
 %% 去噪效果衡量
%SNR越大效果越好,MSE越小越好
%获取各个部分的长度:理论上应该是一样长的
aLength = length(a);
%x=a;
%y=wa;
SqureError = (a-wa).^2;
Squrewa = wa.^2;
waToError = Squrewa./SqureError;
RatioSum = sum(waToError);
ErrorSum = sum(SqureError);
SNR =  10*log10(RatioSum);
MSE = ErrorSum/aLength;
display(['SNR is:',num2str(SNR),';      MSE is:',num2str(MSE)]) 
 %最后,对比一下去噪前后的信号:
 figure(2);
 subplot(2,1,1);
 plot(a);
 title('原始信号曲线')
 subplot(2,1,2);
 plot(wa);
 title('消噪后的信号曲线')
 
 %放在一张图上
 figure(3);
 plot(a,'r');
 plot(wa,'b');
 
 
 %整体思路byzhaoyuxia
 %因为要消噪,所以要有阈值,阈值是根据具体信号得到的,
 %所以先小波分解,然后提前具体信号,然后计算阈值,最后进行消噪。评价消噪效果
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值