distortion/harmonics/aliasing..

Featured image

일단 제목이 무슨 뜻인지 이해가 가지 않을 분들을 위해 설명 덧붙여 본다.

실물 앰프, 그러니까 DSP로 앰프나 디스토션을 시뮬레이션하는 장치가 들어있지 않은 순수한 진공관 혹은 TR(혹은 다이오드 클리퍼)로 만든 앰프에서 게인을 걸고 높은 음을 튕긴 후 밴딩해보면, 내가 튕긴음이 흔들리고 있다는 느낌 밖엔 들지 않는다.

그런데, 디지털 앰프 시뮬레이터에서 이런 일을 하면 내가 치지 않은 이상한 음이 같이 들리는 것을 알 수 있다. 고가의 기타 앰프 시뮬에 들어가는 Fractal의 Axe Fx-II 정도 되면 들리는 비중이 작긴 해도 알아차릴 수 있는 정도가 되고, 그 외의 디지털 앰프 시뮬/디스토션들에서는 정도는 다르지만 다 잘 들릴 수준으로 나타남을 알 수 있다. 궁금하면 한 번 해보시라.

왜 이런 일이 벌어지는가하면,

1) 디지털 신호를 비선형 왜곡 시키면 고차 성분, 즉 입력을 $x$라고 하면 $x^2$, $x^3$, .. 들이 마구 마구 생겨난다. 찌그러짐이 심할 수록 더 많은 고차항이 생겨난다. 이것을 하모닉이라고 한다. 이것들은 입력 주파수의 정수배 주파수 성분을 갖게 된다.

2) 없던 새로운 주파수 성분, 그것도 고차의 성분들이 생겨나면 내가 바라보는 디지털 신호 영역 (그러니까 샘플링 주파수)에서는 표현할 수 없는 성분들이 생겨나는데, 그것이 투영되어 나타나는 것이aliasing이다.

3) 실제로는 높은 주파수의 신호인데, 내가 그것을 관찰할 수 있거나 표현할 수 없기 때문에 낮은 주파수 성분으로 나타난다. 흔한 예로 빨리 돌아가는 선풍기나 자동차 바퀴를 바라보고 있으면 그게 앞으로 돌고 있는 것인지 뒤로 돌고 있는 것인지 애매하게 보여지게 되는데, 그것은 바로 우리 눈이 현실을 관찰할 수 있는 샘플레이트/표본화 빈도가 제한되어있기 때문이다.

4) 마찬가지로 디지털 카메라에서도 moire 현상이라고 해서 촘촘한 체크 무늬를 카메라로 찍으면 카메라에 따라서 원래와 다른 색과 모양으로 찍히게 되는데, 역시나 마찬가지로 카메라 센서가 그 촘촘한 모양을 제대로 표현할 만큼 세밀하지 않기 때문이다. 그래서 일부러 low pass filter (=anti aliasing filter)라는 것을 달아서 센서가 파악할 수 있는 수준의 해상도로 떨어뜨리게 되는 것이다. 사운드도 마찬가지고 이미지도 마찬가지다.

그래서 이 문제를 해결할 수 있는 방법은 oversampling을 엄청나게 하는 방법 밖엔 없다. 입력신호의 샘플링 주파수는 낮더라도 내부에서 샘플레이트를 올려서 처리한 뒤에 불필요한 주파수 성분을 모두 날리고 다시 다운 샘플링하는 식으로 처리한다.

우리가 잘 아는 수많은 디지털 이펙트들도 aliasing과 같은 digital artifact가 엄청나게 많다. POD같은 장비는 애초에 오버샘플링을 거의 하지 않았고, 요새 유명한 Kemper도 그 측정 결과를 볼 때 1배 혹은 2배 정도의 oversampling을 한 것으로 보여지니 말이다. Eleven Rack이라든가 Axe Fx II 정도 올라가야 x8 혹은 x16 정도로 오버샘플링을 해서 aliasing 문제에 대처하고 있지 싶다.

