Main Content

켑스트럼 분석

켑스트럼이란?

켑스트럼 분석은 음성 처리와 영상 처리 같은 영역에서 다양하게 응용되는 비선형 신호 처리 기법입니다.

시퀀스 x복소 켑스트럼x에 대한 푸리에 변환의 복소수 자연 로그를 구하고 그 결과로 나타나는 시퀀스의 푸리에 역변환을 구하여 계산됩니다.

xˆ=12π-ππlog[X(ejω)]ejωndω.

툴박스 함수 cceps는 이 연산을 수행하여 입력 시퀀스의 복소 켑스트럼을 추정합니다. 그런 다음 입력 시퀀스와 동일한 크기의 실수 시퀀스를 반환합니다.

에코 감지 응용 분야에서 cceps를 사용해 보겠습니다. 먼저 100Hz로 샘플링된 45Hz 사인파를 생성합니다. 신호가 시작되고 0.2초가 지난 시점에 신호 진폭의 절반을 갖는 에코를 추가합니다.

t = 0:0.01:1.27;
s1 = sin(2*pi*45*t);
s2 = s1 + 0.5*[zeros(1,20) s1(1:108)];

새 신호의 복소 켑스트럼을 계산하고 플로팅합니다.

c = cceps(s2);
plot(t,c)

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

복소 켑스트럼을 통해 0.2초에 피크가 있음을 알 수 있으며 이는 에코를 나타냅니다.

신호 x실수 켑스트럼(간단히 켑스트럼이라고도 함)은 x의 푸리에 변환 크기에 대한 자연 로그를 구하고, 그 결과로 나타나는 시퀀스의 푸리에 역변환을 구하여 계산됩니다.

cx=12π-ππlog|X(ejω)|ejωndω.

툴박스 함수 rceps는 이 연산을 수행하여 시퀀스의 실수 켑스트럼을 반환합니다. 반환된 시퀀스는 입력 벡터와 동일한 크기의 실수 값 벡터입니다.

rceps 함수는 입력값과 동일한 실수 켑스트럼을 갖는, 고유한 최소 위상 시퀀스도 반환합니다. 시퀀스에 대한 실수 켑스트럼과 최소 위상 복원을 모두 얻으려면 [y,ym] = rceps(x)를 사용하십시오. 여기서 yx에 대한 실수 켑스트럼이고 ym은 x에 대한 최소 위상 복원입니다. 다음 예제에서는 rceps의 출력값 중 하나가 x와 동일한 실수 켑스트럼을 갖는 고유한 최소 위상 시퀀스임을 보여줍니다.

y = [4 1 5];                 % Non-minimum phase sequence
[xhat,yhat] = rceps(y);
xhat2 = rceps(yhat); 
[xhat' xhat2']
ans = 3×2

    1.6225    1.6225
    0.3400    0.3400
    0.3400    0.3400

복소 역 켑스트럼

복소 켑스트럼의 역을 구하려면 icceps 함수를 사용하십시오. cceps 함수가 입력값의 펼쳐진 위상이 영주파수에서 연속하도록 데이터에 종속된 위상 수정을 수행하기 때문에 역을 구하는 과정은 복잡합니다. 위상 수정은 정수 지연과 동일합니다. 지연 항은 두 번째 출력값을 요청하는 경우 cceps에서 반환됩니다.

x = 1:10;
[xhat,delay] = cceps(x)
xhat = 1×10

    2.2428   -0.0420   -0.0210    0.0045    0.0366    0.0788    0.1386    0.2327    0.4114    0.9249

delay = 1

복소 켑스트럼의 역을 구하려면 icceps와 함께 원래 지연 파라미터를 사용하십시오.

icc = icceps(xhat,2)
icc = 1×10

    2.0000    3.0000    4.0000    5.0000    6.0000    7.0000    8.0000    9.0000   10.0000    1.0000

위 예제에서 알 수 있듯이, 복소 켑스트럼의 수정으로 인해 원래 지연 항이 더 이상 유효하지 않을 수 있습니다. 따라서 복소 켑스트럼의 역을 정확히 구할 수 없습니다.

참고 항목

| |