Matlab之xcorr函式的解釋

2021-09-26 16:07:21 字數 4527 閱讀 9819

**: 看了

matlab

關於xcorr

的help

文件沒搞清楚什麼意思,只夠看到一篇不錯的文章,通過簡單事例即可了解其應用。

輸入的是乙個簡單一維序列

x=[1,2

,3]第一:預設注釋項

[a,b]=xcorr(x),

通過該命令計算的結果為:

a=3 8 14 8 3;b=-2 -1 0 1 2.

下面介紹一下,該過程計算機是如何計算的,首先講

b的計算,設一維序列的長度為

n,則序列中任意兩個資料序號相減,最小值為

1-n,最大值為

n-1,且能取遍兩者之間的所有整數,將這些數從小到大排列得到的就是

b;然後講

a的計算,在預設注釋項的情況下,

a的計算是這樣的,

a的每一項是對應

b的每一項的 1

、當b(1

)=-2

時,計算a(

1)時只用到一組資料——(

3,1)注意順序,只有這兩個資料的序號相減(後面資料的序號減去前面的)滿足

b=-2

,因此a(1

)的計算公式為:

3*1=3 2

、當b(2

)=-1

時,計算a(

2)時用到兩組資料——(

2,1)和(3,

2),這兩組資料的序號相減(後面資料的序號減去前面的)滿足

b=-1

,因此a(2

)的計算公式為:

2*1+3*2=8 3

、當b(3

)=0時,計算a(

3)時用到三組資料——(

1,1)、(2,

2)、(3,

3),這三組資料的序號相減(後面資料的序號減去前面的)滿足

b=0,因此a(

3)的計算公式為:

1*1+2*2+3*3=14 4

、當b(4

)=1時,計算a(

4)時用到兩組資料——(

1,2)和(2,

3),(讀者請對比和情況

2的區別),這兩組資料的序號相減(後面資料的序號減去前面的)滿足

b=1,因此a(

4)的計算公式為:

1*2+2*3=8 5

、當b(5

)=2時,計算a(

4)時用到一組資料——(

1,3),(讀者請對比和情況

1的區別),這兩組資料的序號相減(後面資料的序號減去前面的)滿足

b=2,因此a(

4)的計算公式為:

1*3=3

第二:注釋項為『unbiased』,[a,

b]=xcorr(x

,『unbiased』

),通過該命令計算的結果為:

a=3 4 4.6667 4 3

;b=-2 -1 0 1 2.

下面介紹計算機如何計算該過程,

b的計算在四種注釋項的情況下是相同的,就不再講述了。

a的計算仍是和

b的每一項相對應的。 1

、當b(1

)=-2

時,計算a(

1)時只用到一組資料(記

n=1)——(

3,1)注意順序,只有這兩個資料的序號相減(後面資料的序號減去前面的)滿足

b=-2

,因此a(1

)的計算公式為:(

3*1)

/1=3 2

、當b(2

)=-1

時,計算a(

2)時用到兩組資料(記

n=2)——(

2,1)和(3,

2),這兩組資料的序號相減(後面資料的序號減去前面的)滿足

b=-1

,因此a(2

)的計算公式為:(

2*1+3*2

)/2=4 3

、當b(3

)=0時,計算a(

3)時用到三組資料(記

n=3)——(

1,1)、(2,

2)、(3,

3),這三組資料的序號相減(後面資料的序號減去前面的)滿足

b=0,因此a(

3)的計算公式為:(

1*1+2*2+3*3

)/3=4.6667 4

、當b(4

)=1時,計算a(

4)時用到兩組資料(記

n=2)——(

1,2)和(2,

3),(讀者請對比和情況

2的區別),這兩組資料的序號相減(後面資料的序號減去前面的)滿足

b=1,因此a(

4)的計算公式為:(

1*2+2*3

)/2=4 5

、當b(5

)=2時,計算a(

4)時用到一組資料(記

n=1)——(

1,3),(讀者請對比和情況

1的區別),這兩組資料的序號相減(後面資料的序號減去前面的)滿足

b=2,因此a(

4)的計算公式為:(

1*3)

/1=3

