大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
转:天津大学 小波分析 宗婧 1015202078
原理可参考:https://wenku.baidu.com/view/73439a6d5901020207409cd5.html
1、单层小波分解
%1. 单层小波分解
%读入信号
load leleccum; s=leleccum(1:4000);
%通过db4小波基进行离散小波变换
[cA1,cD1]=dwt(s,'db4');
figure(1);
subplot(311);plot(s); title('Original signal');
subplot(323); plot(cA1); title('Approx.coef.for db4');
subplot(324); plot(cD1); title('Detail coef.for db4');
%上图我们可以看到经过db4小波一层分解之后的高频信息和低频信息。
2、 单尺度一维小波的重构
%用小波函数db4进行信号重构
ss=idwt(cA1,cD1,'db4');
err=norm(s-ss);
figure(2),plot(ss);
%1 天津大学 小波分析 宗婧 1015202078 重构完成后的误差为3.53e-10。 重构完成后的函数与分解前的函数相同,仅仅存在很小很小可以忽略为0 的误差。
3、 多层小波分解
上文是使用单层小波分解,下面使用wavedec 函数进行多层小波分解,并显示分解后的低 频高频信息。
%通过db4小波基进行三尺度小波分解
[c,l]=wavedec(s,3,'db4');
a1=appcoef(c,l,'db4',1);
%提取尺度1的低频系数
a2=appcoef(c,l,'db4',2);
%提取尺度2的低频系数
a3=appcoef(c,l,'db4',3);
%提取尺度3的低频系数
figure(3);
subplot(321);plot(a1);title('尺度1的低频系数');
subplot(323);plot(a2);title('尺度2的低频系数');
subplot(325):plot(a3):title('尺度3的低频系数');
d1=detcoef(c,l,1);
d2=detcoef(c,l,2);
d3=detcoef(c,l,3);
figure(3);
subplot(322);plot(d1);title('尺度1的高频系数');
figure(3);subplot(324);plot(d2);title('尺度2的高频系数');
figure(3);subplot(326);plot(d2);title('尺度3的高频系数');
4、多层小波重构
上文中,使用wavedec 函数对小波进行了db4,三尺度分解,现在,使用waverec 将原信号重构,(包括低频和高频)。
c1=[a3,d3,d2,d1];
s1=waverec(c1,l,'db4');
figure(4); plot(s1); title('重构信号');
err2=norm(s-s1);
%重构后误差为1.09E-09 (2 )高频置零后重建 当然,如果认为高频信息是不需要的时候,我们可以将高频信息置零后重构低频信息。
d3=zeros(1,length(d3));
d2=zeros(1,length(d2));
d1=zeros(1,length(d1));
c1=[a3,d3,d2,d1];
s1=waverec(c1,l,'db4');
figure(4);
subplot(211),plot(s);title('原始信号');
subplot(212),plot(s1),title('重构信号');
上图重构信号对1、2、3层的高频信号进行了过滤。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179626.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...