1樓:匿名使用者
自相關函式是描述隨機訊號x(t)在任意兩個不同時刻t1,t2的取值之間的相關程度.設原函式是f(t),則自相關函式定義為r(u)=f(t)*f(-t),其中*表示卷積.
給個例子:
dt=.1;
t=[0:dt:100];
x=cos(t);
[a,b]=xcorr(x,'unbiased');
plot(b*dt,a)
上面**是求自相關函式並作圖,
matlab中檢視幫助時,
help xcorr 解釋其意思是:
c(m) = e[a(n+m)*conj(b(n))] = e[a(n)*conj(b(n-m))];
但是,在呼叫xcorr函式求自相關時,有 scaleopt引數
r=xcorr(s,scaleopt)
scaleopt有
'biased' - scales the raw cross-correlation by 1/m.
'unbiased' - scales the raw correlation by 1/(m-abs(lags)).
'coeff' - normalizes the sequence so that the auto-correlations
at zero lag are identically 1.0.
'none' - no scaling (this is the default).
注意觀察下面的測試:
s = [1 2 3]
r = xcorr(s);
r =3.0000 8.0000 14.0000 8.0000 3.0000
當用r=xcorr(s,'unbiased')時就能得到
r =3.0000 4.0000 4.6667 4.0000 3.0000
matlab中求自相關函式xcorr和autocorr的區別
2樓:匿名使用者
matlab中有兩個現成的函式可以求自相關:方法1是利用互相關函式xcorr;方法2是自相關函式autocorr。
但是對於向量x,只是進行xcorr(x)和autocorr(x),求的的結果卻差別很大。除了xcorr求得的序列是乙個中心對稱的偶函式序列外,數值的大小也不對應。
看了help,然後自己實驗了一下,終於找到了原因。首先,autocorr是對序列減去均值後做的自相關,最後又進行了歸一化。而且由於自相關本身是偶函式,而xcorr本身是計算互相關的,所以xcorr最終的結果是2*n-1,而autocorr只是取了以中心點n為起始的後面n個序列。
因此,如果以向量x為例,x長為n。則用autocorr(x,n-1)能得到的n長度結果。用xcorr需要有以下幾步:
e = mean(x);
x2 =x-e;
c =xcorr(x2);
d =c./c(n);
f =d(n:2*n-1);
可見,求自相關還是用autocorr更方便一些。另外,這裡為了方便,只是採用了預設的呼叫方式,兩個函式的具體引數變化還是要看help詳細說明
matlab如何實現自相關函式
3樓:匿名使用者
自相關函式是描述隨機訊號x(t)在任意兩個不同時刻t1,t2的取值之間的相關程度.設原函式是f(t),則自相關函式定義為r(u)=f(t)*f(-t),其中*表示卷積.
給個例子:
dt=.1;
t=[0:dt:100];
x=cos(t);
[a,b]=xcorr(x,'unbiased');
plot(b*dt,a)
上面**是求自相關函式並作圖,
matlab中檢視幫助時,
help xcorr 解釋其意思是:
c(m) = e[a(n+m)*conj(b(n))] = e[a(n)*conj(b(n-m))];
但是,在呼叫xcorr函式求自相關時,有 scaleopt引數
r=xcorr(s,scaleopt)
scaleopt有
'biased' - scales the raw cross-correlation by 1/m.
'unbiased' - scales the raw correlation by 1/(m-abs(lags)).
'coeff' - normalizes the sequence so that the auto-correlations
at zero lag are identically 1.0.
'none' - no scaling (this is the default).
注意觀察下面的測試:
s = [1 2 3]
r = xcorr(s);
r =3.0000 8.0000 14.0000 8.0000 3.0000
當用r=xcorr(s,'unbiased')時就能得到
r =3.0000 4.0000 4.6667 4.0000 3.0000
4樓:鄒汀蘭猶辰
-noscaling
(this
isthe
default).0000
當用r=xcorr(s;coeff'unbiased')時就能得到r=3.0,';
但是,有
scaleopt引數
r=xcorr(s;
[a,help
xcorr
解釋其意思是:
dt=,b]=xcorr(x;m.000014;plot(b*dt,其中*表示卷積.設原函式是f(t).
'unbiased'.0000
3,matlab中檢視幫助時;unbiased':dt;
x=cos(t).1自相關函式是描述隨機訊號x(t)在任意兩個不同時刻t1.0000
3,在呼叫xcorr函式求自相關時,':100];none'.
注意觀察下面的測試;
t=[0,scaleopt)
scaleopt有
'.6667
4.00004;-
scales
theraw
correlation
by1/biased'.'-
normalizes
thesequence
sothat
theauto-correlations
atzero
lagare
identically
1.0000
4:c(m)
=e[a(n+m)*conj(b(n))]=e[a(n)*conj(b(n-m))];),a)上面**是求自相關函式並作圖.0000
8,t2的取值之間的相關程度.
給個例子;r=
3;-scales
theraw
cross-correlation
by1/.
'(m-abs(lags)):s=
[123]r
=xcorr(s).0000
8,則自相關函式定義為r(u)=f(t)*f(-t)
matlab求自相關函式和偏相關函式
5樓:匿名使用者
自相關函式用xcorr或autocorr 偏相關不太清楚autocorr用法:autocorr(y,,2)
autocorr()函式是時間序列自相關函式y : 乙個時間序列資料
: 表示計算這個時間序列資料的自相關函式的延遲.
2: 表示自相關函式在》2的所有延遲的自相關係數看作為0xcorr用法:y=[a b c]xcorr=[ac ab+bc a^2+b^2+c^2 ab+bc ac]y=[1 2 3] 這裡a=1 b=2 c=3xcorr(y)=[3 8 14 8 3]
6樓:匿名使用者
可以直接使用函式:
自相關函式:autocorr()
偏自相關函式:parcorr()
你好,如果給定一系列離散的值,matlab如何求自相關函式呢?多謝
7樓:
x=0:0.01:10; x = sin(x); [r,lags]=xcorr(x); plot(lags,r)%%畫圖
xcorr是系統自帶的相關函式(沒有歸一化)命令,後面如果只有一組輸入數就是自相關函式,有2個就是互相關函式。上面命令你換下x值就可以了。
8樓:匿名使用者
試試matlab中自相關函式xcorr
用matlab的xcorr求自相關,並畫圖,橫座標和縱座標都代表什麼物理意義?
9樓:
1 橫座標代表訊號的延遲時間,因為自相關的定義是乙個訊號經過延遲後與(未延遲的)自身相乘積分。縱座標的單位是訊號單位的平方乘以時間,比如訊號是電壓(v)那麼縱座標的單位就是(v^2 s)表示能量。能量越大表明相關性越強。
2 如果你要看兩個訊號的相關性 應該作互相關。
如何用matlab 實現自相關和互相關
10樓:匿名使用者
1. 首先說說自相關和互相關的概念。
這個是訊號分析裡的概念,他們分別表示的是兩個時間序列之間和同乙個時間序列在任意兩個不同時刻的取值之間的相關程度,即互相關函式是描述隨機訊號
x(t),y(t)在任意兩個不同時刻t1,t2的取值之間的相關程度,自相關函式是描述隨機訊號x(t)在任意兩個不同時刻t1,t2的取值之間的相關
程度。自相關函式是描述隨機訊號x(t)在任意兩個不同時刻t1,t2的取值之間的相關程度;互相關函式給出了在頻域內兩個訊號是否相關的乙個判斷指標,把兩測點之間訊號的互譜與各自的自譜聯絡了起來。它能用來確定輸出訊號有多大程度來自輸入訊號,對修正測量中接入雜訊源而產生的誤差非常有效.
事實上,在圖象處理中,自相關和互相關函式的定義如下:設原函式是f(t),則自相關函式定義為r(u)=f(t)*f(-t),其中*表示卷積;設兩個
函式分別是f(t)和g(t),則互相關函式定義為r(u)=f(t)*g(-t),它反映的是兩個函式在不同的相對位置上互相匹配的程度。
那麼,如何在matlab中實現這兩個相關並用影象顯示出來呢?
dt=.1;
t=[0:dt:100];
x=cos(t);
[a,b]=xcorr(x,'unbiased');
plot(b*dt,a)
上面**是求自相關函式並作圖,對於互相關函式,稍微修改一下就可以了,即把[a,b]=xcorr(x,'unbiased');改為[a,b]=xcorr(x,y,'unbiased');便可。
2. 實現過程:
在matalb中,求解xcorr的過程事實上是利用fourier變換中的卷積定理進行的,即r(u)=ifft(fft(f)×fft(g)),其中
×表示乘法,注:此公式僅表示形式計算,並非實際計算所用的公式。當然也可以直接採用卷積進行計算,但是結果會與xcorr的不同。事實上,兩者既然有定
理保證,那麼結果一定是相同的,只是沒有用對公式而已。下面是檢驗兩者結果相同的**:
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. 其他相關問題:
(1)相關程度與相關函式的取值有什麼聯絡?
相關係數只是乙個比率,不是等單位量度,無什麼單位名稱,也不是相關的百分數,一般取小數點後兩位來表示。相關係數的正負號只表示相關的方向,絕對值表示相關的程度。因為不是等單位的度量,因而不能說相關係數0.
7是0.35兩倍,只能說相關係數為0.7的二列變數相關程度比相關係數為0.
35的二列變數相關程度更為密切和更高。也不能說相關係數從0.70到0.
80與相關係數從0.30到0.40增加的程度一樣大。
對於相關係數的大小所表示的意義目前在統計學界尚不一致,但通常是這樣認為的:
相關係數 相關程度
0.00-±0.30 微相關
±0.30-±0.50 實相關
±0.50-±0.80 顯著相關
±0.80-±1.00 高度相關
(2)matlab計算自相關函式autocorr和xcorr有什麼不一樣的?
分別用這兩個函式對同乙個序列計算,為什麼結果不太一樣?因為xcorr是沒有將均值減掉做的相關,autocorr則是減掉了均值的。而且,用離散訊號做自相關時,訊號擷取長度(取樣點n)不一樣,自相關函式就不一樣。
(3)xcorr是計算互相關函式,帶有乙個option的引數:
a=xcorr(x,y,'option')
option=baised時,是計算互相關函式的有偏估計;
option=unbaised時,是計算互相關函式的無偏估計;
option=coeff時,是計算歸一化的互相關函式,即為互相關係數,在-1至1之間;
option=none,是預設的情況。
所以想要計算互相關係數,可用'coeff'引數。
用這個xcorr函式作離散互相關運算時要注意,當x, y是不等長向量時,短的向量會自動填0與長的對齊,運算結果是行向量還是列向量就與x一樣。
互相關運算計算的是x,y兩組隨機資料的相關程度,使用引數coeff時,結果就是互相關係數,在-1至1之間,否則結果不一定在這範圍,有可能很大也有可能很小,這視乎x, y資料的大小,所以一般要計算兩組資料的相關程度,一般選擇coeff引數,對結果進行歸一化。
所謂歸一化簡單理解就是將資料系列縮放到-1到1範圍,正式的就是一種簡化計算的方式,即將有量綱的表示式,經過變換,化為無量綱的表示式,成為純量。變換式為x=(x實測--xmin)/(xmax-xmin)。
一般來說選擇歸一化進行互相關運算後,得到結果絕對值越大,兩組資料相關程度就越高。
matlab中自相關函式的時滯與長度有沒有關係
自相關函式 用baixcorr或autocorr 偏相關不太清楚duautocorr用法 zhiautocorr y,2 autocorr 函式是時間序dao列自相內關函式 y 乙個時間序列數容 據 表示計算這個時間序列資料的自相關函式的延遲.2 表示自相關函式在 2的所有延遲的自相關係數看作為0 ...
自相關函式和互相關函式的疑問,自相關函式和互相關函式的主要差異是什麼理工學科
不好意思 這個我不知道哎 不能幫到您了 真的很抱歉啊!自相關函式和互相關函式的主要差異是什麼?理工學科 呵呵,不知道你看的是哪本書,用相關函式來做什麼。這個問題很寬泛啊。互相關函式體現兩個訊號的接近程度 自相關函式乙個訊號在不同時刻的相似程度。比如說白雜訊的任意時刻都互不相關,所以它的自相關函式是衝...
自相關函式為什麼最終會接近於,自相關函式為什麼最終會接近於
白雜訊的功率譜s w no 2,用影象表示是乙個頻寬為無限大的一條直線 因為功率譜密度跟自相關函式互為一對傅利葉變換 所以r t no 2 t t 函式只有在t 0時值才為1,為乙個衝擊,所以只有在t 0時值才不為0 不知道我說的你聽明白沒?自相關函式有什麼意義 5 自相關函式在分析隨機訊號時候是非...