第三:注釋項為『biased』,[a,

b]=xcorr(x

,『biased』

),通過該命令計算的結果為:

a= 1.0000   2.6667    4.6667    2.6667    1.0000

,b=-2 -1 0 1 2

。下面介紹計算機如何計算該過程,注意到本次計算用到的序列

x的長度為

3,記為

m=3。 1

、當b(1

)=-2

時,計算a(

1)時只用到一組資料——(

3,1)注意順序,只有這兩個資料的序號相減(後面資料的序號減去前面的)滿足

b=-2

,因此a(1

)的計算公式為:(

3*1)

/m=1 2

、當b(2

)=-1

時,計算a(

2)時用到兩組資料——(

2,1)和(3,

2),這兩組資料的序號相減(後面資料的序號減去前面的)滿足

b=-1

,因此a(2

)的計算公式為:(

2*1+3*2

)/m=2.6667 3

、當b(3

)=0時,計算a(

3)時用到三組資料——(

1,1)、(2,

2)、(3,

3),這三組資料的序號相減(後面資料的序號減去前面的)滿足

b=0,因此a(

3)的計算公式為:(

1*1+2*2+3*3

)/m=4.6667 4

、當b(4

)=1時,計算a(

4)時用到兩組資料——(

1,2)和(2,

3),(讀者請對比和情況

2的區別),這兩組資料的序號相減(後面資料的序號減去前面的)滿足

b=1,因此a(

4)的計算公式為:(

1*2+2*3

)/m=2.6667 5

、當b(5

)=2時,計算a(

4)時用到一組資料——(

1,3),(讀者請對比和情況

1的區別),這兩組資料的序號相減(後面資料的序號減去前面的)滿足

b=2,因此a(

4)的計算公式為:(

1*3)

/m=1

第四:注釋項為『coeff』,[a,

b]=xcorr(x

,『coeff』

),通過該命令計算的結果為:

a= 0.2143   0.5714    1.0000    0.5714    0.2143

,b=-2 -1 0 1 2

,下面介紹計算機如何計算該過程,這種情況實際是將第三種情況下得到的結果進行歸一化,使得

b=0時對應的值為1,

a(1)

=1/4.6667=0.2143;a

(2)=2.6667/4.6667=0.5714,a

(3)=4.6667/4.6667=1,a

(4)=2.6667/4.6667=0.5714,a

(5)=1/4.6667=0.2143 另:

xcorr

命令在工程上的應用通常是對時間上的取樣資料序列

x進行處理,當資料點採完之後交給

matlab

處理時,

matlab

是不知道你的取樣時間間隔的,它僅僅根據上文所述的計算過程對輸入的資料序列

x進行計算,但我們可以自己定義時間間隔,例如

dt=0.01

,此時t=dt*b

即代表相關性計算中的時間延遲,前半部分是超前,後半部分是滯後,若

r=xcorr(x

,『unbiased』

),則通過命令:

plot(t

,r)即可得到該時域訊號的自相關函式曲線。

matlab中的xcorr 自相關函式

自 matlab中用於計算自相關函式的指令是xcorr.比如矩陣a 1 2 3 xcorr a 3.0000 8.0000 14.0000 8.0000 3.0000 自相關函式是訊號間隔的函式,間隔有正負間隔,所以n個長度的訊號,有2n 1個自相關函式值,分別描述的是不同訊號間隔的相似程度。比如,...

xcorr函式原理 Matlab xcorr

假設兩個平穩訊號 bold 和 bold 如果 x left t tao right y left t right 則可通過互相關求 tao clcclear close 實現 xcorr 函式 基本設定 t 1 s 總時間長度 fs 5000 hz 取樣頻率 t 0 1 fs t s 時間座標 n...

Matlab之統計函式

年紀越大發現記憶越差了,看來好記憶確實不如爛筆頭。用matlab已經有些年了,但是一些常用函式時間長了不用還是記不住。於是乎決定花點心思整理下 基本統計函式 均值 mean x 注意預設是對列求均值 mean x,2 對行求均值 方差 tabulate x 統計頻數 由於本人職業所需,經常需要統計考...