'sampling'에 해당되는 글 1건

  1. 2008.04.23 Sampling / Interpolation 1
TV Tuner System2008. 4. 23. 15:15
http://blog.joins.com/media/folderListSlide.asp?uid=charmsc&folder=8&list_id=4475984


1. Sampling 이론

Sampling 이론은 1920년대에 나온 Nyquist 라는 사람의 논문에서 말한 신호대역에 2배보다 큰 주파수로 샘플링하면 원 신호를 찾을 수 있다는 것으로 기본을 하고 있습니다.
일반적인 Sampling 이론에서는 일정하지 않는 주기의 클락으로 샘플링하는 경우도 다루나, 특수한 그러나 가장 일반적인 일정한 주기를 가진 클락에 의한 샘플링에 한해 설명드리겠습니다.

샘플링과정은 산수적으로는 시간함수를 임펄스열함수(Impulse Train Function)로 곱한 것과 나타냅니다.
이 식을 Fourier 변환을 하면 원 함수의 Fourier 변환된 함수와 임펄스열함수의 Fourier 변환된 함수 즉 주기의 역수인 주파수의 임펄스열함수와의 Convolution이 됩니다.
만일 원 신호가 LPF된 신호라면, 임펄스열함수의 주파수를 중심으로 반복되는 함수열로 나타납니다. 이 LPF된 신호의 대역이 임펄스열함수의 주파수의 절반보다 작으면 스펙트럼상 겹치는 부분이 생기지 않아서 원 신호의 정보를 복원할 수 있고, 겹치면 간섭에 의해 원 신호를 찾을 수 없게 됩니다. 스펙트럼이 겹치는 현상은 Aliasing 이라고 합니다.
이것으로 Nyquist 정리가 증명이 되는 것입니다.
Nyquist Rate 이상으로 샘플링된 신호에서 원 신호를 되찾는 방법은 이상적인 LPF를 하면 되는 것입니다.

신호를 ADC하거나 DAC를 하면 이 Nyquist Sampling Theorem을 벋어날 수가 없습니다. ADC하기 전에 Aliasing을 피하기 위해 Anti-aliasing Filter를 통해야 하고, DAC이후에는 신호를 복원하는 필터를 통과해야 합니다.

문제는 이 Anti-aliasing Filter와 신호를 복원하기 위한 Filter에 있습니다.

직접 변환하는 ADC와 DAC에서 필요한 Anti-aliasing Filter나 신호 복원용 필터를 이상적인 Low Pass Filter로 하는 것은 아날로그 회로로 비슷하게라도 구현 것이 불가능에 가깝기에 Nyquist Rate 보다 조금 높은 샘플링 주파수를 사용하거나, 몇배 볓배의 Over sample DAC나 ADC를 사용하게 되는 것입니다.
CD에서 44.1kHz를 사용하는 것은 조금의 여유를 주자는 것이나, 20kHz와 22.05kHz사이의 너무 가까워 20kHz까지는 평탄하다가 22.1kHz에서 90dB의 차단을 해야 하는 필터 구성은 아날로그에서는 쉽지 않습니다. 그래서 ADC는 고가의 스튜디오용 장비가 되어야 하고, DAC에는 복잡한 필터가 붙어야 했습니다.
DAT에서 샘플링 주파수를 48kHz를 사용하는 이유는 20kHz 로 부터 24kHz의 거리를 넓혀서 휴대용기기에서 Anti-aliasing Filter를 구현하기 위한 것입니다.
Over Sample DAC의 경우는 신호 데이터의 샘플링 주파수를 몇배로 Interpolation한 후에 디지털 필터로 신호 복원용 LPF를 하고 DAC에 의해 아날로그 신호를 바꾸어 주면, 원하는 신호인 베이스 밴드 신호로부터 다음에 나타나는 신호간의 스펙트럼간의 간격이 멀어져서, 뒷단의 복원용 아날로그 필터가 간단해도 됩니다. 즉 Active Filter나 복잡한 RLC필터 대신 간단한 RC필터만으로도 됩니다. 즉 8배 오버 샘플의 경우 20kHz와 44.1k*8-20=332kHz사이에서 90dB를 차단하는 필터를 구성하기에 쉬워지는 것입니다.
Over Sample ADC의 경우에는 중요한 주파수 대역과 샘플링 클락 주파수의 절반 과의 차이가 크기때문에 간단히 Anti-Aliasing Filter를 구성할 수 있으며, ADC된 디지털 데이터에서 디지털 필터로 원하는 주파수 대역 만 선택하는 필터를 할 수 있게 합니다.

