如何求自相關函數?
matlab如何實現自相關函數
自相關函數是描述隨機信號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
Acos(wt)的自相關函數和功率譜怎麼求啊
求正弦信號x(t)=Asin(wt+φ)的自相關函數和功率譜密度函數
解
R(t1,t2)=E[x(t1)x(t2)]=E[Asin(wt1+φ)Asin(wt2+φ)]=(A2/2)E{cos(t2-t1)-cos[w(t2+t1)+2φ]}=(A2/2){cos(t2-t1)+∫02πcos[w(t2+t1)+2φ](1/2π)dφ}=(A2/2)[ cosw(t2-t1)+0]= (A2/2) cosw(t2-t1) 令t2-t1=τ ,則R(t1,t2)= (A2/2) coswτ=R(τ)
傅立葉變換coswτπ[δ(W-w)+ δ(W+w)]所以,自相關函數為R(τ)=(A2/2) coswτ,功率譜密度為Px(w)= (πA2/2) [δ(W-w)+ δ(W+w)]
已知自相關函數,怎麼求均值
excel中的相關係數是可以用CORREL函數計算出來。假設的兩組數據為:A1:A7和B1:B7,在C1輸入公式=CORREL(A1:A7,B1:B7)即可。CORREL函數語法具有下列參數:CORREL(array1,array2)Array1 必需。第一組數值單元格區域。Array2 必需。第二組數值單元格區域。其中x和y是樣本平均值AVERAGE(array1)和AVERAGE(array2)。
怎麼用Matlab仿真m序列的自相關函數 20分
自相關函數和互相關函數的matlab計算和作圖
1. 首先說說自相關和互相關的概念。
這個是信號分析裡的概念,他們分別表示的是兩個時間序列之間和同一個時間序列在任意兩個不同時刻的取值之間的相關程度,即互相關函數是描述隨機信號x(t),y(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 高度......
MATLAB計算一組數據的自相關函數 30分
附件中例子
Matlab怎麼求二維矩陣的自相關函數 50分
使用corrcoef函數。
R = corrcoef(X) returns a matrix R of correlation coefficients calculated from
an input matrix X whose rows are observations and whose columns are variables。