主要内容

finddelay

信号間の遅延の推定

説明

d= finddelay (xyは,入力信号xyの間の遅延dの推定値を返します。ゼロを先頭に付加することでxyの遅延を発生させることができます。

d= finddelay (xymaxlagは,maxlagを使用してxyの間の推定遅延を求めます。

すべて折りたたむ

以下は,YXに対して2サンプル分だけ遅延している場合を示します。

X = [1 2 3];Y = [0 0 1 2 3];D = finddelay(X,Y)
D = 2

以下は,YXに対して3サンプル分だけ先行している場合です。

X = [0 0 0 1 2 3 0 0]';Y = [1 2 3 0]';D = finddelay(X,Y)
D = -3

以下は,YXと揃っているがノ@ @ズを含む場合を示します。

X = [0 0 1 2 3 0];Y = [0.02 0.12 1.08 2.21 2.95 -0.09];D = finddelay(X,Y)
D = 0

YXの周期的なバ,ジョンである場合,可能な最小の遅延が返されます。

X = [0 1 2 3];Y = [1 2 3 0 0 0 0 1 2 3 0 0];D = finddelay(X,Y)
D = -1

maxlagはスカラとして指定されます(同じ最大ウィンドウサズ)。

X = [0 1 2];Y = [0 1 0 0;1 2 0 0;2 0 10 0;0 0 2 1];Maxlag = 3;D = finddelay(X,Y,maxlag)
D =1×40 -1 1 1

同じサ@ @ズのXYを指定します。finddelayは,列ごとに処理を行います。

X = [0 1 0 0;1 2 0 0;2 0 10 0;1 0 2 1;0 0 0 2];Y = [0 0 1 0;1 1 2 0;2 2 0 1;1 0 0 2;0 0 0 0]; D = finddelay(X,Y)
D =1×40 1 -2 -1

計算を繰り返しますが,今度はYの2行目にゼロからなる行を追加します。

Y = [0 0 1 0;0 0 0 0;1 1 2 0;2 2 0 1;1 0 0 2;0 0 0 0];D = finddelay(X,Y)
D =1×41 2 -1 0

Yの各チャネルがXの各チャネルの遅延した同一のコピをもようにして,2のマルチチャネル信号XおよびYを作成します。

X = [1 3 2 0 0 0 0 0 0;0 0 0 0 0 1 3 2]';Y = [0 0 0 1 3 2;1 3 2 0 0 0]';

列ごとの遅延を計算します。各チャネルの最大相関ウィンドウサesc escズを8に設定します。

Maxlag = [8 8];D = finddelay(X,Y,maxlag)
D =1×23个5

1番目のチャネルの相関ウィンドウサイズを3に2番目のチャネルの相関ウィンドウサイズを5に減らします。

Maxlag = [3 5];D = finddelay(X,Y,maxlag)
D =1×23个5

1番目のチャネルの相関ウィンドウサイズを5に増やし,2番目のチャネルの相関ウィンドウサイズを3に減らします。

Maxlag = [5 3];D = finddelay(X,Y,maxlag)
D =1×23个3

入力引数

すべて折りたたむ

参照入力。ベクトルまたは行列として指定します。

ベクトルまたは行列として指定される入力信号。

最大相関ウィンドウサ@ @ズ。整数のスカラ,またはベクトルとして指定します。maxlagのいずれかの要素が負の場合,その絶対値で置き換えられます。maxlagのいずれかの要素が整数値でない,化学式まり複素数,またはである場合,finddelayはエラ,を返します。

出力引数

すべて折りたたむ

入力信号間の遅延。整数のスカラ,またはベクトルとして返されます。yxに対して遅れている場合,dは正です。yxに対して進んでいる場合,dは負です。周期的な信号のように,いくかの遅延の可能性がある場合,絶対値が最も小さい遅延を返します。絶対値が同じ正と負の両方の遅延が可能な場合,正の遅延が返されます。

xが米X行NX列(MX> 1およびnX> 1)のサ△△ズの行列でyが米Y行NY列(MY> 1およびnY> 1およびnY> 1)のサ△△ズの行列の場合xの各列とyの対応する列間での推定遅延の行ベクトルdを返します。この使用において,xの列数は,yの列数と等しくなければなりません(nX= NY)。

ヒント

  • xyは,遅延した互いの正確なコピ,である必要はありません。finddelay (xyは,相互相関による遅延の推定値を返します。ただし,この推定遅延は,遅延したxyの間に十分な相関がある場合にのみ有益な意味をもます。

  • 推定遅延dのベクトルの計算は,次の表に示すように,xyおよびmaxlagによって異なります。

    maxlag X Y Dの計算方法
    整数値スカラ 行ベクトルまたは列ベクトル,あるいは行列 行ベクトルまたは列ベクトル,あるいは行列 - - - - - -maxlagmaxlagのラグ範囲におけるX列とY列との相互相関。
    整数値行ベクトルまたは整数値列ベクトル 長さlX≥1の行ベクトルまたは列ベクトル サereplicationズmY行NY列の行列Y> 1, nY> 1) maxlag(j):maxlag(j = 1:NY)のラグ範囲におけるXYのj列との相互相関
    整数値行ベクトルまたは整数値列ベクトル サereplicationズmX行NX列の行列X> 1, nX> 1) 長さlY≥1の行ベクトルまたは列ベクトル maxlag(j):maxlag(j = 1:NX)のラグ範囲におけるXのj列とYとの相互相関
    整数値行ベクトルまたは整数値列ベクトル サereplicationズmX行NX列の行列X> 1, nX> 1) サereplicationズmY-行nY列の行列Y> 1, nY= NX> 1) maxlag(j):maxlag(j = 1:NY)のラグ範囲におけるXのj列とYのj列との相互相関

  • 長さlXの行ベクトルxを別のチャネルXからの1のサンプルを構成するものとして扱う場合,xが行列になるように1以上の0の行を追加する必要があります。これで,xの各列は1のチャネルと見なされます。

    たとえば,X = [1 1 1 1]は,4のサンプルで構成される1。これを各チャネルが1のサンプルで構成される4xmを定義します。

    xmの各列は1のチャネルに対応します。各チャネルには,サンプル10が含まれます。

    Xm = [1 1 1 1 1;0 0 0 0];

アルゴリズム

関数finddelayは,関数xcorrを使用して,ユーザーが指定する可能性のあるすべてのラグにおける信号の各ペアの間の相互相関を決定します。次に,信号の各ペア間の正規化された相互相関が計算されます。推定遅延は,正規化された相互相関が最大の絶対値をもつラグの負の値によって与えられます。

複数のラグが相互相関の最大絶対値となる場合(周期的な信号の場合など),遅延はそのようなラグの最小(絶対値)の負の値として選択されます。

信号のペアは遅延された互いの正確なコピ,である必要はありません。ただし,推定遅延は,遅延信号の少なくとも1つのペアの間に十分な相関がある場合にのみ有益な意味をもちます。

拡張機能

C/ c++コ,ド生成
MATLAB®Coder™を使用してCおよびc++コドを生成します。