근래의 대부분의 오디오 용의 ADC나 DAC는 빠른 샘플링보다는 해상도의 비트수가 필요하기에 Sigma Delta 방식을 사용합니다. 이 방식이 나오면서 오디오용 DAC/ADC가 쉬워진 것입니다.
같은 Sigma Delta형에서는 Sigma Delta 변조 주파수가 일정하기에 필요한 대역에 대해 필요 이상의 오버 샘플링 주파수로 올려도 필요대역에서의 품질은 올라가지 않습니다. ADC 경우 동일한 Sigma Delta 변조된 신호에서의 디지털 필터와 Decimation에서만 차이가 나기 때문입니다. 오히려 오버 샘플링된 데이터로 ADC하거나 DAC를 하는 것이 추출되는 또는 들어오는 데이터와 Sigma Delta 변조기의 주파수간의 차이가 줄어들어 오히려 특성이 나빠지는 것이 일반적인 현상입니다.

Sigma Delta형 ADC에서의 Anti-aliasing Filter입장에서 보면, 출력 Data Rate가 높으면 구성이 간단해지나 Decimation시 Digital Filter로 잡아 주기에 큰 차이는 없을 것입니다.
Sigma Delta형 DAC에서의 신호복원 필터의 관점에서보면, 출력 신호의 샘플링 주파수가 높아도(배수가 커도) DAC의 Sigma Delta 변조기의 주파수는 동일하기에 좋아질 것이 없습니다.

Sample된 데이터를 양자화시켜서 2진 수로 표시합니다. 이때의 최대자리(MSB)의 자리수를 비트 수라고 합니다.
비트 수는 신호를 얼마나 정확히 표시하느냐를 나타내며, 신호에서는 양자화시 원신호와의 차이를 양자화잡음이라고 합니다. 신호와 양자화 잡음의 비(SNR)는 2진 N자리수의 디지털 수의 경우 최대 신호에서 6.02N+1.76(dB)가 됩니다. 대략 1bit에 6dB로 하여 16bit의 경우 16*6=96dB라고 하나, 정확히는 98dB가량 됩니다.
LP의 경우 신호의 최대치와 잡음의 비가 60dB정도이니, CD가 38dB(전력으로 6300배, 전압으로는 79배)의 잡음과 신호의 차이 즉 다이나믹레인지를 가집니다.


2. 샘플링 클락의 변경
샘플링 클락의 변경은 원 샘플링 클락과 출력되는 클락과의 관계와 과정에 따라 Interpolation, Decimation, Resampling으로 나눕니다.

a. Interpolation은 알고있는 기존의 샘플링점에대해 시간적으로 다른 새로운 샘플링 점을 잡아서 그 새로운 샘플링 점의 값을 기존 샘플링점의 값에서 만들어 넣는 과정을 말합니다.
고정된 주파수의 클락을 사용하는 데이터와 시스템에서는 대부분이 기존 데이타 클락의 정수배가 되게 사용합니다. 즉 48k샘플을 96k로 변환하는 것과 같은 것을 말합니다.
새로운 데이터를 찾는 방법을 Interpolation Filter 라고 하며, 이상적인 LPF를 사용하면 정확히 찾을 수 있으나 계산량이 너무 많아서, 용도 등등에 따라 여러 종류의 방법을 사용합니다.
가장 간단한 방법으로 바로 전 데이터 그대로를 채워 넣는 것(Sinc Function LPF 방식)으로부터, Windowing 된 Sinc Function으로 Convolution 하는 방법 등등의 종류가 있습니다.

b. Decimation은 Interpolation과 반대로 샘플링된 데이터의 샘플링의 수를 줄이는 것을 말합니다. 즉 96k를 48k로 변환하는 것과 같은 것을 말합니다.
Decimation의 방법은 원 데이터를 새로운 샘플링주파수에 맞게 Digital Anti-aliasing Filter를 한 다음에 몇 개 중에 하나가 남게 솎아 주는 것입니다.


c. Resampling은 큰 의미로는 모든 샘플링 데이터의 변환을 포함합니다만, 좁은 의미로는 정수비가 아닌 관계의 샘플링 클락 주파수 변환을 의미합니다.
48k를 44.1k로 변환하는 것  같은 것입니다.
방법은 Interpolation과 동일 합니다. Interpolation Filter와 같은 역활의 Re-sampling Filter로 기존의 샘플링 점의 값에서 새로운 점의 값을 계산해 내는 것입니다. 가장 간단한 방식으로의 Nearest 데이터를 사용하는 방법에서부터 Ant-aliasing Filter에 의한 방법 등등이 있습니다.
Posted by heeszzang