自相關與互相關

自相關函數表達了同一過程不同時刻的相互依賴關系,而互相關函數表示不同過程的某一時刻的相互依賴關系。
自相關函數是描述隨機信號X(t)在任意兩個不同時刻t1,t2的取值之間的相關程度;
互相關函數給出了在頻域內兩個信號是否相關的一個判斷指標,把兩測點之間信號的互譜與各自的自譜聯系了起來。

在圖象處理中,自相關和互相關函數的定義如下:設原函數是f(t),則自相關函數定義為R(u)=f(t)f(-t),其中表示卷積;設兩個函數分別是f(t)和g(t),則互相關函數定義為R(u)=f(t)*g(-t),它反映的是兩個函數在不同的相對位置上互相匹配的程度。

互相關函數是描述隨機信號X(t),Y(t)在任意兩個不同時刻t1,t2,的取值之間的相關程度.
自相關函數是描述隨機信號X(t)在任意兩個不同時刻t1,t2,的取值之間的相關程度.

自相關(Auto-correlation)

是對信號相關程度的一種度量,也就是說自相關可以看作是信號與自身的延遲信號相乘后的乘積進行積分運算。
在某些領域,自相關函數等同于自協方差
隨機信號的自相關函數與其功率譜是傅氏變換對(隨機信號無法得到具體的函數表達式,只有其統計信息),通過對接受信號的自相關運算可以進行頻譜分析。同時,自相關在信號檢測中也有很重要的作用,是在誤碼最小原則下的最佳接收準則。

同一時間函數在瞬時t和t+a的兩個值相乘積的平均值作為延遲時間t的函數,是信號與延遲后信號之間相似性的度量。延遲時間為零時,即為信號的均方值,此時它的值最大。

用途:
自相關函數可以用來計算周期信號的周期。

互相關(Cross-correlation)

是統計學中用來表示兩個隨機矢量 X 和 Y 之間的協方差 cov(X, Y),以與矢量 X 的“協方差”概念相區分,矢量 X 的“協方差”是 X 的各標量成分之間的協方差矩陣。描述兩個不同的信號之間的相關性的函數,這兩個信號不一定是隨機信號。

在信號處理領域中,互相關(有時也稱為“互協方差”)是用來表示兩個信號之間相似性的一個度量,通常通過與已知信號比較用于尋找未知信號中的特性。它是兩個信號之間相對于時間的一個函數,有時也稱為滑動點積,在模式識別以及密碼分析學領域都有應用。

兩個信號的互相關函數的頻域等于X信號頻域的共軛乘以Y信號的頻域。

互相關函數的上述性質在工程中具有重要的應用價值。
(1) 在混有周期成分的信號中提取特定的頻率
(2) 線性定位和相關測速
(3) 圖像配準
(4) 通過不同的傳感器檢測不同方向到達的聲音信號,通過對不同方位傳感器間的信號進行互相關可計算聲音到達不同傳感器間的時延。

Matlab中實現

求解xcorr的過程事實上是利用Fourier變換中的卷積定理進行的,即R(u)=ifft(fft(f)×fft(g)),其中×表示乘法(注:此公式僅表示形式計算,并非實際計算所用的公式)。也可以直接采用卷積進行計算,但表面上看,結果會與xcorr的不同。事實上,兩者既然有定理保證,那么結果應該相同。所見的不同,主要是沒有用對公式。Matlab自帶的xcorr函數的計算結果是沒有除以N(信號長度)的結果。下面是檢驗兩者結果相同的代碼:

dt=0.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,結果即為正確且相同的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容