1. 首先說說自相關(guān)和互相關(guān)的概念。
這個是信號分析里的概念,他們分別表示的是兩個時間序列之間和同一個時間序列在任意兩個不同時刻的取值之間的相關(guān)程度,即互相關(guān)
函數(shù)是描述隨機(jī)信號x(t),y(t)在任意兩個不同時刻t1,t2的取值之間的相關(guān)程度,自相關(guān)函數(shù)是描述隨機(jī)信號x(t)在任意兩個不同時刻t1,t2的
取值之間的相關(guān)程度。
自相關(guān)函數(shù)是描述隨機(jī)信號X(t)在任意兩個不同時刻t1,t2的取值之間的相關(guān)程度;互相關(guān)函數(shù)給出了在頻域內(nèi)兩個信號是否相關(guān)的一個
判斷指標(biāo),把兩測點(diǎn)之間信號的互譜與各自的自譜聯(lián)系了起來。它能用來確定輸出信號有多大程度來自輸入信號,對修正測量中接入噪聲源而產(chǎn)生
的誤差非常有效.
事實上,在圖象處理中,自相關(guān)和互相關(guān)函數(shù)的定義如下:設(shè)原函數(shù)是f(t),則自相關(guān)函數(shù)定義為R(u)=f(t)*f(-t),其中*表示卷積;設(shè)
兩個函數(shù)分別是f(t)和g(t),則互相關(guān)函數(shù)定義為R(u)=f(t)*g(-t),它反映的是兩個函數(shù)在不同的相對位置上互相匹配的程度。
那么,如何在matlab中實現(xiàn)這兩個相關(guān)并用圖像顯示出來呢?
dt=.1;
t=[0:dt:100];
x=cos(t);
[a,b]=xcorr(x,'unbiased');
plot(b*dt,a)
上面代碼是求自相關(guān)函數(shù)并作圖,對于互相關(guān)函數(shù),稍微修改一下就可以了,即把[a,b]=xcorr(x,'unbiased');改為[a,b]=xcorr
(x,y,'unbiased');便可。
2. 實現(xiàn)過程:
在Matalb中,求解xcorr的過程事實上是利用Fourier變換中的卷積定理進(jìn)行的,即R(u)=ifft(fft(f)×fft(g)),其中×表示乘法,注:此
公式僅表示形式計算,并非實際計算所用的公式。當(dāng)然也可以直接采用卷積進(jìn)行計算,但是結(jié)果會與xcorr的不同。事實上,兩者既然有定理保證
,那么結(jié)果一定是相同的,只是沒有用對公式而已。下面是檢驗兩者結(jié)果相同的代碼:
dt=.1;
t=[0:dt:100];
x=3*sin(t);
y=cos(3*t);
subplot(3,1,1);
plot(t,x);
subplot(3,1,2);
plot(t,y);
[a,b]=xcorr(x,y);
subplot(3,1,3);
plot(b*dt,a);
yy=cos(3*fliplr(t)); % or use: yy=fliplr(y);
z=conv(x,yy);
pause;
subplot(3,1,3);
plot(b*dt,z,'r');
即在xcorr中不使用scaling。
3. 其他相關(guān)問題:
1) 相關(guān)程度與相關(guān)函數(shù)的取值有什么聯(lián)系?
相關(guān)系數(shù)只是一個比率,不是等單位量度,無什么單位名稱,也不是相關(guān)的百分?jǐn)?shù),一般取小數(shù)點(diǎn)后兩位來表示。相關(guān)系數(shù)的正負(fù)號只表
示相關(guān)的方向,絕對值表示相關(guān)的程度。因為不是等單位的度量,因而不能說相關(guān)系數(shù)0.7是0.35兩倍,只能說相關(guān)系數(shù)為0.7的二列變量相關(guān)程度
比相關(guān)系數(shù)為0.35的二列變量相關(guān)程度更為密切和更高。也不能說相關(guān)系數(shù)從0.70到0.80與相關(guān)系數(shù)從0.30到0.40增加的程度一樣大。
對于相關(guān)系數(shù)的大小所表示的意義目前在統(tǒng)計學(xué)界尚不一致,但通常按下是這樣認(rèn)為的:
相關(guān)系數(shù) 相關(guān)程度
0.00-±0.30 微相關(guān)
±0.30-±0.50 實相關(guān)
±0.50-±0.80 顯著相關(guān)
±0.80-±1.00 高度相關(guān)