交叉小波分析matlab,[转载]Matlab 小波分析及物理含义
一、為什么要進行小波變換
最初的原因很簡單,傅里葉變換沒有時間信息,也就是說,我們不知道傅里葉變換結果頻率出現在什么時間,所以出現了時頻分析,就是在一張結果圖上同時表明信號的頻率及其出現的時間,
這樣做更有利于瞬時信號的研究。小波分析就是時頻分析的一種。
二、Matlab連續小波變換實例
%?cwt_test
clear?all
close?all
clc
%%
Ts?=?0.001;
Fs?=?1/Ts;
f1?=?20;
f2?=?50;
f3?=?100;
dt?=?0.2;
t1?=?(0:Ts:dt-Ts)?+?0;
t2?=?(0:Ts:dt-Ts)?+?dt;
t3?=?(0:Ts:dt-Ts)?+?2*dt;
y1?=?sin(2*pi*f1*t1);
y2?=?sin(2*pi*f2*t2);
y3?=?sin(2*pi*f3*t3);
t?=?[t1?t2?t3];
y?=?[y1?y2?y3];
figure
plot(t,y)
xlim([t(1)?t(end)])
ylim([min(y)?max(y)])
xlabel('時間t')
ylabel('信號y(t)')
title('原始信號')
%%
scale?=?1:50;
cw2?=?cwt(y,scale,'morl');
figure
subplot(1,3,[2,3])?%?頻率軸化為頻率
[X,Y]?=?meshgrid(t,5/(2*pi)./scale*Fs);
mesh(X,Y,abs(cw2))
view(0,90)
title('時頻圖')
xlabel('時間')
ylabel('頻率')
xlim([t(1)?t(end)])
set(gca,'ylim',[0,max(max(Y))])
set(gca,'YScale','log')
set(gca,'YTick',[1:9,10:10:90,100:100:900,1000,2000])
三、物理含義
上圖是用mesh函數繪制的三維小波變換圖。
1. 橫軸x是時間T
2.
縱軸y是小波的縮放scale,通過轉換成為了頻率,這個應該是跟選取的小波有關,這里的轉換公式如代碼所示,小波工具箱提供了求解的函數,具體見http://blog.sina.com.cn/s/blog_84024a4a01019ms1.html
3. Z軸是小波變換系數,代表了與小波與原信號之間的相關程度,越大表示相關度越高
4.
從圖中可以看出,0~0.2s,主要頻率是20Hz左右,0.2~0.4s,主要頻率是50Hz左右,0.4~0.6s,主要頻率在100Hz左右。跟原信號比較可知,結果還是很準確的。
上面的詳細原理可以參考第五點。
四、小波變換部分更為規范的寫法
wavename='morl';
totalscal= length(t);
Fc=centfrq(wavename); % 小波的中心頻率
c=2*Fc*totalscal;
scals=c./(1:totalscal);
f=scal2frq(scals,wavename,1/Fs); % 將尺度轉換為頻率
cw2=cwt(y,scals,wavename); % 求連續小波系數
五、小波變換原理簡單介紹
摘自《小波分析完美教程經典》
信號分析一般是為了獲得時間和頻率域之間的相互關系。傅里葉變換提供了有關頻率域的信息,但時間方面的局部化信息卻基本丟失。與傅里葉變換不同,小波變換通過平移母小波(mother
wavelet)可獲得信號的時間信息,而通過縮放小波的寬度(或者叫做尺度)可以獲得信號的頻率特性。對母小波的縮放和平移操作是為了計算小波的系數,這些系數代表小波和局部信號之間的相互關系。本節將介紹小波分析中常用的三個基本概念:連續小波變換、離散小波變換和小波重構。
1. 連續小波變換
傅里葉分析是把一個信號分解成各種不同頻率的正弦波,因此正弦波是其基函數。同樣,小波分析是把一個信號分解成將原始小波經過移位和縮放之后的一系列小波,因此小波同樣可以用作表示一些函數的基函數。可以說,凡是能夠用傅里葉分析的函數都可以用小波分析,因此小波變換也可以理解為用經過縮放和平移的一系列函數代替傅里葉變換的正弦波。
數學上,傅里葉表示如下
同樣,連續小波變換(continuous wavelet transform, CWT)用小式表示
這個式子的含義就是,小波變換是信號f(t)與被縮放和平移的小波函數(Psi)之積在信號存在的整個周期間求和。CWT變換的結果是許多小波系數C,這些系數是縮放因子(scale)和位置因子(position)的函數。
CWT的變換過程可分為如下5個步驟:
步驟1:把小波(Psi)和原始信號f(t)的開始部分進行比較
步驟2:計算系數C。該系數表示該部分信號與小波的近似程度。系數C的值越高表示信號與小波越相似,因此系數C可以反映這種波形的相關程度。
步驟3:把小波向右移,距離為k,得到的小波函數為(Psi(t?-
k)),然后重復步驟1和2。再把小波向右移,得到小波(Psi(t -
2k)),重復步驟1和2,按照上述步驟一直進行下去,知道信號f(t)結束。
步驟4:擴展小波(Psi(t)),例如開展一倍,得到的小波函數為(Psi(t/2))。
步驟5:重復步驟1~4。
CWT的整個變換過程如圖所示
小波變換完成之后得到的系數是在不同的縮放因子下由信號的不同部分產生的。這些小波系數、縮放因子和時間之間的關系和它們的含義可以用下圖表示,該圖是用Matlab軟件繪制的。圖(a)是用二維圖像表示的小波分析圖,x軸表示沿信號的時間方向上的位置,y軸表示縮放因子,每個x-y點的顏色表示小波系數C的幅度大小。圖(b)是用三維圖像表示的小波分析圖,z軸表示小波變換之后的系數。
小波的縮放因子與信號頻率之間的關系可以這樣來理解。縮放因子小,表示小波比較窄,度量的是信號細節,表示頻率(omega)較高;相反,縮放因子大,表示小波比較寬,度量的是信號的粗糙程度,表示頻率(omega)比較低。
總結
以上是生活随笔為你收集整理的交叉小波分析matlab,[转载]Matlab 小波分析及物理含义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 输入输出流的一些理解
- 下一篇: 对抗网络学习-FGSM对抗样本生成