펄스 코드 변조(PCM)는 아날로그 데이터를 표본화, 양지화, 부호화하는 단계를 거쳐 2진 비트열(bit stream)로 데이터화해서 송신한다. 수신부에서는 수신한 디지털 신호를 복호화 및 필터링하여 아날로그 신호로 변환한다. [ 그림 4-22 ] 는 펄스 코드 변조 및 복조 과정을 블록도로 나타낸다.
표본화(sampling)는 연속적으로 변하는 아날로그 신호에서 일정한 주기의 불연속적인 진폭을 갖는 PAM(Pulse AMplitude Modulation) 펄스를 얻는 과정이다. 단위 시간당 표본 추출의 횟수(표본화 주파수)는 수신부에서 원 신호를 충실하게 재생하기 위한 중요한 요인이 된다. 단위 시간당 표본 수는 나이퀴스트(Nyquist)의 표본화 정리(sampling theorem)에 의해 결정된다.
표본화 정리에 따르면, 연속적으로 변하는 아날로그 신호에 포함된 최고 주파수를 fm이라고 할 때 적어도 1/2fm의 주기(Ts)로 표본을 추출하면 추출된 데이터로부터 원래의 신호를 재생할 수 있다는 것이다. 즉, 표본화 간격 Ts(=1/fs)와 최고 주파수 fm의 관계식은 다음과 같다.
예를 들어, 우리가 흔히 음성 전송에 이용하는 주파수 대역은 30~3,400Hz로, 음성 대역폭은 3KHz다. 음성 대역은 이웃하는 채널 간 간섭을 피하기 위한 보호 대역(guard band)까지 포함하여 4KHz가 되는 것이 보통이다. 따라서 음성 신호를 재생시키려면 4KHz의 2배인 8KHz, 즉 1초 동안 8,000번 표본화해야 한다. 이 결과로 표본화하는 순간 아날로그 신호의 진폭과 같은 크기의 진폭을 가지는 PAM 펄스를 얻는다. 그림 4-23 는 아날로그 신호를 표본화하여 얻은 펄스를 표시한 것이다.
[ 그림 4-23 ] (b)와 같이 펄스의 진폭 크기를 디지털양으로 변환하는 것을 양자화(quantization)라 한다. 즉, 최대 아날로그 신호의 진폭을 양자화 레벨의 숫자로 나누어 각 간격에서 뽑아낸 표본 값을 미리 정해진 값에서 가장 가까운 값으로 변환하는 것이다. 이 과정에서 불가피하게 양자화 잡음(quantization noise) 또는 양자화 오차(quantization error)가 발생한다. 예를 들어, [ 그림 4-23 ] (b)에서 첫 번째 표본점의 원 신호 2.8과 양자화 파형 3.0 사이에는 0.2 차이가 존재하게 되고 이것을 양자화 잡음이라 한다. 양자화 레벨 수(분해능resolution)를 늘리면 레벨 간의 간격이 좁아져 양자화 잡음이 줄어들 것이다. 그러나 양자화 레벨 수가 많아지면 이를 2진수로 부호화하기 위한 비트 수가 증가하므로 전송하려는 데이터양이 많아진다는 단점이 있다.
양자화 레벨 간의 간격을 델타라고 하면 양자화 잡음은 -델타/2 ≤ 양자화 잡음 ≤ +델타/2다. 양자화 잡음은 섀넌의 채널 용량에 영향을 미친다. 신호의 SNR(dB)에 미치는 양자화 잡음의 정도는 샘플 당 비트 수 n(b)에 의해 다음 수식으로 표시할 수 있다. 샘플당 비트 수가 1비트 증가할 때마다 6.02dB의 SNR이 개선되므로 채널 용량이 증가하게 된다.