1. 程式人生 > >matlab中的xcorr 自相關函式(轉)

matlab中的xcorr 自相關函式(轉)

Matlab中用於計算自相關函式的指令是xcorr.比如矩陣A=[1 2 3];

    xcorr(A)=3.0000 8.0000 14.0000 8.0000 3.0000

自相關函式是訊號間隔的函式,間隔有正負間隔,所以n個長度的訊號,有2n-1個自相關函式值,分別描述的是不同訊號間隔的相似程度。

     比如,上面的矩陣,最後得到5個結果,其中第三個是自己和自己相乘,最後相加的結果,值最大1*1+2*2+3*3=14。而第二個和第四個分別是間隔正負1的結果也就是1*2+2*3=8,2*1+3*2=8。第1個和第五個分別是間隔正負2,也就是1*3=3,3*1=3。


matlab中的xcorr探祕 - szshdy - 水中魚腹...
xcorr求出的結果僅僅是x(n)*x(n+m)並對其求和,並沒有除以前面的N或者是N-|K|。不用這個函式也可以求

for k=0:1:p
    t5=0;
    for n=0:1:N-k-1
        t5=t5+conj(x(n+1))*x(n+1+k);
    end
    Rxx(k+1)=t5/N;
end
也可以實現,其中N為序列長度此處並未求出全部的自相關序列,只求了間隔從0到p的。
我們令Rx=xcorr(x);
則Rxx(k+1)=Rx(N+k)/N得到。
下面是摘自一篇博文:

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  高度相關
matlab計算自相關函式autocorr和xcorr有什麼不一樣的?xcorr是沒有將均值減掉做的相關,autocorr則是減掉了均值。

相關推薦

matlabxcorr 相關函式

Matlab中用於計算自相關函式的指令是xcorr.比如矩陣A=[1 2 3];     xcorr(A)=3.0000 8.0000 14.0000 8.0000 3.0000 自相關函式是訊號間隔的函式,間隔有正負間隔,所以n個長度的訊號,有2n-1個自相關函式值

MATLAB呼叫Weka設定方法及示例

MATLAB命令列下驗證Java版本命令 version -java 配置MATLAB呼叫Java庫 Finish Java codes. Create Java library file, i.e., .jar file. Put crea

ACE的bit操作宏

查看 disable amp work .cpp log get lin 影響 1 # define ACE_BIT_ENABLED(WORD, BIT) (((WORD) & (BIT)) != 0 ) 2 # define ACE_BIT_DISAB

儲存過程呼叫定義函式不在同一使用者下提示無許可權或識別符號無效

 問題描述:           在A使用者下自定了一個函式 : getName(); 然後在B使用者下建立儲存過程,呼叫了A使用者下的自定義函式getName;在編譯儲存過程時提示函式 getName無效。 解決方法:           將A使用者下自定義函式getNa

C/C++作用域詳解

防止 局部作用域 gist 文件中 方式 為什麽不使用 形式參數 lan archive 作用域規則告訴我們一個變量的有效範圍,它在哪兒創建,在哪兒銷毀(也就是說超出了作用域)。變量的有效作用域從它的定義點開始,到和定義變量之前最鄰近的開括號配對的第一個閉括號。也就是說,作

C#的new和override

方法 too 找到 ring 父類 類繼承 衍生 virtual func  在衍生類中的方法上使用new和override關鍵字有何意義,可以通過一系列問題來找到答案。先看一段代碼: 1 class Program 2 { 3 s

結構體在內存的存儲方式

整數 內部 存儲 技術 能夠 問題 基本數據 存儲空間 -c 一個結構體變量定義完之後,其在內存中的存儲並不等於其所包含元素的寬度之和。 例一: 1 #include <iostream&

C#屬性PropertyInfo的使用

value cells new ict mod 安全 public contain 有助於 昨天編程遇到一個問題兩個類字段都是二十多個,其中有十多個是相同的,需要將一個類的字段賦值給另外一個類,開始的自己想手動的一個個去賦值,後來想來一下C#基礎知識,用PropertyIn

微服務實施Spring Cloud踩過的坑

div href 發現 .wang blog log ring clas bds http://tietang.wang/2016/09/08/%E5%BE%AE%E6%9C%8D%E5%8A%A1/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%AE%9E%

C++ vector的使用方法

ron 在二維數組中 mes pan col 說明 pre detail size 原地址:http://blog.csdn.net/duan19920101/article/details/50617190/ 在c++中,vector是一個十分有用的容器。 作用:

SpringBoot攔截器Bean無法註入

然而 BE 技術分享 查詢 load oschina pac 原因 註解 這兩天遇到SpringBoot攔截器中Bean無法註入問題。下面介紹我的思考過程和解決過程: 1.由於其他bean在service,controller層註入一點問題也沒有,開始根本沒意識到Bean無

使用intellij的idea集成開發工具的git插件

過程 tel arc com git bash push 就是 img sso 轉自:https://blog.csdn.net/u012225679/article/details/71123171 註意:這裏並沒有介紹git客戶端的安裝,如果要安裝客戶端,大家可以參

JavaArrayList和LinkedList區別

java linked .com -s lan font array href spa 具體詳情參考原博客: http://pengcqu.iteye.com/blog/502676Java中ArrayList和LinkedList區別(轉)

jsp如何清除緩存

hspa close nta amp control write ces resp container <% response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 respons

OpenCV在字符提取進行的預處理

的人 lease pos extract .net avg 圖像 rar 識別 OCR簡介熟悉OCR的人都了解,OCR大致分為兩個部分: -文字提取text extractor -文字識別text recognition 其中,第一部分是屬於圖像處理部分,涉及到圖像分割的知

字元驅動裝置原理及其相關函式

參看朱有鵬老師嵌入式視屏,第五部分第三章 1、(1)老介面:register_chrdev (2)新介面:register_chrdev_region/alloc_chrdev_region + cdev register_chrdev_region/alloc_chrdev_regio

WPF的依賴項屬性

出處:https://www.cnblogs.com/axzxs2001/archive/2010/04/25/1719857.html 隨著WPF的推廣,不得不重新拾起WPF來,因為這塊的產品越來越多。 只能跟著MSDN來學了,所以想是在這裡記錄下學習的過程和對知識的理解。 先從最基本的吧,依賴項屬性

JAVA Random()函式

Java中存在著兩種Random函式: 一、java.lang.Math.Random;   呼叫這個Math.Random()函式能夠返回帶正號的double值,該值大於等於0.0且小於1.0,即取值範圍是[0.0,1.0)的左閉右開區間,返回值是一個偽隨機選擇的數,在該範圍內(

Aras學習筆記 (21) TeamCenter相關概念

        PDM是一門用來管理所有與產品相關的資訊(即描述產品的各種資訊,包括但不限於零部件資訊、結構、配置、文件、CAD 檔案、許可權資訊等)和過程(指產品的發放、變更、審批過程和其它的工作流程,包括對這些過程的定義和管理)的技術。

MySql建立定義函式Function

1.建立自定義函式 DELIMITER $$ DROP FUNCTION IF EXISTS genPerson$$ CREATE FUNCTION genPerson(name varchar(20)) RETURNS varchar(50) BEGIN DECLAR