디지털 오디오와 DSP
마이크 앞 공기의 압력 변화는 연속 신호지만, 컴퓨터 안의 소리는 1초에 48,000개쯤의 정수 목록입니다. 시간을 자르는 샘플링과 진폭을 자르는 양자화, 이 두 번의 이산화에서 무엇을 잃고 무엇을 지킬 수 있는지 알면 디지털 오디오의 거의 모든 '규칙'이 설명됩니다. 그다음 그 숫자 열에 수학을 걸어 EQ, 딜레이, 리버브, 컴프레서를 만드는 신호 처리(DSP)를 하나씩 귀로 확인합니다.
- 나이퀴스트–섀넌 샘플링 정리와 에일리어싱의 접힘 공식 \(f_a = |f - k f_s|\)을 쓰고, 44.1/48/96 kHz가 정해진 배경을 설명한다.
- 양자화 잡음의 SNR ≈ 6.02N + 1.76 dB를 유도하고, 디더(RPDF·TPDF)와 노이즈 셰이핑이 무엇을 바꾸는지 듣고 구별한다.
- FFT의 빈 폭 \(f_s/N\), 시간–주파수 트레이드오프, 창 함수의 누설과 주엽 폭을 수치로 비교한다.
- LTI 시스템·컨볼루션·FIR/IIR을 이해하고, 바이쿼드 EQ·콤 필터·슈뢰더 리버브의 전달함수를 해석한다.
- 컴프레서의 정적 곡선과 시간 상수, 라우드니스(LUFS) 정규화와 버퍼 지연을 엔지니어의 숫자로 다룬다.
샘플링 정리: 1초를 48,000조각으로
아날로그–디지털 변환기(ADC)는 연속 신호 \(x(t)\)를 일정한 간격 \(T = 1/f_s\)마다 재서 수열 \(x[n] = x(nT)\)을 만듭니다. 놀라운 사실은, 원래 신호에 \(f_s/2\) 이상의 성분이 없다면 이 수열만으로 원래 연속 신호를 완벽하게 되살릴 수 있다는 것입니다. 이것이 나이퀴스트–섀넌 샘플링 정리(Nyquist–Shannon Sampling Theorem)입니다(나이퀴스트 1928, 섀넌 1949).
| 샘플레이트 | 나이퀴스트 | 주 용도 | 왜 이 값인가 |
|---|---|---|---|
| 8 kHz | 4 kHz | 전화(G.711) | 음성 대역 300–3400 Hz + 필터 여유 |
| 16 kHz | 8 kHz | 광대역 음성, 음성 인식 | 자음(마찰음) 에너지를 담는다 |
| 44.1 kHz | 22.05 kHz | CD, 음원 배포 | 가청 20 kHz + 전이 대역 2 kHz, 비디오테이프 PCM 어댑터와 호환 |
| 48 kHz | 24 kHz | 영상·방송·게임, Web Audio 기본값 다수 | 프레임당 정수 샘플(25 fps → 1920, 30 fps → 1600), AES5 권고 |
| 96 kHz | 48 kHz | 녹음·믹싱 작업 | 완만한 필터, 비선형 처리의 에일리어싱 여유, 낮은 버퍼 지연 |
에일리어싱: 나이퀴스트에서 접히는 주파수
조건을 어기면 어떻게 될까요? 샘플만 보면 주파수 \(f\)인 사인파와 \(f \pm k f_s\)인 사인파는 구별할 수 없습니다. \(\cos(2\pi (f + k f_s) nT) = \cos(2\pi f nT + 2\pi k n) = \cos(2\pi f nT)\)이기 때문입니다. 그래서 \(f_s/2\)를 넘는 성분은 기저대역 \([0, f_s/2]\) 안의 다른 주파수로 '변장'해 나타납니다. 이를 에일리어싱(Aliasing)이라 합니다.
에일리어싱 실험실: 낮은 샘플레이트에서 스윕 듣기
복원과 필터: 계단을 매끄럽게
실제 DAC는 sinc 펄스를 만들 수 없으므로 각 샘플 값을 다음 샘플까지 유지하는 영차 유지(Zero-Order Hold, ZOH) 계단을 냅니다. 계단은 길이 \(T\)의 사각 펄스와 임펄스 열의 컨볼루션이므로 주파수 응답은 sinc 모양입니다.
CD를 처음 만들 때 이 필터가 난제였습니다. 20 kHz까지 평탄하고 22.05 kHz에서 약 96 dB 감쇠하려면 아날로그 필터로는 11차 이상의 타원 필터가 필요했고, 위상 왜곡이 컸습니다. 해법은 오버샘플링: 디지털 보간 필터로 4–8배 레이트를 올린 뒤 DAC에 넣으면 이미지가 \(4f_s\) 근처로 밀려나 아날로그 필터는 완만해도 됩니다. 오늘날의 ΔΣ 변환기는 이 생각을 극단까지 밀어 1–5비트를 수 MHz로 돌리고, 날카로운 FIR 데시메이션 필터를 칩 안에 넣습니다.
양자화: 진폭을 정수로
각 샘플의 진폭은 \(N\)비트 정수로 반올림됩니다. 풀스케일 \([-1, 1)\)을 \(2^N\)칸으로 나누면 한 칸(LSB) 크기는 \(\Delta = 2/2^N\)입니다. 신호가 충분히 크고 복잡하면 반올림 오차 \(e[n]\)는 \([-\Delta/2, \Delta/2]\)에 균등 분포하는 백색 잡음처럼 행동합니다.
| 비트 | 준위 수 | LSB (dBFS) | 이론 SNR | 쓰임 |
|---|---|---|---|---|
| 8 | 256 | −42.1 | 49.9 dB | 초기 샘플러, 게임기, μ-law 전화(비선형 8비트) |
| 16 | 65,536 | −90.3 | 98.1 dB | CD, 배포용 음원 |
| 24 | 16,777,216 | −138.5 | 146.3 dB | 녹음·제작(헤드룸을 넉넉히) |
| 32 float | — | — | 가수 24비트 ≈ 146 dB, 범위 약 1500 dB | DAW 내부 처리(0 dBFS 넘어도 안 잘림) |
디더: 잡음을 더해 왜곡을 없애기
신호가 작아져 몇 LSB만 오가면 '오차 = 백색 잡음' 가정이 깨집니다. 오차가 신호와 상관된 고조파 왜곡이 되고, 아주 작은 신호는 아예 0으로 사라집니다. 해결책은 역설적이게도 양자화 직전에 작은 잡음을 일부러 더하는 디더(Dither)입니다.
- RPDF(직사각 분포, ±½ LSB): 오차의 평균이 신호와 무관해진다. 그러나 오차 전력은 여전히 신호에 따라 변한다(잡음 변조). 잡음 +3 dB.
- TPDF(삼각 분포, ±1 LSB, 균등 난수 두 개의 합): 오차의 1·2차 모멘트가 모두 신호와 독립 — 들리는 결과는 '일정한 쉬익 소리 + 왜곡 없는 신호'. 잡음 +4.77 dB(전력 3배). 립시츠·바나메이커·반더코이(1992)가 보인 사실상의 표준이다.
- 노이즈 셰이핑: 양자화 오차를 되먹여 잡음 전달함수 \(\mathrm{NTF}(z) = (1-z^{-1})^k\)를 만들면 잡음이 귀가 둔한 고역으로 밀려난다. 총 잡음은 늘지만 1–5 kHz의 체감 잡음은 크게 준다. 24비트 → 16비트 마스터링의 마지막 단계에 쓰인다.
양자화기: 비트 수 · 디더 · 노이즈 셰이핑
클리핑과 샘플 간 피크
정수 표현에는 천장이 있습니다. 0 dBFS를 넘는 값은 최댓값으로 잘리고(하드 클리핑), 잘린 파형은 사각파처럼 홀수 고조파를 대량으로 만들며, 그중 나이퀴스트를 넘는 것은 접혀서 비조화적인 잡음이 됩니다. 함정은 샘플 값이 모두 0 dBFS 이하여도 복원된 아날로그 파형은 그 위로 솟을 수 있다는 점입니다. sinc 보간은 샘플 사이를 지나며 샘플보다 큰 값을 만들 수 있기 때문입니다.
그래서 방송·스트리밍 규격은 트루 피크(True Peak, dBTP)를 씁니다. ITU-R BS.1770-5(2023)의 부속서 예는 48 kHz 입력을 4배, 96 kHz 입력을 2배 보간하여 피크를 추정합니다. 유사하거나 더 우수한 측정 방법도 허용하며 유한 보간비가 오차 없는 피크를 보장하지는 않습니다. EBU R128은 최대 −1 dBTP를 요구합니다. 손실 압축 코덱은 재구성 과정에서 피크를 더 키우므로 스트리밍 서비스는 −1 dBTP(때로 −2)를 권장합니다.
DFT와 FFT: 스펙트럼을 재는 자
유한한 \(N\)개 샘플의 주파수 성분은 이산 푸리에 변환(DFT)으로 계산합니다. 직접 계산하면 \(O(N^2)\)이지만 쿨리–튜키(1965)의 FFT는 \(O(N\log N)\)으로 같은 결과를 냅니다. \(N = 4096\)이면 약 340배 빠릅니다.
DFT는 \(N\)개 샘플이 무한히 반복된다고 가정합니다. 프레임 길이가 신호 주기의 정수배가 아니면 이음매에서 불연속이 생기고, 그 에너지가 모든 빈으로 번집니다. 이것이 스펙트럼 누설(Spectral Leakage)입니다. 창 함수는 프레임 양 끝을 0으로 부드럽게 줄여 누설을 막는 대신 주엽(main lobe)을 넓혀 해상도를 희생합니다.
| 창 | 최대 사이드로브 | 주엽 폭(영점–영점) | ENBW | 사이드로브 감쇠율 | 쓰임 |
|---|---|---|---|---|---|
| 직사각 | −13.3 dB | 2 빈 | 1.00 | −6 dB/oct | 과도음, 정수 주기 신호 |
| 한(Hann) | −31.5 dB | 4 빈 | 1.50 | −18 dB/oct | 범용 기본값 |
| 해밍 | −42.7 dB | 4 빈 | 1.36 | −6 dB/oct | 가까운 사이드로브 억제 |
| 블랙먼 | −58.1 dB | 6 빈 | 1.73 | −18 dB/oct | 큰 동적 범위 |
| 블랙먼–해리스(4항) | −92.0 dB | 8 빈 | 2.00 | −6 dB/oct | 측정용(THD, 잡음 바닥) |
수치 출처: F. J. Harris, "On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform", Proc. IEEE, 1978. ENBW(등가 잡음 대역폭)는 빈 단위.
FFT 창 함수 탐색기: 가까운 두 음을 가를 수 있을까
STFT와 스펙트로그램
음악은 시간에 따라 변하므로 짧은 창을 밀어 가며 FFT를 반복합니다. 이것이 단시간 푸리에 변환(STFT)이고, 그 크기를 시간–주파수 평면에 색으로 그린 것이 스펙트로그램입니다.
실시간 스펙트로그램: 창 길이를 바꿔 가며 보기
AnalyserNode(블랙먼 창, 시간 평활 0) 출력을 화면 프레임마다 한 열씩 그립니다. 마이크 소리는 스피커로 내보내지 않습니다.LTI 시스템과 필터: FIR, IIR, 바이쿼드
EQ, 리버브, 스피커, 방 — 이들은 근사적으로 선형 시불변(LTI) 시스템입니다. LTI 시스템은 임펄스 응답 \(h[n]\) 하나로 완전히 기술되고, 출력은 입력과 \(h\)의 컨볼루션입니다. 주파수 영역에서는 곱셈이 됩니다.
| FIR | IIR | |
|---|---|---|
| 구조 | 지연된 입력의 가중합 | 입력 + 지연된 출력의 되먹임 |
| 위상 | 계수가 대칭이면 정확한 선형 위상(파형 보존) | 비선형 위상(아날로그 필터와 같은 성질) |
| 안정성 | 항상 안정 | 극점이 단위원 안에 있어야 함 |
| 비용(같은 날카로움) | 탭 수십–수천 개 | 2차 섹션 몇 개 |
| 예 | 선형 위상 EQ, 오버샘플링 필터, 컨볼루션 리버브 | 파라메트릭 EQ, 신스 필터, 셸빙, DC 차단 |
음향에서 가장 많이 쓰는 IIR은 2차 섹션 바이쿼드(Biquad)입니다. 로버트 브리스토–존슨(RBJ)의 Audio EQ Cookbook은 아날로그 원형을 쌍선형 변환해 \(f_0, Q\), 이득(dB)만으로 계수를 주는 공식집으로, Web Audio의 BiquadFilterNode도 이를 따릅니다. 피킹 EQ는 다음과 같습니다.
4밴드 파라메트릭 EQ 설계기
BiquadFilterNode 4개를 통과합니다. 해볼 것: ① 핑크 잡음에서 Q 8의 +12 dB 벨을 200 Hz→5 kHz로 끌어 '모음'처럼 변하는 소리를 들어 보세요. ② 하이패스 120 Hz로 킥과 베이스가 사라지는 것, ③ 바이패스로 A/B. 구현 메모: Web Audio에서 셸빙 필터는 Q를 무시하고 기울기 S=1(≈ Q 0.707)로 고정되며, 로우/하이패스의 Q는 dB 단위입니다(여기서는 선형 Q를 20·log₁₀Q로 바꿔 넣음). 계수 표시는 fs = 48 kHz 기준.딜레이와 콤 필터: 플랜저·코러스·에코
가장 단순한 효과는 신호를 지연시켜 원래 신호와 더하는 것입니다. 지연 \(\tau\)가 수십 ms를 넘으면 귀는 따로 떨어진 메아리(에코)로 듣지만, 짧으면 두 신호가 간섭해 주파수 응답에 빗살 같은 골과 봉우리가 생깁니다. 이것이 콤 필터(Comb Filter)입니다.
플랜저는 1–10 ms 지연을 저주파 LFO로 천천히 흔들어 빗살이 위아래로 미끄러지게 하고(제트기 '쉬익'), 코러스는 15–30 ms 지연을 약간 흔든 여러 복사본을 섞어 음높이가 미세하게 다른 연주자 여럿이 함께 연주하는 듯한 두께를 만듭니다. 지연을 흔들면 도플러 효과로 음높이가 \(1 - \dot\tau(t)\)배 변합니다.
딜레이 라인 하나로 만드는 콤·플랜저·코러스·에코
DelayNode는 되먹임 고리 안에서 최소 128샘플(≈2.7 ms)로 제한되므로 짧은 공진 콤을 만들 수 없기 때문입니다.리버브: 방을 계산하기
방에서 손뼉을 치면 직접음 뒤로 벽에서 돌아온 초기 반사음이 수십 ms 동안 띄엄띄엄 오고, 이어 반사가 반사를 낳아 밀도가 시간의 제곱으로 늘어나는 잔향 꼬리가 지수적으로 사라집니다. 소리가 60 dB 줄어드는 시간이 잔향 시간 RT60이고, 세이빈(1898)의 공식이 첫 근사를 줍니다.
슈뢰더(1962)는 이 꼬리를 적은 계산으로 흉내 내는 구조를 제안했습니다. 서로소에 가까운 지연을 가진 되먹임 콤 필터 4개를 병렬로 놓아 감쇠하는 메아리 밀도를 만들고, 올패스 필터 2개를 직렬로 통과시켜 크기 응답은 그대로 두고 메아리를 잘게 흩습니다. 각 콤의 되먹임 이득은 원하는 RT60에서 역산합니다.
현대의 다른 방법은 컨볼루션 리버브입니다. 실제 공간의 임펄스 응답(IR)을 측정해(파리나(2000)의 지수 사인 스윕법이 표준) 입력과 컨볼루션하면 그 공간의 LTI 특성이 그대로 재현됩니다. 수 초짜리 IR은 수십만 탭 FIR이므로 FFT 기반 분할 컨볼루션으로 계산합니다. 아래 시뮬레이터는 알고리즘 리버브의 IR을 직접 계산해 ConvolverNode에 넣으므로 두 방법을 같은 틀에서 비교할 수 있습니다.
리버브 해부: 슈뢰더 · 프리버브 · 지수 감쇠 잡음
ConvolverNode(스테레오, 좌우 지연 23샘플 차)로 재생. 슈뢰더 원형은 모노이며 댐핑은 무어러식 1차 저역 통과를 콤 안에 넣은 것입니다.다이내믹스: 컴프레서
컴프레서(Compressor)는 신호 레벨이 문턱 \(T\)를 넘으면 넘은 양을 비율 \(R\)로 줄이는 '자동 볼륨 손잡이'입니다. 레벨 검출기(피크 또는 RMS) → 정적 곡선(이득 계산) → 시간 평활(어택·릴리스) → 곱셈의 사슬로 구현합니다. 정적 곡선은 dB 영역의 꺾은선이고, 꺾이는 곳을 둥글게 하는 폭 \(W\)가 니(knee)입니다(Giannoulis·Massberg·Reiss, JAES 2012).
컴프레서: 정적 곡선과 이득 감소 계측
DynamicsCompressorNode. 이 노드의 니는 문턱 위쪽에만 걸리고(곡선은 그 정의로 그림), 규격상 자동 메이크업 이득과 6 ms 룩어헤드가 들어 있습니다.라우드니스 정규화와 지연
피크 미터는 '얼마나 크게 들리는가'를 말해 주지 못합니다. 같은 −1 dBTP라도 압축을 세게 한 곡이 훨씬 크게 들리고, 이것이 1990–2000년대 라우드니스 전쟁을 낳았습니다. 해결책은 지각에 가까운 척도로 재고 재생 단계에서 일정하게 맞추는 것입니다. ITU-R BS.1770은 다음 절차를 정합니다.
- K-가중: 머리의 음향 효과를 흉내 낸 하이 셸프(약 1.5 kHz 위 +4 dB) + 저역 차단(약 38 Hz 하이패스, RLB) — 두 바이쿼드.
- 채널별 평균 제곱을 400 ms 블록(75% 겹침)으로 구해 더하고 \(L = -0.691 + 10\log_{10}\sum_c G_c \overline{z_c^2}\) [LUFS].
- 게이팅: −70 LUFS 아래 블록(무음)을 버리고, 그 평균보다 10 LU 낮은 블록을 다시 버린 뒤 평균한 값이 통합 라우드니스.
| 규격·서비스 | 목표 통합 라우드니스 | 트루 피크 상한 |
|---|---|---|
| EBU R128 (유럽 방송) | −23.0 LUFS (2023판; 생방송 등 ±1.0 LU, 측정 품질관리 ±0.2 LU) | −1 dBTP |
| ATSC A/85 (미국 방송), 국내 지상파 | −24 LKFS | −2 dBTP |
| 스포티파이·유튜브·타이달 등(기본값) | 약 −14 LUFS | −1 dBTP 권장 |
| 애플 뮤직(사운드 체크) | 약 −16 LUFS | −1 dBTP 권장 |
스트리밍 서비스가 −14 LUFS로 맞춰 재생하면, −8 LUFS로 '찌그러뜨린' 마스터는 6 dB 줄어 재생되고 다이내믹스만 잃은 셈이 됩니다. 정규화가 라우드니스 전쟁을 사실상 끝낸 이유입니다.
지연(latency): 버퍼의 대가
오디오 장치는 샘플을 하나씩이 아니라 블록(버퍼) 단위로 주고받습니다. 버퍼가 작을수록 지연은 작지만 CPU가 제때 블록을 채우지 못하면 '틱' 하는 끊김(언더런)이 납니다.
| 버퍼 B | 44.1 kHz | 48 kHz | 96 kHz |
|---|---|---|---|
| 64 | 1.45 ms | 1.33 ms | 0.67 ms |
| 128 | 2.90 ms | 2.67 ms | 1.33 ms |
| 256 | 5.80 ms | 5.33 ms | 2.67 ms |
| 512 | 11.61 ms | 10.67 ms | 5.33 ms |
| 1024 | 23.22 ms | 21.33 ms | 10.67 ms |
이 브라우저의 Web Audio 지연은 아무 소리나 한 번 재생하면 여기에 표시됩니다.
핵심 정리
- 대역 제한 신호는 \(f_s > 2B\)로 샘플링하면 sinc 보간으로 완벽히 복원된다. \(f_s/2\)를 넘는 성분은 \(|f - kf_s|\)로 접혀 되돌릴 수 없으므로 샘플링 전에(그리고 비선형 처리 전에) 막아야 한다.
- 44.1 kHz는 비디오테이프 PCM 어댑터(3샘플 × 245줄 × 60필드)에서, 48 kHz는 영상 프레임과의 정수 관계에서 왔다. 높은 레이트의 실익은 필터 설계와 처리 여유다.
- 양자화 SNR ≈ 6.02N + 1.76 dB. 작은 신호에서는 오차가 왜곡이 되므로 TPDF 디더(±1 LSB)로 오차를 신호와 독립인 잡음으로 바꾸고, 노이즈 셰이핑으로 잡음을 덜 들리는 대역에 옮긴다.
- 샘플 피크 ≠ 실제 피크. 트루 피크(48 kHz 입력의 4배 보간 예; 입력률·필터에 따른 추정 오차 있음)로 재고 −1 dBTP 이하를 지킨다.
- FFT 빈 폭은 \(f_s/N = 1/T\). 창 함수는 누설(사이드로브)과 해상도(주엽 폭)를 맞바꾸고, 영 채우기는 해상도를 높이지 않는다. 스펙트로그램의 창 길이는 시간·주파수 해상도를 동시에 정한다.
- LTI 시스템은 임펄스 응답의 컨볼루션이다. 유한 계수의 FIR은 안정하지만 선형 위상에는 대칭·반대칭 계수 조건 등이 필요하다. 선형 위상도 크기 응답 변화가 있으면 모든 파형을 그대로 보존하지는 않는다. IIR(바이쿼드)은 적은 계산으로 날카롭다. RBJ 쿡북 공식이 업계 표준 EQ 계수다.
- 지연 + 합 = 콤 필터(빗살 간격 1/τ). 지연을 흔들면 플랜저·코러스, 되먹임 콤 병렬 + 올패스 직렬은 슈뢰더 리버브, 측정한 IR과 컨볼루션하면 컨볼루션 리버브.
- 컴프레서 = 정적 곡선(문턱·비율·니) + 시간 상수(어택·릴리스). 음량 비교는 반드시 같은 라우드니스에서: 방송 −23 LUFS(EBU R128), 스트리밍 약 −14 LUFS. 지연은 버퍼/샘플레이트.
확인 퀴즈
fs = 44.1 kHz로 샘플링할 때(안티에일리어싱 필터 없음) 30 kHz 초음파 성분은 어디에 나타나는가?
24비트 녹음을 16비트로 내릴 때 TPDF 디더를 더하는 가장 중요한 이유는?
fs = 48 kHz에서 1 Hz 간격으로 떨어진 두 사인파를 FFT로 분리하려면 대략 최소 몇 개의 샘플(직사각 창 기준)이 필요한가?
지연 2 ms의 앞먹임 콤 필터 y[n] = x[n] + x[n − D]에서 첫 번째 골(notch) 주파수는?
슈뢰더 리버브에서 지연 40 ms인 콤 필터로 RT60 = 2 s를 만들려면 되먹임 이득 g는?
문턱 −20 dB, 비율 4:1, 하드 니 컴프레서에 −8 dB 피크가 들어오면 (메이크업 없이) 출력과 이득 감소는?