您收到一些数据,并想知道它是否与您测量的较长的流匹配。交叉相关使您能够做出这样的决定,即使数据被噪声破坏。
在工作空间中载入一个在桌面上旋转的环的记录。裁剪一个一秒钟的片段并听它。
负载(“Ring.mat”) Time = 0:1/Fs:(length(y)-1)/Fs;m = min (y);M = max (y);Full_sig =双(y);赈灾发言人timeA = 7;timeB = 8;剪断=赈灾发言人timeA * Fs: timeB * Fs;片段= Full_sig(剪);听到,输入sounddsc(片段,Fs)
画出信号和片段。突出显示用于引用的片段端点。
plot(Time,Full_sig,[timeA timeB;timeA timeB],[m m; m m],“r——”)包含(“时间(s)”) ylabel (“清洁”)轴紧
情节(剪/ Fs,片段)包含(“时间(s)”) ylabel (“清洁”)标题(“片段”)轴紧
计算并绘制完整信号和片段的互相关。
[xCorr,滞后]= xCorr (Full_sig片段);情节(滞后/ Fs, xCorr)网格包含(“滞后(s)”) ylabel (“清洁”)轴紧
互相关最大的滞后是信号起始点之间的时间延迟。重新绘制信号并覆盖片段。
[~,我]= max (abs (xCorr));maxt =滞后(我);审判=南(大小(Full_sig));审判(maxt + 1: maxt +长度(片段))=片段;情节(时间、Full_sig时间,试验)包含(“时间(s)”) ylabel (“清洁”)轴紧
重复上述步骤,但在信号和片段中分别添加噪声。这声音从噪音中听不出来。
NoiseAmp = 0.2 *马克斯(abs(片段));片段=片段+ NoiseAmp * randn(大小(片段));Full_sig = Full_sig + NoiseAmp * randn(大小(Full_sig));听到,输入sounddsc(片段,Fs)plot(Time,Full_sig,[timeA timeB;timeA timeB],[m m; m m],“r——”)包含(“时间(s)”) ylabel (“吵”)轴紧
尽管噪音很高,程序还是找到了缺失的片段。
[xCorr,滞后]= xCorr (Full_sig片段);情节(滞后/ Fs, xCorr)网格包含(“滞后(s)”) ylabel (“吵”)轴紧
[~,我]= max (abs (xCorr));maxt =滞后(我);审判=南(大小(Full_sig));审判(maxt + 1: maxt +长度(片段))=片段;图绘制(时间、Full_sig时间、试验)包含(“时间(s)”) ylabel (“吵”)轴紧