2.1提出算法和設(shè)置公式↑
在教程的這一部分,應(yīng)用程序?qū)⒒诨ハ嚓P(guān)算法來(lái)跟蹤從電路板的兩個(gè)麥克風(fēng)獲得的兩個(gè)信號(hào)的移動(dòng)。
該算法基本上可以根據(jù)其公式實(shí)現(xiàn):∑((x(i)-mx)*(y(i)-my)/√(∑(x(i)-mx)2*√(∑(y(i )-我的)2*
相關(guān)性描述了兩個(gè)或多個(gè)信號(hào)之間存在的關(guān)系。信號(hào)之間的相關(guān)性表示給定信號(hào)與另一個(gè)信號(hào)相似的程度。
在我們的例子中,變量:
y(i)代表LeftFilter。
r是相關(guān)因子,它是要計(jì)算的角度
2.2添加代碼部分↑
要計(jì)算相關(guān)公式,請(qǐng)保留教程前面的部分,并在主文件中添加以下聲明:
#include 《數(shù)學(xué).h》 詮釋 k , j ; 雙 系數(shù)= 0 ; 雙 右= 0 ; 雙 mleft = 0 ; 雙 右= 0 ; 雙 sleft = 0 ; 雙 sxy , denom ; 整數(shù) n = 2048 ; int 最大延遲= 1024 ;
現(xiàn)在,是時(shí)候設(shè)置計(jì)算r因子的代碼了,因此要編寫代碼來(lái)應(yīng)用前面提到的公式,請(qǐng)?jiān)赪hile循環(huán) 中添加以下代碼:
for ( k = 0 ; k 《 n ; k ++ ) { mright += RightRecBuff [ k ]; mleft += LeftRecBuff [ k ]; } mright /= n ; mleft /= n ; /* 計(jì)算分母 */
for ( k = 0 ; k 《 n ; k ++ ) { sright += ( RightRecBuff[ k ] - mright ) * ( RightRecBuff [ k ] - mright ); sleft += ( LeftRecBuff [ k ] - mleft ) * ( LeftRecBuff [ k ] - mleft ); } denom = sqrt ( sright * sleft ); /* 計(jì)算相關(guān)序列 */
for ( delay =- maxdelay ; delay 《最大延遲;延遲++ ) { sxy = 0 ;
for ( k = 0 ; k 《 n ; k ++ ) { j = k + delay ;
while ( j 《 0 ) { j += n ; j %= n ; sxy += ( RightRecBuff [ k ] - mright ) * (LeftRecBuff [ j ] - mleft ); } 系數(shù) = sxy / denom ; /* r 是“延遲”時(shí)的相關(guān)系數(shù) */ } }
-
麥克風(fēng)
+關(guān)注
關(guān)注
15文章
638瀏覽量
54831 -
STM32
+關(guān)注
關(guān)注
2270文章
10901瀏覽量
356223
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論