안티에일리어싱
한 줄 요약 — 나이퀴스트 주파수(Nyquist frequency) 위의 성분은 되돌릴 수 없게 저주파로 접혀 들어옵니다. 반드시 아날로그에서 막아야 합니다.
에일리어싱
샘플링 주파수 로 샘플링하면, 주파수 의 신호는 다음 주파수들과 구분되지 않습니다:
f주파수frequencyHzf_s샘플링 주파수sampling frequencyHz예
= 10 kHz로 샘플링할 때:
| 입력 주파수 | 나타나는 주파수 |
|---|---|
| 3 kHz | 3 kHz ✅ |
| 5 kHz (나이퀴스트) | 5 kHz (경계) |
| 7 kHz | 3 kHz ❌ (접힘) |
| 12 kHz | 2 kHz ❌ |
| 60 Hz + 10 kHz 성분 | 60 Hz + 0 Hz(DC) ❌ |
⚠️ 한 번 접히면 디지털에서 절대 분리할 수 없습니다. 3 kHz 실제 신호와 7 kHz가 접힌 것이 완전히 동일하게 보입니다.
나이퀴스트 정리
f_max최대 주파수maximum frequencyHzf_s샘플링 주파수sampling frequencyHz하지만 실무에서는 훨씬 여유를 둡니다:
| 배수 | 상황 |
|---|---|
| 2× | 이론적 최소 (완벽한 필터 가정) |
| 2.5~4× | 일반적 |
| 5~10× | 실용적 권장 — 필터 부담 감소 |
| 10~100× | 오버샘플링 (분해능(resolution)분해능 resolutionADC 가 구분할 수 있는 가장 작은 전압 차이로, 비트 수와 기준전압으로 정해집니다.자세히 보기 → 향상까지) |
★ 필요한 감쇠량
에일리어싱(aliasing) 성분이 ADC의 잡음 바닥잡음 플로어 noise floor신호가 없을 때 남아 있는 잡음의 크기로, 이보다 작은 신호는 아무리 증폭해도 안 보입니다.자세히 보기 → 아래로 내려가야 합니다.
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 |
감쇠가 필요한 주파수: (신호 대역으로 접히는 최저 주파수)
필터 차수 결정
A_req이득 (req)gain (req)f_sig신호 주파수signal frequencyHzf_s샘플링 주파수sampling frequencyHzn비트 수 또는 개수number of bits or count계산 표 (12비트, 74 dB 기준)
| dB/차수 | 필요 차수 | |||
|---|---|---|---|---|
| 5 kHz | 20 kHz | 4 | 9.5 | 8차 |
| 5 kHz | 50 kHz | 10 | 19.1 | 4차 |
| 5 kHz | 100 kHz | 20 | 25.6 | 3차 |
| 5 kHz | 500 kHz | 100 | 39.9 | 2차 |
| 5 kHz | 5 MHz | 1000 | 60 | 2차 (여유) |
오버샘플링(oversampling)이 필터 차수를 극적으로 줄입니다. 이것이 현대 설계의 표준 접근입니다.
★ 오버샘플링의 추가 이점
1. 필터 단순화 (위 표)
2. 분해능 향상
오버샘플링 비율 OSR로 평균하면:
n비트 수 또는 개수number of bits or count| OSR | 추가 비트 |
|---|---|
| 4 | 1비트 |
| 16 | 2비트 |
| 64 | 3비트 |
| 256 | 4비트 |
⚠️ 조건: 양자화 잡음(quantization noise)이 백색이어야 합니다. 신호가 완전히 정적이면 오버샘플링해도 같은 값만 나와 개선이 없습니다. 이때는 디더(dither) — 작은 잡음을 일부러 더하는 기법 — 를 씁니다. 실제 측정에서는 자연 잡음이 디더 역할을 합니다.
3. 디지털 필터의 자유
디지털에서는 선형 위상(phase) FIR 필터를 쓸 수 있어 파형이 왜곡되지 않습니다. 아날로그 필터로는 얻기 어려운 특성입니다.
⚠️ 잊기 쉬운 함정
1. 필터의 고주파 누설
살렌-키 필터는 고주파에서 감쇠가 멈춥니다 (7-05). 샘플링 주파수 근처에서 실제 감쇠를 확인하세요.
대책: 앞에 간단한 패시브 RC를 하나 더 두면 확실합니다.
2. 광대역 노이즈의 접힘
신호가 아니어도 노이즈가 접힙니다. 대역폭(bandwidth) 1 MHz의 증폭기 출력을 10 kHz로 샘플링하면, 1 MHz까지의 모든 잡음이 접혀 들어와 잡음이 = 10배가 됩니다.
안티에일리어싱 필터(anti-aliasing filter)는 신호뿐 아니라 잡음의 접힘도 막습니다. 이것이 종종 더 중요합니다.
3. 멀티플렉싱 시스템
멀티플렉스 ADC에서 채널당 실효 샘플링률은 전체의 1/N입니다. 안티에일리어싱은 채널당 샘플링률 기준으로 설계해야 하고, 필터는 멀티플렉서(multiplexer) 앞에 채널마다 있어야 합니다.
채널마다 자기 필터를 하나씩 가지고, 필터를 지난 뒤에야 MUX로 모입니다.
멀티플렉서 뒤에 필터를 두면 소용없습니다 — 이미 각 채널이 자기 샘플링률로 샘플링된 뒤입니다.
⚠️ 이것이 다채널 시스템에서 부품 수가 폭증하는 이유 중 하나입니다. 채널마다 필터가 필요합니다. → 16-01
시뮬레이션으로 확인
# 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}= 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% 변동 → 이동 |
연습문제
문제 1. 1 kHz 신호를 12비트로 측정합니다. = 10 kSPS일 때 필요한 필터 차수는?
exercises/10-04-filter-order.yaml풀이
f_sig신호 주파수signal frequencyHzf_s샘플링 주파수sampling frequencyHzn비트 수 또는 개수number of bits or count문제 2. 위 문제에서 를 100 kSPS로 올리면?
풀이
n비트 수 또는 개수number of bits or count추가 이득: OSR = 100/2 = 50 → 비트 향상. 12비트 ADC로 약 14.8비트 실효 분해능.
대가: 데이터량 10배, ADC 속도 10배.
문제 3. 64채널을 멀티플렉스로 읽습니다. 전체 ADC 속도는 640 kSPS, 각 채널 신호 대역은 1 kHz입니다. 안티에일리어싱 필터를 어떻게 설계합니까?
exercises/10-04-mux-antialiasing.yaml풀이
채널당 실효 샘플링률:
따라서 채널당 10 kSPS 기준으로 설계합니다.
n비트 수 또는 개수number of bits or count필터 위치: 반드시 멀티플렉서 앞, 채널마다.
문제: 4차 필터 × 64채널 = OP앰프 128개. 비현실적입니다.
실무적 대안:
- 오버샘플링 — ADC를 6.4 MSPS로 올리면 채널당 100 kSPS → 2차면 충분 (OP앰프 64개). 여전히 많지만 절반
- 패시브 RC 1차 + 오버샘플링 — 채널당 1 MSPS면 1차 RC(저항 1개+커패시터(capacitor) 1개)로도 충분. OP앰프 0개 ✅
- 채널 그룹화 — 8채널씩 8그룹, 그룹마다 ADC. 채널당 샘플링률이 8배 올라감
- 시그마-델타 ADC 채널당 배치 — 내장 오버샘플링으로 아날로그 필터 최소화
- 대역이 좁으면 필터 없이 오버샘플링 + 디지털 필터
결론: 다채널 시스템에서는 “채널당 아날로그 필터”가 비용을 지배하므로, 오버샘플링으로 필터를 최대한 단순화(패시브 RC 1차)하는 것이 표준 전략입니다.
이것이 16-01의 액티브 어레이에서 각 픽셀에 복잡한 필터를 넣지 않고, 대신 매우 빠른 멀티플렉싱(τ≈20 ns)으로 오버샘플링하는 설계 선택의 배경입니다.
이전 ← 03 ADC 입력 설계 | 다음 → 05 PWM과 구동