信标车的互相关作用及其实现
这次信标车比赛中需要用到互相关
互相关用来辨别波形相似度,其原理大概就是当两个波形没有偏移的时候。其输出值最大。
两个波形分别为两个麦克风接收到的声音信号
大概的算法实现就是a波形不动,另一个波形b进行-n到n的移动
并且用a和移动后的b进行对应值相乘。结果记为sum
然后获取一个sum最大时对应的n,记为maxpos。这个maxpos就可以看作两个信号偏移程度相关的量。
int max=0,maxpos=0;
int i=-50;
for(;i<50;i++){
int sum=0;
for(int t=0;t<quenelen;t++){
if(t+i<0||t+i>quenelen-1)continue;
sum+=arr1[t]*arr2[t+i];
}
if(sum>max){
max=sum;
maxpos=i;
}
}
printf("%d\r\n",maxpos);