안티에일리어싱

한 줄 요약 — 나이퀴스트 주파수(Nyquist frequency) 위의 성분은 되돌릴 수 없게 저주파로 접혀 들어옵니다. 반드시 아날로그에서 막아야 합니다.


에일리어싱

샘플링 주파수 fsf_s로 샘플링하면, 주파수 ff의 신호는 다음 주파수들과 구분되지 않습니다:

f,∣fs−f∣,∣fs+f∣,∣2fs−f∣,…f, \quad |f_s - f|, \quad |f_s + f|, \quad |2f_s - f|, \ldots
기호
f주파수frequencyHz
f_s샘플링 주파수sampling frequencyHz

예

fsf_s = 10 kHz로 샘플링할 때:

입력 주파수나타나는 주파수
3 kHz3 kHz ✅
5 kHz (나이퀴스트)5 kHz (경계)
7 kHz3 kHz ❌ (접힘)
12 kHz2 kHz ❌
60 Hz + 10 kHz 성분60 Hz + 0 Hz(DC) ❌

⚠️ 한 번 접히면 디지털에서 절대 분리할 수 없습니다. 3 kHz 실제 신호와 7 kHz가 접힌 것이 완전히 동일하게 보입니다.


나이퀴스트 정리

fs>2fmaxf_s > 2f_{max}
기호
f_max최대 주파수maximum frequencyHz
f_s샘플링 주파수sampling frequencyHz

하지만 실무에서는 훨씬 여유를 둡니다:

배수상황
2×이론적 최소 (완벽한 필터 가정)
2.5~4×일반적
5~10×실용적 권장 — 필터 부담 감소
10~100×오버샘플링 (분해능(resolution)분해능 resolutionADC 가 구분할 수 있는 가장 작은 전압 차이로, 비트 수와 기준전압으로 정해집니다.1 LSB=Vref/2n1\,\mathrm{LSB} = V_{ref}/2^n자세히 보기 → 향상까지)

★ 필요한 감쇠량

에일리어싱(aliasing) 성분이 ADC의 잡음 바닥잡음 플로어 noise floor신호가 없을 때 남아 있는 잡음의 크기로, 이보다 작은 신호는 아무리 증폭해도 안 보입니다.자세히 보기 → 아래로 내려가야 합니다.

Areq=6.02n+1.76 [dB]A_{req} = 6.02n + 1.76\ [\text{dB}]
기호
A_req이득 (req)gain (req)
n비트 수 또는 개수number of bits or count
분해능필요 감쇠
8비트50 dB
10비트62 dB
12비트74 dB
14비트86 dB
16비트98 dB

감쇠가 필요한 주파수: fs−fsignalf_s - f_{signal} (신호 대역으로 접히는 최저 주파수)


필터 차수 결정

n≥Areq20log⁡10(fs−fsigfsig)n \geq \frac{A_{req}}{20\log_{10}\left(\dfrac{f_s-f_{sig}}{f_{sig}}\right)}
기호
A_req이득 (req)gain (req)
f_sig신호 주파수signal frequencyHz
f_s샘플링 주파수sampling frequencyHz
n비트 수 또는 개수number of bits or count

계산 표 (12비트, 74 dB 기준)

fsigf_{sig}fsf_sfs/fsigf_s/f_{sig}dB/차수필요 차수
5 kHz20 kHz49.58차
5 kHz50 kHz1019.14차
5 kHz100 kHz2025.63차
5 kHz500 kHz10039.92차
5 kHz5 MHz1000602차 (여유)

오버샘플링(oversampling)이 필터 차수를 극적으로 줄입니다. 이것이 현대 설계의 표준 접근입니다.


★ 오버샘플링의 추가 이점

1. 필터 단순화 (위 표)

2. 분해능 향상

오버샘플링 비율 OSR로 평균하면:

Δn=log⁡2(OSR)2 비트\Delta n = \frac{\log_2(\text{OSR})}{2}\ \text{비트}
기호
n비트 수 또는 개수number of bits or count
OSR추가 비트
41비트
162비트
643비트
2564비트

⚠️ 조건: 양자화 잡음(quantization noise)이 백색이어야 합니다. 신호가 완전히 정적이면 오버샘플링해도 같은 값만 나와 개선이 없습니다. 이때는 디더(dither) — 작은 잡음을 일부러 더하는 기법 — 를 씁니다. 실제 측정에서는 자연 잡음이 디더 역할을 합니다.

3. 디지털 필터의 자유

디지털에서는 선형 위상(phase) FIR 필터를 쓸 수 있어 파형이 왜곡되지 않습니다. 아날로그 필터로는 얻기 어려운 특성입니다.


⚠️ 잊기 쉬운 함정

1. 필터의 고주파 누설

살렌-키 필터는 고주파에서 감쇠가 멈춥니다 (7-05). 샘플링 주파수 근처에서 실제 감쇠를 확인하세요.

