matlab求自相關時,plotbdt,a為什麼要乘

2021-03-03 20:50:53 字數 6047 閱讀 4073

1樓:花菜hhallway普

1y=dsolve('d2y-7*(1-y^2)*dy+y=0','y(0)=1,dy(0)=0','t')

命令視窗輸出bai:警告du: explicit solution could not be found.

所以採用上述方法zhi找不到解析dao解。

數值解:

function dx=a(t,x)

dx=zeros(2,1);

dx(1)=x(2);

dx(2)=7*(1-x(1)^2)*x(2)-x(1);

[t,y]=ode15s('a',[0 50],[1 0])plot(t,y(:,1))

上半段用m檔案回寫成函式形答式並儲存檔名為a.m,下半段在命令視窗輸入,得到影象:

2樓:宇宇魚

.1是0.1的縮寫,後面一行取的步長為0.1

matlab中自相關函式xcorr

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

如何用matlab 實現自相關和互相關

4樓:匿名使用者

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)。

一般來說選擇歸一化進行互相關運算後,得到結果絕對值越大,兩組資料相關程度就越高。

5樓:匿名使用者

求自相關函式並作圖dt=.1;t=[0:dt:

100];x=cos(t);[a,b]=xcorr(x,'unbiased');plot(b*dt,a)詳情檢視xcorr的matlab幫助~~~

怎麼用matlab**m序列的自相關函式 20

6樓:無畏無懼

自相關函式和互相關函式的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畫圖plot時橫縱軸單位長度不一樣長,怎麼辦

可以通過改變座標的刻度決解matlab畫圖plot是橫縱長度不一樣長的問題,具體做法如下 set gca,xtick xtick,xticklabel xticklabel gca表示get current axis的handle,xtick表示顯示刻度的位置,xticklabel表示顯示的內容。e...

如何利用matlab求相關係數,matlab中已知協方差矩陣怎樣算相關係數?

1 第一步我們bai首先需要du知道matlab中求相關係數用到的是corrcoef函式,zhi在命令列視窗中dao輸入 help corrcoef 版 可以看到corrcoef函式用權法,2 第二步在命令列視窗中輸入a 1 3 6 7 8 16 b 2 4 7 9 15 19 建立兩個矩陣,求兩個...

用MATLAB求兩個矩陣的相關係數

主函式 來clc clear all a 1,2,3,4 2,4,5,6 23,34,2,0 b 2 3 5 a是源4列3行 b是1列3行 m,n size a corr zeros 1,n for i 1 n corr i min min corrcoef a i b enddisp corr 顯...