z 신호 처리 공부 [2] LTI & Convolution
본문 바로가기

신호처리

신호 처리 공부 [2] LTI & Convolution

728x90

비전공자인 저는 전반적으로 혁펜하임님의 영상을 기반으로 공부합니다.

https://www.youtube.com/channel/UCcbPAIfCa4q0x7x8yFXmBag

 

 

LTI (Linear Time Invariant)

LTI 시스템이란 말 그대로 input에 대해 Linear 하면서 Time Invariant한 output을 내놓는 시스템을 말합니다.

그렇다면 여기에서 LInear는 뭐고 Time Invariant는 뭘까요?

 

Linear System

Linear System이란 input에 대해 output이 scaling & additivity 해야합니다.

그럼 scaling은 뭐고 additivity는 뭘까요?

scaling이란, input이 \(x_1(t)\)이고 이에 대한 output이 \(y_1(t)\)라고 합시다. 그럼 이 input에 대해 어떤 스칼라를 곱한다면 이 input에 대한 output 또한 input에 곱한 스칼라만큼 곱해져서 나와야합니다.

이와 같은 성질을 scaling이라합니다.

 

additivity는 두개의 input이 더해져서 들어오면 output은 더했던 두 input의 output들 간 합해진 형태로 나오는 성질을 말합니다.

 

여기에서 additivity와 scaling을 모두 만족하면 Superposition이라고 합니다.

 

 

위의 linear system을 간단히 그림으로 나타내보았습니다.

 

Time Invariant

두번째로 time invariant란 "time shift된 input이 들어가면 동일하게 time shift된 output이 나오는 것을 의미합니다.

이처럼요!

 

Example

자 그럼 하나의 예시를 생각해봅시다.

 

Input \(x(t)\)를 어떤 System에 넣었을 때 output이 \(y(t) = x(-2t+2)\) 가 된다면 해당 system은 LTI System이라고 할 수 있는가?

우선 system이 대강 어떻게 흘러가는지 하나하나 뜯어 보아야 합니다.

$$ x(t) \rightarrow x(-2t+2) $$

가 되려면 어떤 과정을 거쳐야 할까요?

 

우선 input을 y축 대칭 시키고 2만큼 scaling 시켜야합니다. 이 후 x축에 대해 1만큼 이동시키면 됩니다.

$$ x(t) \rightarrow x(-t) \rightarrow x(-2t) \rightarrow x(-2(t-1)) $$

system의 흐름은 이런 식으로 나아갑니다.

이 input에 대해 한번 time shift 시켜보고 system을 거쳤을 때 결과가 어떻게 나오는지 봐봅시다.

 

$$ x(t-t_0) \rightarrow x(-t - t_0) \rightarrow x(-2t-t_0) \rightarrow x(-2(t-1)-t_0) = x(-2t+2-t_0) $$

하지만 time invariant 할 때 나와야할 결과와 다르기 때문에 해당 system은 time invariant라고 할 수 없습니다.

$$ y(t-t_0) = x(-2t+2t_0+2) $$ 

 

LTI System가 왜 좋은가?

System의 출력을 계산할 수 있음, Predictable!!!!

이는 임의의 입력에 대해서도 예측 가능함을 의미합니다.

 

 

다른 것을 보기 전, LTI 기본적인 형태를 어떻게 표기하는지 한번 보고 넘어가겠습니다.

$$ y(t) = f(x(t),h(t)) $$

여기에서  \(h(t)\)는 Impulse Response라고 합니다. Impulse Response란 Impulse Function(아주 기본적인 함수)이 어떤 system에 들어왔을 때 나오는 output이라고 생각하시면 됩니다.

 

저 식이 의미하는 바를 간단히 설명하자면, 아주 기본적인 함수를 system에 넣은 다음 나온 반응을 보면 system을 대략 알 수 있습니다.

이렇게 나온 impulse response를 기반으로 주어진 우리가 원하는 input x(t)가 들어갔을때 output y(t)가 어떻게 나올 지 알 수 있습니다.

앞에서 말했듯이 Predictable하기에 가능합니다.

Impulse Function

Discrete Time Domain에서 Impulse Function

Discrete Time Domain에서의 impulse function은 저런 식으로 생겼습니다.

옆의 조건을 만족하면 impulse function이라고 부를 수 있습니다.

 

Continuous Time Domain에서 Impulse Function

Continuous Time Domain에서의 impulse function은 이와 같습니다.

위의 discrete의 경우와 매우 유사합니다.

 

그리고 앞에서 말씀 드렸듯이 그림의 옆에 써진 조건만 만족하면 impulse function이라고 할 수 있습니다.

그렇기 때문에 아래와 같은 그래프들도 impulse function이라고 할 수 있습니다.

살짝 다른 형태의 impulse function

 

개인적으로는 뭔가 indexing을 위한 함수라고 느껴졌는데요, 실제로 이 indexing과 같은 성질을 기반으로 저희가 원하는 input \(x(n)\)을 impulse function으로 구할 수 있습니다.

 

