이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
alignsignals
더 빠른 신호를 지연시켜 두 신호 정렬
설명
[
는 두 입력 신호 xa
,ya
,D
] = alignsignals(x
,y
)x
와 y
간의 지연 D
를 추정하고, 정렬된 신호 xa
및 ya
와 함께 D
를 반환합니다. 이 함수는 상호상관을 사용하여 지연을 추정합니다.
y
가x
보다 지연된 경우D
는 양수가 되고x
는D
개 샘플만큼 지연됩니다.y
가x
보다 선행한 경우D
는 음수가 되고y
는 –D
개 샘플만큼 지연됩니다.
입력 신호는 어느 한 쪽이 다른 쪽의 지연된 복제 신호일 필요는 없습니다. 그러나 두 신호 간에 충분한 상관관계가 있는 경우에만 신호를 정확히 정렬할 수 있습니다. 공분산과 상관의 추정에 대한 자세한 내용은 [1] 항목을 참조하십시오.
예제
두 신호 X
와 Y
를 생성합니다. X
가 앞에 3개의 0이 있고 뒤에 0이 하나 더 있다는 점을 제외하면 X
와 Y
는 완전히 동일합니다. 두 신호를 정렬합니다.
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
두 신호 X
와 Y
를 생성합니다. Y
가 2개 샘플만큼 지연된다는 점을 제외하면 Y
와 X
는 완전히 동일합니다. 두 신호를 정렬합니다.
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
이진 파형을 나타내는 두 개의 신호를 생성합니다. 이 신호는 20초 동안 50Hz로 샘플링됩니다. 첫 번째 신호의 경우, 측정을 시작하고 13초 후에 천이가 발생합니다. 두 번째 신호의 경우, 측정을 시작하고 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
두 신호 X
와 Y
를 생성합니다. Y
가 앞에 2개의 0이 있다는 점을 제외하면 X
와 Y
는 완전히 동일합니다. 두 신호를 정렬하고 자르기 옵션을 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
자르기 옵션이 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인 숫자형 벡터로 지정됩니다.
예: [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)
는 각 신호에서 네 번째 피크 위치를 기준으로 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
가 양수이면 함수는D
개의 0을x
앞에 추가하고x
의 마지막D
개 샘플을 자릅니다.D
가 음수이면 함수는 –D
개의 0을y
앞에 추가하고y
의 마지막D
개 샘플을 자릅니다.D
≥ Lx이면xa
는 Lx개의 0으로 구성되고x
의 모든 샘플은 손실됩니다. –D
≥ Ly이면ya
는 Ly개의 0으로 구성되고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.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 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)