用MATLAB对正弦函数取模极值

来源:百度知道 编辑:UC知道 时间:2024/05/31 07:27:59

h_n=[0.125,0.375,0.375,0.125]; g_n=[-2.0,2.0]; % 这是二样条小波的滤波器
i=1:300;f_i=50*sin(pi*i/50);
noi=5*randn(1,300);
figure(1);
f_ic0=noi+f_i;plot(i,f_ic0);title('含噪信号曲线'); %% 这就相当于是要恢复的但是有噪声的信号0尺度空间的信号

h_n1=[0.125,0,0.375,0,0.375,0,0.125];g_n1=[-2.0,0,2.0];%%尺度1的1次方下h_n,g_n每相邻系数之间插入一个0
f_ic1=conv(f_ic0,h_n1);
for num=1:300
f_ic1_300(num)=f_ic1(num+4);
end
f_id1=conv(f_ic0,g_n1);%在1尺度下的二进小波变换细节系数
for num=1:300
f_id1_300(num)=f_id1(num); %%目的是将序列长度都取到300个点
end

h_n2=[0.125,0,0,0,0.375,0,0,0,0.375,0,0,0,0.125];%%尺度2 的2次方下h_n,g_n每相邻系数之间插入3个0
g_n2=[-2.0,0,0,0,2.0];
f_ic2=conv(f_ic1,h_n2);f_id2=conv(f_ic1,g_n2);
for num=1:300
f_ic2_300(num)=f_ic2(num+8); %%目的是将序列长度都取到300个点
end
for num=1:300
f_id2_300(num)=f_id2(num+4); %%目的是将序列长度都取到300个点
end
g_n3=[-2.0,0,0,0,0,0,0,0,2.0];
f_ic3=conv(f_ic2,h_n3);f_id3=conv(f_ic2,g_n3);
for num=1: