Main Content

envelope

설명

예제

[yupper,ylower] = envelope(x)는 입력 시퀀스 x의 상부 포락선과 하부 포락선을 해석적 신호의 크기로 반환합니다. x의 해석적 신호는 hilbert 함수에 의한 이산 푸리에 변환을 사용하여 구합니다. 이 함수는 먼저 x의 평균을 제거하고 포락선을 계산한 후 다시 추가합니다. x가 행렬이면 envelopex의 각 열에 대해 개별적으로 동작합니다.

예제

[yupper,ylower] = envelope(x,fl,'analytic')은 해당 해석적 신호의 크기를 사용하여 결정되는 x의 포락선을 반환합니다. x의 해석적 신호는 길이가 fl인 힐베르트 FIR 필터를 이용하여 계산됩니다. 인수를 2개만 지정하는 경우 이 구문을 사용합니다.

예제

[yupper,ylower] = envelope(x,wl,'rms')x의 상부 및 하부 RMS(제곱평균제곱근) 포락선을 반환합니다. 이 포락선은 길이가 wl개 샘플인 슬라이딩 윈도우를 사용하여 결정됩니다.

예제

[yupper,ylower] = envelope(x,np,'peak')x의 상부 및 하부 피크 포락선을 반환합니다. 이 포락선은 최소 np개의 샘플로 구분된 국소 최댓값에 대해 스플라인 보간을 사용하여 결정됩니다.

예제

envelope(___)(출력 인수 없음)는 신호와, 해당 상부 포락선 및 하부 포락선을 플로팅합니다. 이 구문은 위에 열거된 구문의 모든 입력 인수를 받습니다.

예제

모두 축소

가우스 변조된 2차 처프를 생성합니다. 2kHz의 샘플 레이트와 2초의 신호 지속 기간을 지정합니다.

t = 0:1/2000:2-1/2000;
q = chirp(t-2,4,1/2,6,'quadratic',100,'convex').*exp(-4*(t-1).^2);
plot(t,q)

Figure contains an axes object. The axes object contains an object of type line.

해석적 신호를 사용하여 처프의 상부 포락선과 하부 포락선을 계산합니다.

[up,lo] = envelope(q);
hold on
plot(t,up,t,lo,'linewidth',1.5)
legend('q','up','lo')
hold off

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent q, up, lo.

평균이 0이 아니므로 신호가 비대칭입니다.

출력 인수 없이 envelope를 사용하여 샘플 수에 대한 함수로 신호와 포락선을 플로팅합니다.

envelope(q)

Figure contains an axes object. The axes object with title Analytic Envelope contains 3 objects of type line. These objects represent signal, envelope.

3초 동안 1kHz로 샘플링된 2채널 신호를 생성합니다.

  • 한 채널은 기하급수적으로 감쇠하는 정현파입니다. 7Hz의 주파수와 2초의 시정수를 지정합니다.

  • 다른 채널은 DC 값이 2인 시간 변위된 가우스 변조 처프입니다. 2초 후 5Hz로 감쇠되는 30Hz의 초기 처프 주파수를 지정합니다.

신호를 플로팅합니다.

t = 0:1/1000:3;
q1 = sin(2*pi*7*t).*exp(-t/2);
q2 = chirp(t,30,2,5).*exp(-(2*t-3).^2)+2;
q = [q1;q2]';

plot(t,q)

Figure contains an axes object. The axes object contains 2 objects of type line.

신호의 상부 포락선과 하부 포락선을 계산합니다. 길이가 100인 힐베르트 필터를 사용합니다. 채널과 포락선을 플로팅합니다. 상부 포락선에는 실선을 사용하고 하부 포락선에는 파선을 사용합니다.

[up,lo] = envelope(q,100,'analytic');
hold on
plot(t,up,'-',t,lo,'--')
hold off

Figure contains an axes object. The axes object contains 6 objects of type line.

출력 인수 없이 envelope를 호출하여 샘플 수에 대한 함수로 신호와 해당 포락선에 대한 플롯을 생성합니다. 더 매끄러운 형태를 얻기 위해 필터 길이를 300으로 늘립니다. 2개의 입력 인수를 지정하는 경우 'analytic' 플래그가 디폴트 값입니다.

envelope(q,300)

Figure contains an axes object. The axes object with title Analytic Envelope contains 6 objects of type line.

기차 기적 녹음의 이동 RMS 포락선을 계산하고 플로팅합니다. 길이가 150개 샘플인 윈도우를 사용합니다.

load('train')

envelope(y,150,'rms')

Figure contains an axes object. The axes object with title RMS Envelope contains 3 objects of type line. These objects represent signal, envelope.

샘플 30개 단위로 나뉜 전체 구간에서 평활화된 음성 신호의 상부 피크 포락선과 하부 피크 포락선을 플로팅합니다.

load('mtlb')

envelope(mtlb,30,'peak')

Figure contains an axes object. The axes object with title Peak Envelope contains 3 objects of type line. These objects represent signal, envelope.

분산 매질을 통해 전파되는 광 펄스의 초기 검출과 유사한 신호를 생성하고 플로팅합니다.

t = 0.5:-1/100:-2.49;
z = airy(t*10).*exp(-t.^2);

plot(z)

Figure contains an axes object. The axes object contains an object of type line.

신호의 해석적 크기를 사용하여 포락선을 결정합니다. 포락선을 플로팅합니다.

envelope(z)

Figure contains an axes object. The axes object with title Analytic Envelope contains 3 objects of type line. These objects represent signal, envelope.

50탭 힐베르트 필터를 사용하여 신호에 대한 해석적 포락선을 계산합니다.

envelope(z,50,'analytic')

Figure contains an axes object. The axes object with title Analytic Envelope contains 3 objects of type line. These objects represent signal, envelope.

40샘플 이동 윈도우를 사용하여 신호에 대한 RMS 포락선을 계산합니다. 결과를 플로팅합니다.

envelope(z,40,'rms')

Figure contains an axes object. The axes object with title RMS Envelope contains 3 objects of type line. These objects represent signal, envelope.

피크 포락선을 결정합니다. 최소 10개 샘플로 구분된 국소 최댓값에 대해 not-a-knot 조건을 사용한 스플라인 보간을 사용합니다.

envelope(z,10,'peak')

Figure contains an axes object. The axes object with title Peak Envelope contains 3 objects of type line. These objects represent signal, envelope.

입력 인수

모두 축소

입력 시퀀스로, 벡터나 행렬로 지정됩니다. x가 벡터이면 단일채널로 처리됩니다. x가 행렬이면 envelope는 각 열에 대해 개별적으로 포락선 추정값을 계산합니다. x의 모든 요소는 유한해야 합니다.

예: cos(pi/4*(0:159))+randn(1,160)은 단일채널 행 벡터 신호입니다.

예: cos(pi./[4;2]*(0:159))'+randn(160,2)는 2채널 신호입니다.

데이터형: single | double

힐베르트 필터 길이로, 양의 정수 스칼라로 지정됩니다. 이 필터는 길이가 fl인 카이저 윈도우와 형태 파라미터 β = 8을 사용하여 이상적인 벽돌담 필터(Brick-Wall Filter)에 윈도우를 생성해 만듭니다.

데이터형: single | double

윈도우 길이로, 양의 정수 스칼라로 지정됩니다.

데이터형: single | double

피크 분리로, 양의 정수 스칼라로 지정됩니다.

데이터형: single | double

출력 인수

모두 축소

상부 신호 포락선과 하부 신호 포락선으로, 벡터나 행렬로 반환됩니다.

확장 기능

버전 내역

R2015b에 개발됨

참고 항목

| | | | |

도움말 항목