alignsignals
最初の信号の遅延による 2 つの信号の整列
説明
[ は、2 つの入力信号 xa,ya,D] = alignsignals(x,y)x と y の間の遅延 D を推定し、整列された信号 xa および ya とともに D を返します。この関数は、相互相関を使用して遅延を推定します。
yがxに対して遅延した場合、Dは正になり、xはD個のサンプル分だけ遅延します。yがxに対して先行した場合はDは負になり、yは –D個のサンプル分だけ遅延します。
入力信号は遅延された互いの正確なコピーである必要はありません。ただし、これらの信号を正確に揃えることができるのは、信号間に相関性が十分にある場合のみです。共分散および相関の推定の詳細については、[1]を参照してください。
例
2 つの信号 X と Y を作成します。X は Y と同じ信号ですが、X には先行する 3 つのゼロと後にさらに 1 つのゼロが追加されています。2 つの信号を揃えます。
X = [0 0 0 1 2 3 0 0]; Y = [1 2 3 0]; [Xa,Ya] = alignsignals(X,Y)
Xa = 1×8
0 0 0 1 2 3 0 0
Ya = 1×7
0 0 0 1 2 3 0
2 つの信号 X と Y を作成します。Y は X と同じ信号ですが、Y は 2 個のサンプル分遅れます。2 つの信号を揃えます。
X = [1 2 3]; Y = [0 0 1 2 3]; [Xa,Ya,D] = alignsignals(X,Y)
Xa = 1×5
0 0 1 2 3
Ya = 1×5
0 0 1 2 3
D = 2
最大ウィンドウ サイズ 1 を使用して信号を揃えます。
maxlag = 1;
[Xa,Ya,D] = alignsignals(X,Y,Method="xcorr",MaxLag=maxlag)Xa = 1×4
0 1 2 3
Ya = 1×5
0 0 1 2 3
D = 1
2 値波形を表す 2 つの信号を生成します。信号は、50 Hz で 20 秒間サンプリングされます。最初の信号では、測定開始から 13 秒で遷移が発生します。2 番目の信号では、測定開始から 5 秒で遷移が発生します。これらの信号は異なる振幅をもち、分散が異なるホワイト ガウス ノイズに組み込まれます。信号をプロットします。
t = linspace(0,20,1001)'; e1 = 1.4*tanh(t-13)+randn(size(t))/3; e2 = tanh(3*(t-5))+randn(size(t))/5; plot(t,e1,t,e2) xlabel("Seconds") ylabel("Amplitude")

遷移時間が一致するように信号を揃えます。相関ベースの方法では、この種の信号を適切に揃えることができません。
[y1,y2] = alignsignals(e1,e2); plot(y1) xlabel("Samples") ylabel("Amplitude") hold on plot(y2) hold off

risetime メソッドを使用して信号を揃えます。
[y1,y2] = alignsignals(e1,e2,Method="risetime"); plot(y1) xlabel("Samples") ylabel("Amplitude") hold on plot(y2) hold off

2 つの信号 X と Y を作成します。Y は X と同じ信号ですが、Y には先頭にゼロが 2 つ付きます。2 つの信号を揃えて、Truncate オプションを true に設定します。このオプションは X の長さを保持します。
X = [1 2 3]; Y = [0 0 1 2 3]; [Xa,Ya,D] = alignsignals(X,Y,Truncate=true)
Xa = 1×3
0 0 1
Ya = 1×5
0 0 1 2 3
D = 2
Truncate オプションにより X の元のデータがすべて切り捨てられた場合、関数が警告を表示します。
Y = [0 0 0 0 1 2 3]; [Xa,Ya,D] = alignsignals(X,Y,Truncate=true)
Warning: All original data in the first input X has been truncated because the length of X is smaller than the estimated delay D. To avoid truncating this data do not use the "truncate" option.
Xa = 1×3
0 0 0
Ya = 1×7
0 0 0 0 1 2 3
D = 4
入力引数
長さ Lx の数値ベクトルとして指定される最初の入力信号。
例: [1 2 3]
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
複素数のサポート: あり
長さ Ly の数値ベクトルとして指定される 2 番目の入力信号。
例: [0 0 1 2 3]
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
複素数のサポート: あり
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: alignsignals(X,Y,Method="npeak",PeakNum=4) は、各信号の 4 番目のピークの位置に基づいて、X と Y を揃えます。
信号間の遅延を推定するメソッド。"xcorr"、"maxpeak"、"npeak"、または "risetime" として指定します。指定した Method に基づいて、追加の名前と値のペアの引数を指定できます。
"xcorr"— 相互相関を使用して遅延を推定します。Methodを"xcorr"として指定した場合は、MaxLagも指定できます。"maxpeak"— 各信号の最も高いピークの位置を使用して遅延を推定します。Methodを"maxpeak"として指定した場合、オプションでMinPeakProminenceとMinPeakHeightを指定できます。"npeak"— 各信号の n 番目のピークの位置を使用して遅延を推定します。Methodを"npeak"として指定した場合、オプションでPeakNum、MinPeakProminence、およびMinPeakHeightを指定できます。"risetime"— 各信号の立ち上がりエッジの位置を使用して遅延を推定します。この関数は、指定されたStateLevelsの値を使用して立ち上がりエッジを検出します。
例: Method="npeak",PeakNum=3
信号の整列に使用するピークの番号。正の整数として指定します。この引数は、Method を "npeak" として指定した場合にのみ適用されます。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
入力信号を切り捨てるオプション。数値または論理値 1 (true) または 0 (false) として指定します。Truncate を true として指定した場合、xa および ya の長さは、それぞれ x および y の長さと等しくなります。
推定遅延
Dが正の場合、この関数はxの先頭にD個のゼロを追加し、xの最後のD個のサンプルを切り捨てます。Dが負の場合、この関数はyの先頭に -D個のゼロを追加し、yの最後のD個のサンプルを切り捨てます。D≥ Lx の場合、xaは Lx 個のゼロで構成され、xのサンプルはすべて失われます。-Dが Ly 以上の場合、yaは Ly 個のゼロで構成され、yのサンプルはすべて失われます。
出力引数
参照
[1] Orfanidis, Sophocles J. Optimum Signal Processing. An Introduction. 2nd Ed. Englewood Cliffs, NJ: Prentice-Hall, 1996.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2007a で導入以下の構文は将来のリリースで削除される予定です。
| 構文 | 結果 | 代わりに使用するもの |
|---|---|---|
alignsignals(x,y,maxlag) | 実行 | alignsignals(x,y,Method="xcorr",MaxLag=maxlag) |
alignsignals(x,y,maxlag,'truncate') | 実行 | alignsignals(x,y,Method="xcorr",MaxLag=maxlag,Truncate=true) |
以前は、alignsignals には Communications Toolbox™ が必要でした。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)