그런데 x16 정도 해야할 필요가 있겠느냐 할 것 같은데, 그 정도 해도 aliasing 문제에 대해서 완전히 자유로워지지 못한다. 왜냐면 앰프안에서 신호를 찌그러뜨리는 곳은 여러 곳인데, 매번 찌그러뜨릴 때마다 고차항은 계속해서 늘어나기 때문이다. 다행스럽게도 모든 증폭단은, 특히나 진공관의 경우는 응답속도가 느려서 높은 주파수의 신호는 스스로 필터링하는 성질이 있어서 적정 수준의 하모닉이상은 만들어내지 못한다. 파워앰프 출력을 관찰해도 그렇고 말이다.

실물 앰프와 디지털 플러긴의 차이를 보기 위해 sine wave를 입력으로 넣었을 때 앰프의 출력을 관찰해보았다.

아래는 6505 시뮬 플러긴을 1x sample rate로 동작시켰을 때의 출력이다 (일부러 x1은 사용하지 않지만 강제로 x1로 고정했다)

아래 파워스펙트럼에서 크기가 큰 것이 입력과 정수배 하모닉이 되겠다. 증폭단이 많이 달려있다고 하더라도 입력의 주파수 성분이 하나면 오직 입력과 정수배 하모닉만이 존재해야 한다. 그러나 불필요한 주파수 성분들이 잔뜩 나타나고 있는 것을 알 수 있다. 이것들은 모두 aliasing에 의하여 생겨난 성분들인데 찌그러짐을 거치면서 계속해서 증가한 것이다. 그러나 비교적 2nd, 4th 성분이 많이 있다고 볼 수 있다. image

아래는 실물 진공관 앰프를 통해서 얻은 결과이다. 위 그림에서는 홀수배 주파수의 하모닉 성분들은 비교적 작게 나타나고 있는 반면, 실물 앰프에서는 많이 나타나고 있는 것을 알 수 있다. 반면 aliasing에 의한 불필요한 주파수 성분들은 거의 나타나지 않고 있다. 이것이 디지털 시뮬레이션과 실물 앰프와의 차이라고 얘기해도 틀리지 않을 것이다.

image

다음은 앰프 시뮬 플러긴의 샘플링 주파수를 2배로 했을 때의 결과이다. 불필요한 주파수 성분들이 다소 줄어 들어있음을 알 수 있다. 여전히 홀수배 하모닉 성분들의 비율은 낮은 편인데, 아마도 진공관 모델의 특성을 설계할 때 홀수차 하모닉의 비율을 줄이기 위해 곡선을 만져놓은 것이 아래와 같은 결과를 초래하지 않았나 보여진다.

image

다음은 4배 오버 샘플링했을 때의 결과이다. 불필요한 성분들이 더 줄어있음을 알 수 있다. 샘플링 주파수를 올리면 플러긴은 그만큼 더 많은 연산을 수행해야 되기 때문에 샘플링 주파수를 무작정 올릴 수는 없다.

image

다음은 로직안에 들어있는 앰프시뮬 플러긴을 이용해서 측정한 결과이다. 주파수 성분만으로 볼 때는 oversample을 하지 않은 것처럼 보인다. 덕택에 입력 신호의 주파수 성분과는 관련없는 성분들이 잔뜩 포함되어 엄청나게 지저분한 소리를 내고 있음을 알 수 있다.

image

결론을 요약하자면,

1) 앰프를 제대로 시뮬레이션 하자면, harmonic 성분들의 비율을 제대로 살려내야 한다. 그것은 tube를 어떤 것을 썼느냐 앰프 회로 설계가 어떠하냐에 달려있다.

2) 디지털 앰프 시뮬레이터에서는 oversampling이 충분해야 한다. 그렇지 않으면 aliasing에 의한 불필요한 주파수 성분이 개입되어 이것이 찌그러짐을 여러 번 거치는 동안 계속해서 불어나 소리를 지저분하게 만든다.