0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何判定兩個(gè)信號(hào)序列的相似程度?

FPGA之家 ? 來(lái)源:嵌入式客棧 ? 2023-04-15 09:14 ? 次閱讀

在工程應(yīng)用時(shí),有時(shí)候需要計(jì)算兩個(gè)信號(hào)序列的相似度,實(shí)際信號(hào)由于在采集過程中會(huì)混入干擾,如果簡(jiǎn)單的依次比較各樣本是否相等或者差值,則很難判定兩個(gè)信號(hào)序列的相似程度。本文來(lái)聊聊我的一些思路。

什么是互相關(guān)函數(shù)?

在統(tǒng)計(jì)學(xué)中,相關(guān)是描述兩個(gè)隨機(jī)變量序列或二元數(shù)據(jù)之間的統(tǒng)計(jì)關(guān)系,無(wú)論是否具有因果關(guān)系。廣義上講,相關(guān)性是統(tǒng)計(jì)上的關(guān)聯(lián)程度,它通常指的是兩個(gè)變量的線性相關(guān)的程度。比如商品的價(jià)格和消費(fèi)者購(gòu)買愿意數(shù)量之間的關(guān)系,也即所謂的需求曲線。

相關(guān)性是有用的,因?yàn)樗鼈兛梢悦枋鲆环N可在實(shí)踐中加以利用的預(yù)測(cè)作用。例如,根據(jù)電力需求和天氣之間的相關(guān)性,電力公司可能會(huì)在天氣涼快時(shí)候生產(chǎn)更少的電力。在這個(gè)例子中,有一定的因果關(guān)系存在,因?yàn)闃O端天氣導(dǎo)致人們使用更多的電力用于取暖或制冷。然而,一般而言,相關(guān)性的存在并不足以推斷出因果關(guān)系的存在,也就是說相關(guān)性并不意味著因果關(guān)系。

poYBAGQ5-r2APxjtAACkL5VL6JU921.jpg

什么是相關(guān)系數(shù)?

最熟悉的度量?jī)蓚€(gè)量之間的相關(guān)性的方法是皮爾遜乘積矩相關(guān)系數(shù)(PPMCC),也稱為“皮爾遜相關(guān)系數(shù)”,通常簡(jiǎn)稱為“相關(guān)系數(shù)”。在數(shù)學(xué)上,它被定義為對(duì)原始數(shù)據(jù)的最小二乘擬合的質(zhì)量(擬合程度或效果)。它是由數(shù)據(jù)集兩個(gè)變量的協(xié)方差的比率,歸一化到他們的方差的平方根得到的。數(shù)學(xué)上,兩個(gè)變量的協(xié)方差除以標(biāo)準(zhǔn)差的乘積。

皮爾遜積矩相關(guān)系數(shù)試圖通過兩個(gè)隨機(jī)序列的數(shù)據(jù)集建立一條最佳擬合曲線,實(shí)質(zhì)上是通過列出期望和由此產(chǎn)生的皮爾遜相關(guān)系數(shù)表明實(shí)際數(shù)據(jù)集離預(yù)期值有多遠(yuǎn)。根據(jù)皮爾遜相關(guān)系數(shù)的符號(hào),如果數(shù)據(jù)集的變量之間存在某種關(guān)系,可以得到負(fù)相關(guān)或正相關(guān)。其定義公式如下:

pYYBAGQ5-tSAIrrsAADBcp78SJQ984.jpg

相關(guān)系數(shù)有啥用?

皮爾遜相關(guān)系數(shù)的絕對(duì)值不大于1是Cauchy–Schwarz不等式的推論(有興趣的可以去找書看看)。因此,相關(guān)系數(shù)的值在[-1,1]之間。在理想的增加線性相關(guān)關(guān)系情況下,相關(guān)系數(shù)為+1;在理想的減少(反相關(guān))線性關(guān)系情況下,相關(guān)系數(shù)為-1;在所有其他取值情況下,表示變量之間的線性相關(guān)程度。當(dāng)它接近零時(shí),更接近于不相關(guān)。系數(shù)越接近-1或1,變量之間的相關(guān)性越強(qiáng)。

故,相關(guān)系數(shù)其值范圍分布在區(qū)間[-1,1]:

1表示完全正相關(guān)

0表示不相關(guān)

-1表示完全負(fù)相關(guān)

為了方便理解,假定兩個(gè)隨機(jī)序列按照下面各類情況分布,下面的數(shù)字為相關(guān)系數(shù):

2ed2dfae-db23-11ed-bfe3-dac502259ad0.png

程序如何實(shí)現(xiàn)呢?

上述公式在實(shí)際編程時(shí),當(dāng)然可以直接按照公式編制代碼,如果仔細(xì)觀察會(huì)發(fā)現(xiàn)該公式可以進(jìn)一步簡(jiǎn)化,過程省略:

poYBAGQ5-u2AKWmGAAApyDzqXq0520.jpg

由這個(gè)公式就很容易編程了,干貨在這里,可以拿去稍加改造即可使用:

#include
#include

