資源簡介
基于墨西哥草帽小波函數進行連續小波變換的matlab變換程序。
代碼片段和文件信息
%??多個尺度連續小波變換的實現
clc;clear
%??下載信號
load?vonkoch
vonkoch=vonkoch(1:510);
%??尺度1-32的連續小波變換
S_Min=1;S_Max=32;
index=0;
for?scale=S_Max:-1:S_Min;
????index=index+1;
????cwt_coef(index:)=Singularity_Detection(scale32*(scale)vonkoch);
end
%??小波系數取模
cwtcoef_abs=abs(cwt_coef);
%??顯示
for?index=S_Min:S_Max
????max_coef=max(cwtcoef_abs(index:));??%??系數模最大
????min_coef=min(cwtcoef_abs(index:));??%??系數模最小
????ext=max_coef-min_coef;???????????????%??系數模跨度
????cwtcoef_abs(index:)=64*(cwtcoef_abs(index:)-min_coef)/ext;??%??系數大小變換
end
figure(1)
subplot(211);
plot(vonkoch);
xlabel(‘時間‘)
ylabel(‘幅度‘)
title(‘分形信號‘)
axis([1?510?0?0.02])
subplot(212)
colormap(pink(64));
image(cwtcoef_abs)
set(gca‘YTick‘2:3:32)
set(gca‘YTickLabel‘32:-3:2)
title(‘連續小波變換時間尺度圖‘)
xlabel(‘時間‘)
ylabel(‘尺度‘)
%??某個尺度的連續小波變換的M函數
%??delta?小波變換的尺度
%??N?????小波函數的長度
%??s?????原始信號
%??g?????原始信號某個尺度下的小波變換系數
function?g=Singularity_Detection(deltaNs);
%??原始信號長度
n=length(s);
%??構造墨西哥帽子小波函數
for?index_x=1:N;
????x=index_x-(N+1)/2;
????phi_x(index_x)=((pi^(-1/4))*(2/sqrt(3)))*(1-x.*x/(delta^2))*exp(-(x.*x)/(2*delta^2));
end;
phi_x=phi_x/norm(phi_x);??%??能量歸一化
%??對信號做卷積
g=conv(sphi_x);???%??卷積?這里為什么用的是卷積?小波變換不是信號和小波函數的乘積的積分嗎
g=wkeep(gn);??????%??保持信號長度
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1502??2013-06-30?09:37??CWT_mexh.m
-----------?---------??----------?-----??----
?????????????????1502????????????????????1
- 上一篇:OMP、SP、IRLS、CoSaMP等重構算法
- 下一篇:麥克風陣列的定位算法
評論
共有 條評論