主要内容

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

信号の類似度の測定

この例では,信号の類似度の測定方法を示します。これは次のような問題の解決に役立ます。長さやサンプリングレ,トが異なる信号を比較するにはどうするのか。測定デタにあるのが信号かノズにすぎないかを確かめるにはどうするのか。2の信号に関連はあるのか。2 .の信号間の遅れを測定するにはどうするのか(また,信号はどう配置するのか)。2の信号の周波数成分はどうやって比較するのか。類似度は1つの信号の異なる部分で検出されることで,その信号が周期的かどうかの判断も可能にします。

サンプリングレ,トが異なる信号の比較

オーディオ信号データベースやパターンマッチングアプリケーションで,再生中の曲名を特定する場合を考えてみます。メモリ占有量を少なくするため,一般的にデ,タは低サンプリングレ,トで保存されます。

负载relatedsig.mat图ax(1) = subplot(3,1,1);情节((0:元素个数(T1) 1) / Fs1、T1,“k”) ylabel (“模板1”网格)Ax (2) = subplot(3,1,2);情节((0:元素个数(T2) 1) / Fs2, T2,“r”) ylabel (《模板2》网格)Ax (3) = subplot(3,1,3);情节((0:元素个数(S) 1) / Fs, S) ylabel (“信号”网格)包含(的时间(秒)) linkaxes (ax (1:3),“x”)轴([0 1.61 -4 4])

图中包含3个轴对象。Axes对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。Axes对象3包含一个line类型的对象。

1番目および2番目のサブプロットは,デタベスのテンプレト信号を示します。3番目のサブプロットはデタベスでの探索対象となる信号を示しています。時系列を見るだけでは,この信号は2のテンプレトのいずれとも一致しないように見えます。さらに詳しく調べると,実際には信号の長さやサンプリングレ,トが異なっていることがわかります。

[Fs1 Fs2 Fs]
ans =1×34096 4096 8192

信号の長さが異なると2つの信号の違いの計算が妨げられますが,これは信号の共通部を抽出することによって簡単に対処できます。さらには必ずしも長さを同じにする必要はありません。長さが異なる信号間の相互相関は可能ですが,必ず同じサンプリングレ,トをもっていることが必要です。これを行う最も確実な方法は信号を低いサンプリングレ,トでリサンプリングすることです。関数重新取样では,リサンプリングプロセス中に,信号にアンチエイリアシング(ローパス)冷杉フィルターが適用されます。

[P1,Q1] =大鼠(Fs/Fs1);有理分数近似[P2,Q2] =鼠(Fs/Fs2);有理分数近似T1 = resample(T1,P1,Q1);按合理因子改变抽样率T2 = resample(T2,P2,Q2);按合理因子改变抽样率

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

関数xcorrで信号年代とテンプレートT1, T2を相互相関させ,一致しているかどうかを判断することができます。

[C1,lag1] = xcorr(T1,S);[C2,lag2] = xcorr(T2,S);图ax(1) = subplot(2,1,1);情节(lag1 / Fs, C1,“k”) ylabel (“振幅”网格)标题(“模板1和信号之间的相互关联”) ax(2) = subplot(2,1,2);情节(lag2 / Fs C2,“r”) ylabel (“振幅”网格)标题(“模板2和信号的相互关联”)包含(的时间(秒))轴(ax(1:2),[-1.5 1.5 -700 700])

图中包含2个轴对象。在Template 1和Signal之间的相互关联包含一个类型为line的对象。在Template 2和Signal之间的相互关联包含一个类型为line的对象。

1番目のサブプロットは信号とテンプレート1の相関が低いことを示しますが,2番目のサブプロットにおける高いピークは2番目のテンプレートの中に信号があることを示しています。

[~,I] = max(abs(C2));SampleDiff = lag2(I)
SampleDiff = 499
timeDiff = SampleDiff/Fs
timeDiff = 0.0609

相互相関のピークは,テンプレートT2の61 ms後からその信号が存在することを示唆しています。つまり,SampleDiffによって示されるように,信号T2は信号を499サンプル分先行することになります。この情報は,信号の整列に使用できます。

信号間の遅延の測定および信号の配置

橋の両側で車によって生じる振動を記録している異なるセンサーからデータを収集している状況を考えてみましょう。信号を解析する場合,それらを整列させる必要があります。3のセンサは同じサンプリングレトで,。