/*返回值在區(qū)間:[-1,1]*/
/*如返回-10,則證明輸入參數(shù)無(wú)效*/
#definedelta0.0001f
doublecalculate_corss_correlation(double*s1,double*s2,intn)
{
doublesum_s12=0.0;
doublesum_s1=0.0;
doublesum_s2=0.0;
doublesum_s1s1=0.0;//s1^2
doublesum_s2s2=0.0;//s2^2
doublepxy=0.0;
doubletemp1=0.0;
doubletemp2=0.0;

if(s1==NULL||s2==NULL||n<=0)
??????return?-10;
????
????for(int?i=0;i-delta&&temp1-delta&&temp2

運(yùn)行結(jié)果為:

pxyofs1ands2:0.997435
pxyofs1ands1:1.000000
pxyofs1ands1:-1.000000

將這三個(gè)信號(hào)繪制成波形來(lái)看看:

2eda1cce-db23-11ed-bfe3-dac502259ad0.png

由圖看出:

S1與S2非常相似,其相關(guān)系數(shù)為0.997435,高度相似

S1與-S1則剛好相位相反,理想反相關(guān),其相關(guān)系數(shù)為-1

S1與S1則理所當(dāng)然是一樣的,其相關(guān)系數(shù)為1

再來(lái)一組信號(hào)對(duì)比一下:

2ee51700-db23-11ed-bfe3-dac502259ad0.png

其波形數(shù)據(jù)為:

doubles1[30]={
0.309016989,0.587785244,0.809016985,0.95105651,1,
0.951056526,0.809017016,0.587785287,0.30901704,5.35898E-08,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0
};
doubles6[30]={
0,0,0.187381311,0.368124547,0.535826787,
0.684547097,0.809016985,0.904827044,0.968583156,0.998026727,
0.992114705,0.951056526,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0
};
doubles7[30]={
0.187381311,0.368124547,0.535826787,0.684547097,0.809016985,
0.904827044,0.968583156,0.998026727,0.992114705,0.951056526,
0.876306697,0.770513267,0.637424022,0.481753714,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0
};

利用上述代碼計(jì)算S1與S6,S1與S7的相關(guān)系數(shù):

pxyofs1ands6:0.402428
pxyofs1ands7:0.612618

可見,S6、S7與S1的相關(guān)系數(shù)越來(lái)越大,從波形上看相似度也越來(lái)越大。

總結(jié)一下

通過相關(guān)系數(shù)可以比較完美的判斷兩個(gè)信號(hào)序列,或者兩個(gè)隨機(jī)變量之間的相似度。相關(guān)系數(shù)以及互相關(guān)函數(shù)應(yīng)用很廣,本文僅僅描述了一個(gè)工程上應(yīng)用較多的實(shí)際栗子。事實(shí)上,該數(shù)學(xué)特性有著廣泛的應(yīng)用,有興趣的可以深度學(xué)習(xí)探討一下。

??





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 波形圖
    +關(guān)注

    關(guān)注

    1

    文章

    34

    瀏覽量

    14887
  • 信號(hào)線
    +關(guān)注

    關(guān)注

    2

    文章

    166

    瀏覽量

    21394
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    610

    瀏覽量

    28291

原文標(biāo)題:數(shù)學(xué)之美:判定兩個(gè)隨機(jī)信號(hào)序列的相似度

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于對(duì)兩個(gè)信號(hào)進(jìn)行比較

    現(xiàn)在我要做一個(gè)對(duì)兩個(gè)信號(hào)(一個(gè)事先采集好的信號(hào),一個(gè)現(xiàn)在采集的
    發(fā)表于 10-23 22:05

    LabVIEW用互相關(guān)判定個(gè)語(yǔ)音信號(hào)相似度,怎么判斷?

    我要做一個(gè)LabVIEW用互相關(guān)判定個(gè)語(yǔ)音信號(hào)相似度,互相關(guān)之后怎么去判斷他的相似度啊。畢業(yè)
    發(fā)表于 01-05 09:54

    個(gè)相似信號(hào)如何識(shí)別。

    ,每通道讀1000樣本實(shí)時(shí)采樣火線電流信號(hào),作為Y序列。者卷積,因?yàn)槿?b class='flag-5'>個(gè)信號(hào)周期相同,都是200個(gè)
    發(fā)表于 07-26 10:09

    如何判別兩個(gè)信號(hào)波形的相似度?

    獲得兩個(gè)波形,即組數(shù)據(jù),如何判別它們之間的相似度呢
    發(fā)表于 10-18 06:49

    NI推出兩個(gè)新的射頻信號(hào)調(diào)理模塊

    NI推出兩個(gè)新的射頻信號(hào)調(diào)理模塊  美國(guó)國(guó)家儀器有限公司(National Instruments,簡(jiǎn)稱NI)近日宣布推出兩個(gè)新的射頻信號(hào)調(diào)理模塊,能增強(qiáng)基于PXI的射頻和微波測(cè)試系
    發(fā)表于 02-02 17:58 ?955次閱讀

    流式時(shí)間序列的實(shí)時(shí)相似度研究

    序列。如何從中獲取有價(jià)值數(shù)據(jù)?時(shí)間序列數(shù)據(jù)挖掘是一種常用方法。和其它數(shù)據(jù)挖掘方法一樣,時(shí)間序列相似性度量是一項(xiàng)基礎(chǔ)性工作。在時(shí)間序列的聚類
    發(fā)表于 11-20 10:30 ?9次下載
    流式時(shí)間<b class='flag-5'>序列</b>的實(shí)時(shí)<b class='flag-5'>相似</b>度研究

    基于分布式的時(shí)間序列局部相似性檢測(cè)

    基于動(dòng)態(tài)時(shí)間規(guī)整算法思想的CrossMatch算法可以用來(lái)解決序列間的部分相似問題,但是由于算法時(shí)間空間復(fù)雜度過高,需要消耗大量的計(jì)算資源,因此無(wú)法應(yīng)用于長(zhǎng)序列之間的計(jì)算。針對(duì)以上問題,提出了一
    發(fā)表于 12-08 17:16 ?0次下載

    基于導(dǎo)數(shù)序列的時(shí)間序列同構(gòu)關(guān)系

    時(shí)間序列序列匹配作為時(shí)間序列檢索、聚類、分類、異常監(jiān)測(cè)等挖掘任務(wù)的基礎(chǔ)被廣泛研究。但傳統(tǒng)的時(shí)間序列序列匹配都是對(duì)精確相同或近似相同的模式
    發(fā)表于 12-12 15:52 ?0次下載
    基于導(dǎo)數(shù)<b class='flag-5'>序列</b>的時(shí)間<b class='flag-5'>序列</b>同構(gòu)關(guān)系

    解決不重復(fù)序列的全排列問題的兩個(gè)方法:遞歸和字典序法

    這篇文章主要介紹了解決不重復(fù)序列的全排列問題的兩個(gè)方法:遞歸和字典序法。
    的頭像 發(fā)表于 03-29 11:19 ?6441次閱讀
    解決不重復(fù)<b class='flag-5'>序列</b>的全排列問題的<b class='flag-5'>兩個(gè)</b>方法:遞歸和字典序法

    矩陣弧微分的時(shí)間序列相似度量

    將某一個(gè)統(tǒng)計(jì)指標(biāo)的各個(gè)數(shù)值按時(shí)間先后順序排列便構(gòu)成了時(shí)間序列。從金融領(lǐng)域到科學(xué)工程,從天文氣象到社會(huì)學(xué),時(shí)間序列無(wú)處不在。由于實(shí)際應(yīng)用中的時(shí)間序列往往具有高維、規(guī)模巨大、易受噪聲干擾等
    發(fā)表于 04-24 10:29 ?11次下載

    Linux信號(hào)事件發(fā)生的兩個(gè)來(lái)源

    。信號(hào)可以直接進(jìn)行用戶空間進(jìn)程和內(nèi)核進(jìn)程之間的交互,內(nèi)核進(jìn)程也可以利用它來(lái)通知用戶空間進(jìn)程發(fā)生了哪些系統(tǒng)事件。 誰(shuí)來(lái)產(chǎn)生信號(hào) 信號(hào)事件的發(fā)生有兩個(gè)來(lái)源: (1) 硬件來(lái)源,比如我們按下
    的頭像 發(fā)表于 06-18 15:09 ?1423次閱讀

    使用兩個(gè)傳感器來(lái)確定工廠環(huán)境的最佳程度

    電子發(fā)燒友網(wǎng)站提供《使用兩個(gè)傳感器來(lái)確定工廠環(huán)境的最佳程度.zip》資料免費(fèi)下載
    發(fā)表于 12-29 14:26 ?0次下載
    使用<b class='flag-5'>兩個(gè)</b>傳感器來(lái)確定工廠環(huán)境的最佳<b class='flag-5'>程度</b>

    兩個(gè)LED和兩個(gè)按鈕的使用

    電子發(fā)燒友網(wǎng)站提供《兩個(gè)LED和兩個(gè)按鈕的使用.zip》資料免費(fèi)下載
    發(fā)表于 01-30 16:04 ?1次下載
    <b class='flag-5'>兩個(gè)</b>LED和<b class='flag-5'>兩個(gè)</b>按鈕的使用

    Python比較兩個(gè)時(shí)間序列在圖形上是否相似

    比較兩個(gè)時(shí)間序列在圖形上是否相似,可以通過以下方法: 可視化比較:將兩個(gè)時(shí)間序列繪制在同一張圖上,并使用相同的比例和軸標(biāo)簽進(jìn)行比較??梢杂^察
    的頭像 發(fā)表于 10-16 11:33 ?580次閱讀

    脈沖信號(hào)和單位采樣序列有何區(qū)別?

    脈沖信號(hào)和單位采樣序列有何區(qū)別? 脈沖信號(hào)和單位采樣序列是數(shù)字信號(hào)處理中兩個(gè)重要的概念。在本文中
    的頭像 發(fā)表于 02-06 09:25 ?1353次閱讀