主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

測定データ内の信号の検出

データを受信し,それが測定済みのより長いストリームに一致するかどうかを知る必要があるとします。データがノイズで破損している場合でも,相互相関ではこの判定を行うことができます。

卓上で回転するリングの録音データをワークスペースに読み込みます。1秒分のフラグメントを切り取り,聴いてみましょう。

负载(“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(剪);%听到,键入soundsc(Fragment,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));%听到,键入soundsc(Fragment,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 (“吵”)轴

参考

関連するトピック