Impulse Response

앞에서도 언급했듯이 Impulse Response란 Impulse function이 어떤 System에 들어갔을 때 나오는 output입니다.

 

그냥 system에 위와 같은 impulse function을 한번 넣어봤을 때 나오는 값을 보면 됩니다.

 

근데 이걸 도대체 어디에 사용하는 걸까요?

이는 LTI System의 특징인 Linear and Time Invariant 에 해답이 있습니다.

 

저희는 아주 기본적인 함수가 들어갔을 때 나오는 output에 대해 알고 있습니다. (impulse function and response)

 

만약 저희가 scaling, additivity, time shift를 잘 사용해서 원하는 input \(x(t)\)를 만들어낼 수 있다면 해당 \(x(t)\)가 들어갔을 때 output 또한 구할 수 있습니다. Linear(Superposition) and Time Invariant이니까!!

 

Discrete Time Convolution

다시 돌아가서 해당 식을 봐봅시다.

$$ y = f(x(t), h(t)) $$

h(t)는 Impulse function에 대한 반응인 impulse response, x(t)는 input입니다.

위 식이 말하는 바는 사전에 주어진 system에 Impulse function을 한번 넣은 후 Impulse response를 구한 다음 이 정보를 잘 조합해서 x(t)로부터 y(t)를 만들어보자는 것 입니다.

\(f\)가 의미하는 바는 convolution, 누적된 반응을 계산하는 것 입니다.

 

그럼 Convolution은 뭘까요?

그걸 보기 전에 Signal이 진짜 Impulse들의 합으로 나타내질 수 있는건지 봐봅시다.

어떤 signal \(x[n]\)이 위 그림의 왼쪽같은 형태를 띈다고 합시다. 그렇다면 impulse function들에 time shift와 saling을 통해 자연스럽게 표현이 가능합니다.

즉 함수를 함수의 합으로 표현했다고 생각하면 됩니다. (Taylor Series 처럼~)

다시 정리해서 말하면 \(x[n]\)의 discrete function을 \(\delta[n]\)으로 표현한 것 입니다.

 

그렇다면 이를 system에 넣으면 어떻게 될까요?

Impulse response를 \(h[n]\)이라고 했을 때 LTI System의 성질을 기반으로 ,

$$ 3h[n] + 2h[n-1] + h[n-2] $$

가 됨을 predict 할 수 있습니다. Predictable!!

 

그렇기에 impulse response와 input x만 안다면 x를 input으로 system에 넣었을 때 output인 y를 쉽게 구할 수 있습니다.

 

위의 impulse function이나 impulse response의 조합으로 임의의 signal을 표현하는 것을 Convolution이라고 합니다.

 

이 그림처럼 임의의 signal \(x[n]\)이 있다고 했을 때 discrete impulse function을 time shift, scaling, 그리고 더해가며 표현할 수 있습니다. 근데 이걸 LTI System에 넣는다면, 우항에 존재하는 impulse function이 impulse response로 바뀌겠죠?

그래서 LTI System의 output은

$$ \sum_k x[k]h[n-k] $$가 됩니다.

이런 걸 Convolution이라고 합니다. 이 Convolution operation은 LTI의 정수 그 자체 입니다. 이걸 느끼셨으면 좋겠네요 ㅎㅎ..

 

Continuous Time Convolution

Discrete처럼 Continuous에서도 impulse function의 합으로 나타내면 됩니다. 하지만 단, impulse function을 앞에서 봤던 \(\delta\)의 또 다른 표현으로 사용해봅시다.

이 impulse function에서 극한을 취하지 않았다고 생각하고 최대한 이 function의 합으로 input을 만들어내봅시다.

이런식으로요.

이를 식으로 표현하면 위의 사진과 같은데, 여기에서 function에 극한을 취해서 impulse function으로 만든다면 해당 input을 완벽하게 표현할 수 있습니다.

자 여기에서 극한을 취하면 위 그림에서와 같으 리만합에 의해 적분으로 표현이 가능합니다. 하지만 주목해야 할 점은 변하고 있는 부분이 어떤 부분이냐 인데, 잘 보면 \(k\Delta\)가 변하는 요인 입니다. 여기에서 \(\Delta\)가 0 방향으로 극한 적용이 된다고 하지만, k자체가 Unbound이기 때문에 어떤 해당 \(k\Delta\)는 어떤 수든 표현이 가능합니다. 그래서 Continuous Variable 과 동일하다고 합니다.

이 Countinuous Variable을 보통 \(\lim_{\Delta\rightarrow 0 }k\Delta = \tau\)라고 표현합니다.

그래서 위 그림의 아래의 마지막 식과 같은 형태로, 흔히 아는 형식의 Convolution 식이 나옵니다.

 

결론.

Only in LTI System, \(y(t) = f(x(t), h(t)) = x(t) \ast h(t)\)

즉, Impulse function에 대한 Impulse response를 안다면, 주어진 Input에 대한 결과를 얻을 수 있다.

-> Convolution과 동일.

728x90