대책: 앞에 간단한 패시브 RC를 하나 더 두면 확실합니다.

2. 광대역 노이즈의 접힘

신호가 아니어도 노이즈가 접힙니다. 대역폭(bandwidth) 1 MHz의 증폭기 출력을 10 kHz로 샘플링하면, 1 MHz까지의 모든 잡음이 접혀 들어와 잡음이 100\sqrt{100} = 10배가 됩니다.

안티에일리어싱 필터(anti-aliasing filter)는 신호뿐 아니라 잡음의 접힘도 막습니다. 이것이 종종 더 중요합니다.

3. 멀티플렉싱 시스템

멀티플렉스 ADC에서 채널당 실효 샘플링률은 전체의 1/N입니다. 안티에일리어싱은 채널당 샘플링률 기준으로 설계해야 하고, 필터는 멀티플렉서(multiplexer) 앞에 채널마다 있어야 합니다.

채널마다 자기 필터를 하나씩 가지고, 필터를 지난 뒤에야 MUX로 모입니다.

채널 1 · 2 · 3 … (각각 별도 배선)필터 (채널마다 1개)★ 여기가 MUX 앞이어야 한다MUX채널을 하나씩 골라 통과ADC

멀티플렉서 뒤에 필터를 두면 소용없습니다 — 이미 각 채널이 자기 샘플링률로 샘플링된 뒤입니다.

⚠️ 이것이 다채널 시스템에서 부품 수가 폭증하는 이유 중 하나입니다. 채널마다 필터가 필요합니다. → 16-01


시뮬레이션으로 확인

안티에일리어싱 필터 (2차, 5kHz) 회로도R110kΩR210kΩC14.7nFVIN1VC22.2nFVP3.3VU1OPA320VCCVCCINMIDINPOUTGND
안티에일리어싱 필터 (2차, 5kHz)워크벤치에서 열기 →
# examples/10-mcu-interfacing/antialiasing.yaml
meta:
  name: 안티에일리어싱 필터 (2차, 5kHz)
  lesson: docs/10-mcu-interfacing/04-antialiasing.md
components:
  - {ref: VP,  type: vdc, value: 3.3}
  - {ref: VIN, type: vac, value: 1}
  - {ref: R1,  type: r, value: 10k}
  - {ref: R2,  type: r, value: 10k}
  - {ref: C1,  type: c, value: 4.7n}
  - {ref: C2,  type: c, value: 2.2n}
  - {ref: U1,  type: opamp, model: OPA320}
nets:
  VCC: [VP.p, U1.'v+']
  IN:  [VIN.p, R1.1]
  MID: [R1.2, R2.1, C1.1]
  INP: [R2.2, C2.1, U1.'in+']
  OUT: [U1.out, U1.'in-', C1.2]
  GND: [VP.n, VIN.n, C2.2, U1.'v-']
analyses:
  - {type: ac, sweep: dec, points: 50, fstart: 100, fstop: 10MEG}
expect:
  - {measure: gain_db, node: OUT, at: 5k,   analysis: ac, value: -3,  tol: 1.5}
  - {measure: gain_db, node: OUT, at: 95k,  analysis: ac, max: -50}

fsf_s = 100 kHz라면 95 kHz에서의 감쇠가 중요합니다. 2차로 −50 dB 정도 나오는지 확인하세요 (12비트에는 부족 → 오버샘플링 또는 차수 증가 필요).


⚖️ 부품 트레이드오프

선택✅ 좋아지는 것⚠️ 나빠지는 것
높은 샘플링률 (오버샘플링)필터 차수↓, 분해능↑, 디지털 필터 자유ADC 전력·비용↑, 데이터량↑, 처리 부담
높은 필터 차수낮은 샘플링률로 가능부품↑, 위상 왜곡↑, 잡음↑, 부품 오차 감도↑
베셀 필터파형 보존차단(cutoff) 완만 → 차수↑ 또는 오버샘플링 필요
버터워스급격한 차단파형 왜곡(링잉(ringing))
필터를 생략부품 0에일리어싱 — 되돌릴 수 없음 ❌

⚠️ “디지털에서 필터링하면 되지 않나?” 는 안 됩니다. 에일리어싱은 샘플링 순간에 이미 발생하므로 이후 어떤 처리로도 복구할 수 없습니다. 반드시 아날로그에서 막아야 합니다.


🔌 실제 쓰임새

시스템구성
생체 신호 (5 kHz 대역)4차 베셀 5 kHz + 30 kSPS
또는2차 5 kHz + 200 kSPS + 디지털 데시메이션(decimation) ← 권장
오디오시그마-델타(sigma-delta) ADC (내장 오버샘플링)
진동 측정대역에 맞는 LPF
온도 (느림)RC 하나면 충분
다채널 어레이채널마다 필터 (MUX 앞)