图ax(1) = subplot(3,1,1);情节(s1) ylabel (“s1 '网格)Ax (2) = subplot(3,1,2);情节(s2,“k”) ylabel (“s2”网格)Ax (3) = subplot(3,1,3);情节(s3,“r”) ylabel (“s3”网格)包含(“样本”) linkaxes (ax,“xy”

图中包含3个轴对象。Axes对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。Axes对象3包含一个line类型的对象。

関数finddelayを使用して,2の信号間の遅延を検出することもできます。

T21 = finddelay(s1,s2)
T21 = -350
T31 = finddelay(s1,s3)
T31 = 150

350年t21はs2がs1よりもサンプル遅れており,t31はs3がs1よりも150サンプル進んでいることを示しています。これで,この情報を使用し,信号の時間をシフトして3の信号を整列させることができます。最初の信号を遅延させて2の信号を整列させる関数alignsignalsを直接使用して,信号を整列させることもできます。

S1 =对齐信号(S1,s3);S2 =对齐信号(S2,s3);图ax(1) = subplot(3,1,1);情节(s1)网格标题(“s1 ')轴Ax (2) = subplot(3,1,2);情节(s2)网格标题(“s2”)轴Ax (3) = subplot(3,1,3);情节(s3)网格标题(“s3”)轴linkaxes (ax,“xy”

图中包含3个轴对象。标题为s1的坐标轴对象1包含一个line类型的对象。标题为s2的Axes对象2包含一个line类型的对象。标题为s3的Axes对象3包含一个line类型的对象。

信号の周波数成分の比較

パワ,スペクトルは各周波数に含まれるパワ,を表示します。スペクトルコヒ,レンスは信号間の周波数領域の相関を示します。0に向かうコヒーレンスの値は対応する周波数成分が相関していないことを示し,一方,1に向かうコヒーレンスの値は対応する周波数成分が相関していることを示します。2 .の信号とそれぞれのパワ,スペクトルを見てみます。

Fs = FsSig;抽样率[P1,f1] = periodogram(sig1,[],[],Fs,“权力”);[P2,f2] = periodogram(sig2,[],[],Fs,“权力”);figure t =(0:数字(sig1)-1)/Fs;次要情节(2 2 1)情节(t sig1“k”) ylabel (“s1 '网格)标题(“时间序列”) subplot(2,2,3) plot(t,sig2)“s2”网格)包含(的时间(秒)) subplot(2,2,2) subplot(f1,P1,“k”) ylabel (“P1”网格)标题(的功率谱) subplot(2,2,4) plot(f2,P2)“P2”网格)包含(的频率(赫兹)

图中包含4个轴对象。标题为Time Series的坐标轴对象1包含一个类型为line的对象。坐标轴对象2包含一个line类型的对象。标题为Power Spectrum的Axes对象3包含一个类型为line的对象。Axes对象4包含一个line类型的对象。

関数mscohereは2の信号間のスペクトルコヒレンスを計算します。sig1とsig2の35赫兹および165 Hz付近に2つの相関成分があることがわかります。スペクトルコヒーレンスが高い周波数において,相関成分の間の相対的な位相はクロススペクトルの位相で推定できます。

[Cxy,f] = mscohere(sig1,sig2,[],[],[],Fs);Pxy = cpsd(sig1,sig2,[],[],[],Fs);phase = -angle(Pxy)/pi*180;[pks,locs] = findpeaks(Cxy,“MinPeakHeight”, 0.75);图subplot(2,1,1) plot(f,Cxy)标题(的一致性估计网格)Hgca = gca;hgca。XTick = f(locs);hgca。YTick = 0.75;轴([0 200 0 1])子图(2,1,2)图(f,相位)标题(“交叉光谱相位(度)”网格)Hgca = gca;hgca。XTick = f(locs);hgca。YTick = round(phase(locs));包含(的频率(赫兹))轴([0 200 -180 180])

图中包含2个轴对象。标题为Coherence Estimate的Axes对象1包含一个类型为line的对象。轴对象2的标题为Cross-spectrum Phase (deg)包含一个类型为line的对象。

35赫兹成分の間の位相遅れは-90°に近く,165 Hz成分の間の位相遅れは-60°に近くなっています。

信号内の周期性の検出

冬期のオフィスビルにおける温度測定の結果を見てみましょう。測定は約16.5週間,30分間隔で行われました。

负载officetemp.matFs = 1/(60*30);采样率为每30分钟1个样本days = (0:length(temp)-1)/(Fs*60*60*24);图表(天数,临时)的温度数据)包含(的时间(天)) ylabel (“温度(华氏)”网格)

图中包含一个轴对象。标题为Temperature Data的axis对象包含一个line类型的对象。

華氏70度台の低温で,信号の小さい変動を解析するため,平均値を取り除く必要があります。関数xcovは,相互相関を計算する前に信号の平均値を取り除きます。この関数は相互共分散を返します。相互共分散の確度の高い推定値を得るために,最大遅れを信号の50%に制限します。

maxlag = numel(temp)*0.5;[xc,lag] = xcov(temp,maxlag);[~,df] = findpeaks(xc,“MinPeakDistance”5 * 2 * 24);[~,mf] = findpeaks(xc);图绘制(xc滞后/ (2 * 24),“k”...滞后(df) /(2 * 24),我(df),“伏特”“MarkerFaceColor”“r”网格)Xlim ([-15 15])的时间(天))标题(“Auto-covariance”

图中包含一个轴对象。标题为Auto-covariance的axes对象包含2个类型为line的对象。

自己共分散における主要な変動と小さな変動に注目してください。主要な変動と小さな変動が等間隔に現れています。等間隔であるかどうかを確認するため,後続の各ピ,クの位置の差を計算してプロットします。

Cycle1 = diff(df)/(2*24);Cycle2 = diff(mf)/(2*24);Subplot (2,1,1) plot(cycle1)“天”网格)标题(“主峰距离”) subplot(2,1,2) plot(cycle2,“r”) ylabel (“天”网格)标题(“小峰值距离”

图中包含2个轴对象。标题为Dominant peak distance的坐标轴对象1包含一个line类型的对象。标题为Minor peak distance的坐标轴对象2包含一个类型为line的对象。

意思是(cycle1)
Ans = 7
意思是(cycle2)
Ans = 1

小さなピクは週7回,主要なピクは週1回のサクルで現れています。7日単位の日程表により温度制御されているビルのデータであるということを考えれば,これは理にかなっています。最初の7日周期は,ビルの温度に週単位の周期性があり,温度は週末に低くなり,平日は元に戻るということを示しています。1日周期の動作は,日単位の周期性を,夜間は温度が低く日中に高くなる動作もまたあることを示しています。

参考

||||||