본 포스트는 Ableton사에서 소프트웨어 개발자로 재직 중인 Jack Schaedler님의 DSP 입문 자료 <strong><em>Seeing Circles, Sines And Signals</em></strong> 를 통해 공부하면서 다시 풀어서 정리한 내용입니다.


이산신호 해석하기

Don’t connect the dots!

이산신호를 다룰 경우, 섣불리 각 점을 이어 interpolation(보간법: 중간 값을 채워 넣음)을 해서는 안 된다. 지난 번 비행 고도의 예시를 들어 보자.

 

누군가 65분 당시의 고도를 물어본다면, 어떻게 답할 수 있을까? 우리는 당장 60분, 70분의 두 기록을 가지고 있을 뿐이니까, 그냥 단순히 두 점 사이에 선을 그어 31,000 이라고 답을 하고 싶을 수 있지…만 그럴 때는 그냥 **모른다(I don’t know)**고 하는 게 정확하다. 그 외의 대답은 모두 거짓말이다.

현재 우리가 가지고 있는 이산신호의 맥락에서 봤을 때, 65분 당시의 고도에 대한 기록은 어디에도 없으므로, 우리는 확신을 가지고 이야기 할 수가 없다.

altitude = [0, 6000, 15000, 
            20000, 35000, 32000, 
            31000, 31000, 27000, 
            12000, 3500, 1200]

위와 같이 10분 주기로 기록된 현재의 이산신호는 빨강, 파랑, 주황, 초록으로 기록된 아래의 다양한 비행고도의 변화를 모두 표현(represent)할 수 있다. 연속신호로 봤을 때는 고도의 변화가 제각기 다르지만, 샘플링 주기만 봤을 때는 모두 같은 신호로 볼 수 있다. 따라서 60분과 70분의 점을 이어서 31,000 이라고 답을 하는 것은 엄청난 착각을 불러일으킬 수 있다.

각기 다른 네 가지 연속신호를 나타내는 빨강, 파랑, 주황, 초록 곡선
네 가지 연속신호를 10분 샘플링 주기의 이산신호로 표현했을 때

 

Alias

위의 빨강, 파랑, 주황, 초록 곡선은 10분 샘플링 주기의 이산신호로 표현 될 때 서로 구별이 불가능하며, 이를 각기 서로의 alias라고 부른다. 위의 네가지 곡선은 서로 다르지만, 10분 주기로 샘플링 되었을 때, 정확히 똑같아 보이기 때문이다.

본 자료에서 두 점을 선으로 잇지 말라고 강조하고 있으나, 이해하기 쉽도록 시각화를 하기 위해서 앞으로도 지속적으로 점과 점 사이를 선으로 이어서 예를 들 것임. 글쓴이가 선을 잇는다고 해서 선을 잇는 행동은 하지 말 것 추천함.

Removing Uncertainty : Frequency and Context

샘플과 샘플 사이에 간격이 있다면, 불확실성(uncertainty)가 동반된다. 샘플 간격 사이에 벌어지는 급격한(rapid fluctuation) 변화에 대한 정보가 손실 될 수 있기 때문에, 간격이 크면 클 수록 우리는 샘플링이 된 현재의 이산신호가 실제 현상을 그대로 표현한다고 확신할 수가 없게 된다. 이러한 불확실성을 줄이는 방법은 반대로 간격을 줄이는 것 즉, 샘플링 주기를 줄이는 것이다.

비행고도 예시에서, 샘플링 주기를 10분이 아닌 5분 단위로 설정한다고 해보자. 이렇게 되면 샘플링 주기가 적용된 파랑색 곡선의 이산신호를 봤을 때, 빨강, 주황, 초록 곡선은 더 이상 파랑 곡선의 alias라고 할 수 없다. (이제는 서로 구별할 수 있다!)

 

샘플링 주기를 무작정 줄일 수도 있겠지만, 샘플링에는 감수해야할 부분도 있다. 샘플들이 저장되는 메모리가 확보되어야 한다는 것. 따라서 샘플링 주기를 줄일 때에는 꼭 주의를 기울어야 한다.

샘플링 주기를 제대로 설정하는 방법은 말은 쉽지만 정보의 손실이 없을 정도로 설정하는 것이다. 만약 필요한 만큼보다 더 자잘하게 샘플링 주기를 설정한다면 오버샘플링(oversampling)이 되어 메모리나 연산 리소스를 낭비하게 되고, 너무 뜸하게 설정하면 언더샘플링(undersampling)으로 정보 손실이 발생할 수 있게 된다.

샘플링에 대한 이론은 frequency(주파수) 개념을 이해하면 좀 더 쉬워질 수 있을 것 같다. 다음에는 주파수에 대한 개념을 접할 수 있는 sound wave(음파)를 한번 알아보자.