⚠️ 이상과 실제의 차이

이상실제
필터가 완벽히 차단유한한 롤오프, 고주파 누설
나이퀴스트만 지키면 됨실용적으로 5~10배 필요
신호만 접힘노이즈도 접힘
필터 위치 무관멀티플렉서 앞이어야 함
부품 값이 정확±10~20% 변동 → fcf_c 이동

연습문제

문제 1. 1 kHz 신호를 12비트로 측정합니다. fsf_s = 10 kSPS일 때 필요한 필터 차수는?

exercises/10-04-filter-order.yaml
풀이 fs−fsigfsig=91=9⇒20log⁡109=19.1 dB/차수\frac{f_s-f_{sig}}{f_{sig}} = \frac{9}{1} = 9 \Rightarrow 20\log_{10}9 = 19.1\ \text{dB/차수}
기호
f_sig신호 주파수signal frequencyHz
f_s샘플링 주파수sampling frequencyHz
n≥7419.1=3.9→4차n \geq \frac{74}{19.1} = 3.9 \rightarrow \textbf{4차}
기호
n비트 수 또는 개수number of bits or count

문제 2. 위 문제에서 fsf_s를 100 kSPS로 올리면?

연습 10-04-1·2 — 오버샘플링이 필터 차수를 사 준다 회로도R15.6kΩ차단 2.8 kHzR25.6kΩC120nFR35.6kΩVS1VC25nFC310nFVP5VVN-5VU1OPA320VCCVCCVEEVEEINA1A2S2OUTGND
연습 10-04-1·2 — 오버샘플링이 필터 차수를 사 준다워크벤치에서 열기 →
풀이 991=99⇒20log⁡1099=39.9 dB/차수\frac{99}{1} = 99 \Rightarrow 20\log_{10}99 = 39.9\ \text{dB/차수} n≥7439.9=1.85→2차n \geq \frac{74}{39.9} = 1.85 \rightarrow \textbf{2차}
기호
n비트 수 또는 개수number of bits or count

추가 이득: OSR = 100/2 = 50 → log⁡2(50)/2≈2.8\log_2(50)/2 \approx 2.8비트 향상. 12비트 ADC로 약 14.8비트 실효 분해능.

대가: 데이터량 10배, ADC 속도 10배.

문제 3. 64채널을 멀티플렉스로 읽습니다. 전체 ADC 속도는 640 kSPS, 각 채널 신호 대역은 1 kHz입니다. 안티에일리어싱 필터를 어떻게 설계합니까?

exercises/10-04-mux-antialiasing.yaml
풀이

채널당 실효 샘플링률:

640 kSPS64=10 kSPS\frac{640\ \text{kSPS}}{64} = 10\ \text{kSPS}

따라서 채널당 10 kSPS 기준으로 설계합니다.

10−11=9⇒19.1 dB/차수,n≥7419.1=3.9→4차\frac{10-1}{1} = 9 \Rightarrow 19.1\ \text{dB/차수}, \quad n \geq \frac{74}{19.1} = 3.9 \rightarrow \textbf{4차}
기호
n비트 수 또는 개수number of bits or count

필터 위치: 반드시 멀티플렉서 앞, 채널마다.

채널 1 ~ 채널 64 (64개 배선)4차 LPF × 64개★ 채널마다 하나씩 — 여기가 비용 폭발 지점64:1 MUXADC 640 kSPS채널당 실효 10 kSPS

문제: 4차 필터 × 64채널 = OP앰프 128개. 비현실적입니다.

실무적 대안:

  1. 오버샘플링 — ADC를 6.4 MSPS로 올리면 채널당 100 kSPS → 2차면 충분 (OP앰프 64개). 여전히 많지만 절반
  2. 패시브 RC 1차 + 오버샘플링 — 채널당 1 MSPS면 1차 RC(저항 1개+커패시터(capacitor) 1개)로도 충분. OP앰프 0개 ✅
  3. 채널 그룹화 — 8채널씩 8그룹, 그룹마다 ADC. 채널당 샘플링률이 8배 올라감
  4. 시그마-델타 ADC 채널당 배치 — 내장 오버샘플링으로 아날로그 필터 최소화
  5. 대역이 좁으면 필터 없이 오버샘플링 + 디지털 필터

결론: 다채널 시스템에서는 “채널당 아날로그 필터”가 비용을 지배하므로, 오버샘플링으로 필터를 최대한 단순화(패시브 RC 1차)하는 것이 표준 전략입니다.

이것이 16-01의 액티브 어레이에서 각 픽셀에 복잡한 필터를 넣지 않고, 대신 매우 빠른 멀티플렉싱(τ≈20 ns)으로 오버샘플링하는 설계 선택의 배경입니다.


이전 ← 03 ADC 입력 설계 | 다음 → 05 PWM과 구동