2012-09-10 30 views
0

我正在使用xcorr2(A,A)來計算自相關。但是,輸出比A大。我應該如何修剪輸出以找到正確的自相關矩陣?例如,我的A矩陣是51x51,輸出將是101x101。很顯然,中心點與自身的相關性最大,在這種情況下位於(26,26),但在新的自相關圖中位於(51,51)。我需要一個通用的方法來修剪最終輸出。在MATLAB中修正自相關結果

回答

2

通常你必須採取M個點從M/2至3M/2在1 ST尺寸,並且N個點從N/2在2 第二尺寸3N/2,假設A是一個M乘N矩陣:

[M, N] = size(A); 
cor = xcorr2(A); %# Shorter form of xcorr(A, A) 
C = cor(ceil(M/2):floor(3 * M/2), ceil(N/2):floor(3 * N/2)) 

這裏C將是修剪輸出。

編輯:
對於任何兩個矩陣AB,的xcorr2(A, B)的結果將是一個(M + M -1)×(N + N - 1)矩陣。但是,在這裏,如果矩陣的維數不相等,則必須自行決定要提取哪個部分。如果你想提取重要的中心部分,你可以這樣做:

[MA, NA] = size(A); 
[MB, NB] = size(B); 
v = [MA + MB, NA + NB]/4; %# Just a temporary vector 
cor = xcorr2(A, B); 
C = cor(ceil(v(1)):floor(3 * v(1)), ceil(v(2)):floor(3 * v(2)) 
+1

@ Eitan:謝謝。它的工作原理:) – Nicole

+0

@ Eitan:A和B的互相關是什麼?我的意思是,在A和B有不同尺寸的情況下? – Nicole

+0

請看我更新的答案。 –