오디오/오디오 주제

지터 줄이는 방법-1

이현봉 2010. 5. 2. 22:53

DAC에서 PLL을 중복 사용하기



S/PDIF수신기가 클럭신호을 추출할 때의 핵심이 수신기 내부에 있는 PLL(Phase Locked Loop)입니다. 이 때 PLL은 어떤 기준 클럭 (예를 들어 44.1KHz) 근방에서 S/PDIF선으로부터 들어오는 클럭신호가 있는지 탐색하여, 만약 그런 클럭신호가 있으면 이 클럭신호에 Lock하고 그 다음부터는 Lock된 클럭스트림의 클럭속도에 맞추어 lock된 클럭속도를 조금씩 보정하는 것이죠. , lock된 클럭스트림의 클럭속도를 따라 PLL 자신의 클럭속도를 보정해가면서 클럭신호를 새롭게 생성합니다. 

 

그러면, 의문이 생기는데 S/PDIF 수신기의 PLL이 초기에 44.1KHz 클럭신호를 입력 S/PDIF 데이터선에서 발견했으면 그 후로는 아예 자체 내부 클럭생성기를 이용해 정확한 44.1KHz 클럭신호을 만들면 되지 왜 지터가 잔뜩 낀 입력 S/PDIF 데이터선의 클럭을 따라가면서 맞추어야 하는가 입니다.  두가지 모두 44.1KHz가 아닌가요?  맞습니다.  S/PDIF로 부터의 클럭스트림도 44.1KHz이죠.  정확히 말하면 평균은 44.1KHz에 아주 가깝겠지만 순간적으로는 지터 때문에 44.1KHz를 중심으로 왔다 갔다 할 겁니다.  다시 돌아와서, 그러면 왜 PLL을 써서 데이터선으로부터 클럭스트림을 추출하는 방법을 쓸까요?


이유는 DAC는 실시간으로 D/A 변환을 하기 때문입니다.  입력 디지털신호가 들어오면 즉시로 아나로그 신호로 바꾸기 때문이죠.  지터가 문제로 인식될 때 부터 나온 얘기가, DAC에 버퍼를 써서 입력된 디지털데이터를 잠시 저장하고 정확한 클럭으로 FIFO 형태로 끄집어 내면 지터 박멸되는 것 아닌가 하는 것이죠.  물론 이렇게 잘 만들면 인터페이스지터 없어집니다.  문제는 다른데 있습니다. 


CD 넣고 PLAY하면 버퍼가 필요한 만큼 채워질 때 까지 소리가 나오지 않겠죠.  이것은 조금 참을 수 있는데, DVD 플레이어와 같이 음악과 화면이 딱 맞추어져 나와야 할 때 소리가 버퍼링되어 나오면 소리가 화면보다 늦게 나오겠죠. 입술과 소리가 매칭되지 않으면 우습지 않습니까?  이 것외에도 여러 문제가 더 있어 이 방법이 널리 활용되지 않았습니다.


PLL의 일반 특성이 타이트하게 주파수를 lock하려는 넘은 종종 lock를 잘 못한다는 것이죠.  정확한 간격에서 입력 클럭신호를 찾으려 하는데 지터 때문에 예상한 위치에 클럭신호가 조금 벗어나 있기에 못 찾는 것이죠.  그래서 보통은 S/PDIF에 있는 PLL은 그리 타이트하지 않은 특성을 주어 입력되는 클럭주파수가 대충 유지되어도 lock할 수 있도록 허용오차를 충분히 두는 방법을 택합니다.  문제는 이런 타이트하지 않은 PLL은 클럭스트림의 지터를 많이 걸러내지 못하고 그대로 통과시키죠.  인터페이스지터의 상당분이 S/PDIF수신기가 출력하는 클럭신호에 포함됩니다.  그래도 큰 지터 성분(타이밍 편차가 큰 것)은 퍽 많이 걸러집니다.  거친 체로 걸러졌다고 생각하면 좋습니다.  이제 어떻게 더 해볼까요?


그래서 나온 방법이 S/PDIF수신기가 추출한 클럭스트림 뒤에다 PLL을 하나 더 달아 클럭스트림내의 지터를 한 번 더 거르는 것입니다.  이 PLL은 S/PDIF수신기에 있는 PLL보다 더 타이트하고 정확한 것으로요.  이 두번째 PLL이 더 타이트해도 되는 것이 앞의 S/PDIF수신기에서 큰 지터성분은 걸려졌기에 타이트해도 lock이 가능해진 것이죠.  두번째 PLL이 고은 체가 되어 지터를 한 번 더 걸러주는 것이죠.  물론 이래도 아주 작은 지터성분들(편차가 작은 지터)은 통과되겠죠.


전에는 이런 이중 PLL 방식이 퍽 효과가 있다고 여겨졌는데 요즘은 생각보다 작다고 하네요.  사람의 귀가 생각보다 지터에 민감하고, 또 지터중에 음악신호와 관계되는 주기적 지터에 민감한데 이런 주기적 지터가 종종 지터편차가 작다고 하네요.  PLL을 하나 더 붙이면 될까요?