Chapter 06

연속을 격자로 자르기

마이크 앞의 공기 압력은 매 순간 연속적으로 변하고, 렌즈가 센서에 맺는 상도 위치에 따라 연속적으로 변합니다. 컴퓨터는 그중 유한 개의 숫자만 기억할 수 있습니다. 그렇다면 디지털로 옮기는 순간 무언가를 반드시 잃어야 할까요? 놀랍게도 답은 "조건만 맞으면 하나도 잃지 않는다"입니다. 이 장은 그 조건이 무엇인지, 조건을 어기면 어떤 유령이 나타나는지(거꾸로 도는 바퀴, 셔츠 위의 물결무늬, 사진 속 무지개색 얼룩), 그리고 공학이 그 유령을 어떻게 막는지를 따라갑니다.

이 수식이 없었다면CD와 디지털 오디오 (44.1 kHz · 16비트)

음악은 연속 파형입니다. 1초 동안의 파형을 "완벽하게" 적으려면 무한히 많은 순간의 값이 필요해 보입니다. 그런데 표본화 정리는, 신호에 \(B\) 이상의 주파수가 없다면 1초에 \(2B\)보다 조금 많은 값만 적어도 원래 파형을 정확히 되살릴 수 있다고 말합니다. 사람의 가청 한계는 대략 20 kHz이므로 40 kHz에 필터 여유를 더한 44.1 kHz면 충분합니다. 44,100이라는 숫자 자체는 초기 디지털 녹음이 PCM 어댑터로 비디오테이프에 기록하던 시절의 흔적으로 알려져 있습니다(NTSC 60필드 × 245줄 × 3샘플 = PAL 50필드 × 294줄 × 3샘플 = 44,100).

연속 파형→무한한 정보?→표본화 정리 + 양자화→초당 44,100 × 16비트 × 2채널 = 1,411.2 kbit/s

영화 속 바퀴는 왜 거꾸로 도는가

촬영 현장의 문제

서부영화의 마차 바퀴, 자동차 광고의 휠이 화면에서 느리게 멈추거나 심지어 거꾸로 돕니다. 카메라는 고장 나지 않았고 바퀴도 정상입니다. 무엇이 잘못됐을까요?

영화 카메라는 1초에 24장(24 fps)의 사진을 찍습니다. 즉 바퀴의 움직임을 연속으로 보지 않고 \(1/24\)초마다 한 번씩만 봅니다. 그런데 살이 \(N\)개인 바퀴는 \(360°/N\)만큼 돌면 원래 모습과 구별되지 않습니다. 살 5개짜리 휠이 한 프레임 사이에 72° 돌았다면 사진은 정지한 바퀴와 똑같습니다. 70° 돌았다면? 뇌는 "앞으로 70° 돌았다"와 "뒤로 2° 돌았다" 중 더 작은 움직임을 고릅니다. 그래서 바퀴는 천천히 거꾸로 도는 것처럼 보입니다.

프레임 0실제 0°프레임 1실제 80°프레임 2실제 160°실제 +80°겉보기 −10°실제 +80°겉보기 −10°
그림 6-1. 살 4개(대칭 주기 90°)인 바퀴가 프레임마다 시계 방향으로 80°씩 돈다. 주황색 살 하나만 보면 앞으로 가지만, 모든 살이 똑같이 생겼으므로 눈은 바로 앞 프레임에서 가장 가까웠던 살(점선)을 이어 붙인다. 그 결과 바퀴는 프레임마다 10°씩 반시계 방향으로 도는 것처럼 보인다.

이를 식으로 쓰면, 프레임 사이 실제 회전각 \(\Delta\theta\)와 대칭 주기 \(\Theta = 360°/N\)에 대해 겉보기 회전은 \(\Theta\)의 정수배를 빼서 \([-\Theta/2, \Theta/2]\) 구간으로 접은 값입니다.

$$\Delta\theta_{\text{app}} = \Delta\theta - \Theta\cdot\operatorname{round}\!\left(\frac{\Delta\theta}{\Theta}\right),\qquad \Delta\theta = \frac{360°\cdot r}{F},\quad \Theta = \frac{360°}{N}$$
\(r\): 실제 회전 속도(회/s), \(F\): 프레임률(fps), \(N\): 살 개수. 겉보기 속도는 \(r_{\text{app}} = F\,\Delta\theta_{\text{app}}/360°\). 이 '반올림해서 빼기'가 이 장 전체에서 반복될 접힘(folding) 연산이다.

구체적인 숫자로 봅시다. 지름 65 cm 타이어로 시속 60 km를 달리면 초당 약 8.16바퀴, 24 fps 카메라로는 프레임당 약 122.4°를 돕니다.

살 개수 N대칭 주기 Θ겉보기 회전 / 프레임겉보기 속도화면에서
490°+32.4°+2.16 회/s느리게 정방향
572°−21.6°−1.44 회/s거꾸로 돈다
660°+2.4°+0.16 회/s거의 멈춤
SIMULATOR

수레바퀴 효과: 회전 속도 × 프레임률

카메라가 본 바퀴
실제 속도 → 겉보기 속도
재생 속도
실제 회전/프레임—
겉보기 회전/프레임—
겉보기 속도—
판정—
해볼 것: ① 실제 속도를 0에서 천천히 올리면 오른쪽 그래프의 톱니처럼 겉보기 속도가 올라가다 갑자기 음수로 뒤집히는 것을 본다. ② '멈춰 보이게' 버튼으로 \(r = F/N\)을 맞춘 뒤, 살 하나에 표시를 켜면 표시된 살만 움직이는 것을 확인한다(대칭이 깨지면 접힘 주기가 \(360°/N\)에서 \(360°\)로 커진다). ③ 실제 바퀴 겹쳐 보기를 켜고 1×로 보면 점선 바퀴도 이상하게 보인다. 여러분의 모니터 역시 60 Hz 안팎으로 샘플링하기 때문이다. 1/20×로 늦추면 진짜 움직임이 보인다. · 모델: 셔터가 아주 짧아 모션 블러가 없는 이상적 카메라. 지각은 '가장 작은 움직임'을 고른다고 가정했다. 실제 영화 카메라는 셔터가 열려 있는 동안 흐림이 생겨 효과가 약해지기도 한다.
버그가 아니라 계측기 이 효과를 일부러 쓰는 장치가 스트로보스코프입니다. 깜박이는 빛의 주파수를 조절해 회전체가 멈춰 보이게 하면, 그 순간 깜박임 주파수 × (대칭 주기) = 회전 속도입니다. 아날로그 턴테이블 가장자리의 점무늬도 같은 원리로, 전원 주파수에 맞춰 깜박이는 조명 아래에서 점이 멈춰 보이면 회전 속도가 정확하다는 뜻입니다.

이 절의 교훈은 한 줄입니다. 일정 간격으로만 보는 관측자는 움직임을 '한 주기의 정수배만큼' 구별하지 못한다. 바퀴에서는 각도가 \(360°/N\)의 배수만큼 모호했습니다. 다음 절에서 이것이 주파수에서는 \(f_s\)의 배수만큼의 모호함이 된다는 것을 봅니다.

사인파를 샘플링하면: 에일리어싱과 주파수 접힘

전화선 너머의 휘파람

유선 전화(PCM 전화망)는 목소리를 초당 8,000번 샘플링합니다. 수화기 앞에서 7 kHz 휘파람을 불면 상대방에게는 어떤 소리가 들릴까요? 아무 소리도 안 들리는 것이 아니라, 1 kHz 소리가 들립니다. 실제 전화기에는 이를 막는 필터가 있지만, 필터가 없다면 그렇게 됩니다.

샘플링 주파수 \(f_s\)(샘플 간격 \(T = 1/f_s\))로 사인파 \(\sin(2\pi f t)\)를 찍으면 \(n\)번째 숫자는 \(x[n] = \sin(2\pi f n/f_s)\)입니다. 이제 주파수를 \(f_s\)만큼 올려 봅시다.

$$\sin\!\left(2\pi\,(f + k f_s)\,\tfrac{n}{f_s}\right) = \sin\!\left(2\pi f\tfrac{n}{f_s} + 2\pi k n\right) = \sin\!\left(2\pi f\tfrac{n}{f_s}\right)$$
\(k n\)은 정수이므로 \(2\pi kn\)만큼의 위상은 사라진다. 바퀴에서 \(360°/N\)이 사라졌던 것과 같다. 또 \(\sin(2\pi(f_s - f)n/f_s) = -\sin(2\pi f n/f_s)\)이므로 \(f_s - f\)도 \(f\)와 (부호만 다른) 같은 숫자열을 만든다.

즉 샘플링된 숫자만 보고는 \(f\), \(f_s - f\), \(f_s + f\), \(2f_s - f\), … 를 구별할 수 없습니다. 이 주파수들은 서로의 에일리어스(alias, 가명)입니다. 그중 가장 낮은 것, 즉 \(0\)과 \(f_s/2\) 사이에 있는 것이 재생할 때 실제로 들리는 주파수입니다.

01 s (샘플 10개)
그림 6-2. 9 Hz 사인파(회색 실선)를 초당 10번(파란 점) 샘플링했다. 같은 점들을 1 Hz 사인파(주황 점선, 부호 반전)도 정확히 지난다. 숫자열만 받은 재생기는 둘을 구별할 방법이 없고, 가장 낮은 주파수인 1 Hz를 재생한다.
$$f_{\text{alias}} = \left| f - k f_s \right|,\qquad k = \operatorname{round}\!\left(\frac{f}{f_s}\right),\qquad 0 \le f_{\text{alias}} \le \frac{f_s}{2}$$
\(f_s/2\)를 나이퀴스트 주파수(Nyquist frequency)라 부른다. 예: \(f_s = 8\) kHz에서 7 kHz → 1 kHz, 9 kHz → 1 kHz. \(f_s = 44.1\) kHz에서 25 kHz 초음파 → 19.1 kHz(들린다!).

입력 주파수를 0부터 올리면서 보이는 주파수를 그리면, 종이를 \(f_s/2\)마다 아코디언처럼 접은 모양이 됩니다. 그래서 에일리어싱을 주파수 접힘(frequency folding)이라고도 합니다.

0fs/2fs3fs/22fs5fs/23fsfs/2기저대역입력 주파수 f모두 0.2fs로 보인다
그림 6-3. 주파수 접힘. 가로축은 입력 주파수, 세로축은 샘플링 후 보이는 주파수. 파란 띠(기저대역, 0~fs/2)만 정직하게 보이고, 그 위의 띠들은 번갈아 뒤집혀 기저대역으로 접혀 들어온다. 0.2fs, 0.8fs, 1.2fs, 1.8fs, 2.2fs가 모두 0.2fs로 보인다.
SIMULATOR

사인파 샘플링과 에일리어스 (소리 포함)

듣기 (음량 낮게 시작)
보이는(들리는) 주파수—
나이퀴스트 fs/2—
한 주기당 샘플 수—
접힘 구간—
위 그래프는 샘플 16개 구간의 원 신호(회색), 샘플(파란 점), 샘플만으로 재구성되는 신호(주황 점선). 아래 그래프는 그림 6-3의 접힘 지도에서 현재 입력이 어디로 접히는지 보여 준다. 해볼 것: ① fs = 8 kHz에서 f를 3 kHz → 4 kHz → 5 kHz로 올리면 들리는 주파수가 4 kHz에서 꺾여 내려온다. ② '처프 (샘플 후)'를 들으면 올라가던 음이 나이퀴스트에서 꺾여 내려왔다 다시 올라간다. fs를 44.1 kHz로 바꾸면 꺾이지 않는다. ③ f = fs/2 근처에서 샘플 점이 거의 0 근처에 몰리는 위치가 있는지 본다(다음 절의 복선). · 모델: 샘플은 순간값(이상적 샘플러), 재구성은 이상적 저역통과(sinc) 재구성. 소리는 재구성 결과를 수식으로 합성해 들려준다(처프는 순간 주파수를 접어서 위상을 적분).
되돌릴 수 없다 에일리어싱은 샘플링이 끝난 뒤에는 고칠 수 없습니다. 7 kHz 휘파람이 1 kHz로 접힌 숫자열은 원래부터 1 kHz였던 숫자열과 비트 하나까지 똑같기 때문입니다. 어떤 디지털 신호처리도 둘을 구별할 정보가 없습니다. 그래서 대책은 반드시 샘플링 전(4절)에 있어야 합니다.

나이퀴스트–섀넌 표본화 정리: 점 사이를 어떻게 아는가

샘플 사이의 빈칸

CD에는 1/44,100초 간격의 숫자만 있습니다. 스피커는 그 사이의 매 순간에도 어떤 전압을 내야 합니다. 점들을 직선으로 이으면 될까요? 계단으로 이으면? 점들을 지나는 곡선은 무한히 많은데, 그중 무엇이 "원래" 파형일까요?

답의 열쇠는 가정입니다. 주어진 점을 지나는 곡선은 무한히 많지만, "\(B\)보다 높은 주파수를 포함하지 않는다"는 조건을 붙이면 2절에서 본 에일리어스들(모두 \(f_s/2\) 위에 있다)이 전부 탈락하고 단 하나만 남습니다. 이것을 주파수 영역에서 보면 더 분명합니다. 5장(푸리에)에서 본 것처럼, 일정 간격으로 샘플링하는 것은 신호에 임펄스 열(빗, comb)을 곱하는 것이고, 시간의 곱은 주파수의 합성곱이므로 스펙트럼이 \(f_s\) 간격으로 복사됩니다.

$$x_s(t) = x(t)\sum_{n} \delta(t - nT) \quad\Longleftrightarrow\quad X_s(f) = \frac{1}{T}\sum_{k} X(f - k f_s)$$
샘플링된 신호의 스펙트럼은 원래 스펙트럼 \(X(f)\)를 \(f_s\)마다 복사해 겹쳐 놓은 것이다. 2절의 "f와 f + kfs를 구별할 수 없다"를 주파수 영역에서 쓴 식이다.
−3fs−2fs−fs0fs2fs3fsfs/2(a) B < fs/2 : 복사본이 떨어져 있다−3fs−2fs−fs0fs2fs3fsfs/2(b) B > fs/2 : 복사본이 겹친다 = 에일리어싱
그림 6-4. 대역폭 \(B\)인 신호를 샘플링한 스펙트럼. (a) \(f_s > 2B\)이면 복사본(주황) 사이에 틈이 있어, \(f_s/2\)에서 자르는 저역통과 필터로 원본(파랑)만 정확히 꺼낼 수 있다. (b) \(f_s < 2B\)이면 복사본의 꼬리가 기저대역에 겹쳐(빨간 영역) 어떤 필터로도 분리할 수 없다. 이것이 에일리어싱의 주파수 영역 그림이다.

그림 (a)에서 원본을 꺼내는 이상적 저역통과 필터의 임펄스 응답이 바로 sinc 함수입니다. 그래서 재구성 공식은 "각 샘플 위치에 그 샘플 값만큼 키운 sinc를 하나씩 놓고 모두 더하라"가 됩니다.

$$\boxed{\;x(t) = \sum_{n=-\infty}^{\infty} x[n]\,\operatorname{sinc}\!\left(\frac{t - nT}{T}\right),\qquad \operatorname{sinc}(u) = \frac{\sin \pi u}{\pi u}\;}\qquad \text{조건: } X(f) = 0 \text{ for } |f| \ge B,\; f_s > 2B$$
sinc(u)는 \(u = 0\)에서 1, 다른 모든 정수에서 0이다. 그래서 합은 샘플 점을 정확히 지나고, 샘플 사이는 대역 제한된 유일한 곡선으로 채워진다. 이 결과는 휘태커(E. T. Whittaker, 1915)의 보간 연구, 나이퀴스트(H. Nyquist, 1928)의 전신 대역폭 분석, 코텔니코프(V. Kotelnikov, 1933), 섀넌(C. Shannon, 1949)이 각각 정리해 여러 이름으로 불린다.
SIMULATOR

샘플을 끌어서 sinc 재구성 보기

가로축: 샘플 번호 n (= t/T)
점 잇는 방법
중앙부(|n|≤3) 최대 오차—
샘플 사이 값 x(0.5)—
상태—
주황 점(샘플)을 위아래로 끌면 파란 재구성 곡선이 즉시 바뀐다. 해볼 것: ① '임펄스 하나'에서 sinc 모양 자체와, 다른 정수 위치에서 정확히 0이 되는 것을 확인한다. ② '0.2 fs 사인'에서 sinc / 계단 / 직선을 바꿔 가며 원래 신호(점선)와의 오차를 비교한다. ③ 'fs/2 사인'과 '0.7 fs 사인'을 골라 sinc 재구성이 원래 신호와 어떻게 달라지는지 본다. · 모델: 샘플은 n = −6…6의 13개뿐이고 그 밖은 0으로 가정했다. 정리는 무한히 많은 샘플을 요구하므로 양 끝으로 갈수록 오차가 커진다(절단 효과).

왜 "2배"가 아니라 "2배보다 커야" 하는가

조건이 \(f_s \ge 2B\)가 아니라 \(f_s > 2B\)인 데는 이유가 있습니다. 정확히 \(f = f_s/2\)인 신호를 샘플링하면 한 주기에 샘플이 딱 2개 들어갑니다. 코사인이라면 꼭짓점을 찍어 +1, −1, +1, …이 남지만, 사인이라면 매번 0을 지나는 순간을 찍어 0, 0, 0, …만 남습니다. 위상에 따라 진폭이 \(\cos\varphi\)배로 줄어 보이고, 최악의 경우 신호 전체가 사라집니다.

cos(π n): 샘플 = +1, −1, +1, … 살아남음sin(π n): 샘플 = 0, 0, 0, … 사라짐
그림 6-5. 정확히 \(f_s/2\)의 신호. \(\cos(\pi n)\)은 ±1로 살아남지만 \(\sin(\pi n)\)은 모든 샘플이 0이다. 일반적으로 \(\cos(\pi t + \varphi)\)의 샘플은 \(\cos\varphi\cdot(-1)^n\)이 되어 진폭과 위상을 구별할 수 없다. 그래서 대역 끝은 반드시 \(f_s/2\)보다 아래에 있어야 한다.
현실의 재구성: DAC는 sinc를 쓰지 않는다 sinc는 양쪽으로 무한히 뻗어 있고 미래의 샘플까지 필요하므로 그대로는 만들 수 없습니다. 실제 DAC는 각 샘플 값을 다음 샘플까지 유지하는 계단(0차 유지, ZOH)을 냅니다. 그 주파수 응답은 \(\operatorname{sinc}(f/f_s)\)여서 \(f_s/2\)에서 약 −3.9 dB 처지고, 계단의 모서리는 \(f_s\) 주변의 복사본(이미지)을 남깁니다. 그래서 DAC 앞에서 디지털로 샘플률을 여러 배 올리는 오버샘플링 보간 필터를 쓰고, 뒤에 완만한 아날로그 재구성 필터를 둡니다. 시뮬레이터의 '계단'이 이 출력의 모양입니다.

안티앨리어싱 필터: 자르기 전에 걸러라

보이지 않는 손님

마이크 신호에는 사람이 못 듣는 성분도 섞여 있습니다. 심벌즈의 초음파 배음, 스위칭 전원과 무선 기기에서 새어 든 수십 kHz 잡음… 들리지 않으니 괜찮을까요? 44.1 kHz로 샘플링하는 순간 25 kHz 성분은 19.1 kHz로, 30 kHz 성분은 14.1 kHz로 접혀 들리는 대역 한가운데에 내려앉습니다.

2절의 경고대로 접힌 뒤에는 고칠 수 없으므로, 샘플러(ADC) 앞에 아날로그 저역통과 필터를 두어 \(f_s/2\) 위의 성분을 미리 없애야 합니다. 이것이 안티앨리어싱 필터(anti-aliasing filter)입니다. 문제는 그 필터가 얼마나 가팔라야 하느냐입니다. 44.1 kHz에서 20 kHz까지는 그대로 통과시키고, 들리는 대역(20 kHz 이하)으로 접혀 들어올 수 있는 가장 낮은 주파수 \(f_s - 20\text{ kHz} = 24.1\) kHz에서는 16비트의 잡음 수준(약 −96 dB) 아래로 깎아야 합니다. 2 kHz 남짓한 간격 안에서 96 dB를 떨어뜨려야 하는 것입니다.

$$|H(f)| = \frac{1}{\sqrt{1 + (f/f_c)^{2n}}}\quad\Rightarrow\quad \text{감쇠} \approx 20n\log_{10}\frac{f}{f_c}\ \text{dB}\ (f \gg f_c)$$
\(n\)차 버터워스 저역통과 필터. \(f_c = 20\) kHz로 24.1 kHz에서 96 dB를 얻으려면 \(n \ge 96 / (20\log_{10} 1.205) \approx 59.3\), 즉 60차에 가까운 아날로그 필터가 필요하다. 소자 오차와 위상 왜곡을 생각하면 비현실적이다.
샘플링 주파수접혀 들어오는 최저 주파수 fs − 20 kHz96 dB에 필요한 버터워스 차수 (fc = 20 kHz)
44.1 kHz24.1 kHz≈ 60
48 kHz28 kHz≈ 33
96 kHz76 kHz≈ 9
352.8 kHz (8× 오버샘플링)332.8 kHz≈ 4

표가 현대 ADC의 해법을 보여 줍니다. 먼저 목표보다 훨씬 높은 샘플률(예: 64배, 2.8224 MHz)로 거칠게 샘플링하면 아날로그 필터는 저차로 충분합니다. 그다음 디지털 저역통과 필터로 20 kHz 위를 정밀하게 자르고 샘플을 솎아(데시메이션) 44.1 kHz로 내립니다. 디지털 필터는 소자 오차가 없고 선형 위상 FIR로 만들 수 있으므로 수백 탭짜리 가파른 필터도 문제없습니다. 델타-시그마 ADC가 바로 이 구조입니다(AnalogBook).

SIMULATOR

안티앨리어싱 필터 설계: 얼마나 가팔라야 하나

접혀서 나타나는 곳—
에일리어스 크기—
20 kHz 통과 손실—
fs−20k 감쇠 / 96 dB 필요 차수—
파란 곡선은 필터 응답(dB), 빨간 띠는 "여기 있는 성분은 가청 대역(≤20 kHz)으로 접혀 들어온다"는 위험 구간이다. 주황 막대는 필터를 지난 침입 신호, 빨간 막대는 그것이 접혀 나타나는 위치와 크기. 해볼 것: ① fs = 44.1 kHz, fc = 20 kHz에서 차수를 올려 24.1 kHz 감쇠가 96 dB에 닿는 차수를 찾는다. ② fs를 352.8 kHz로 바꾸면 4차로도 충분한 것을 확인한다. ③ 차수를 0(필터 없음)으로 두고 침입 신호를 25 kHz → 40 kHz로 움직이며 에일리어스가 어디로 가는지 본다. · 모델: 이상적 버터워스 진폭 응답, 이상적 샘플러. 위상과 소자 오차는 무시했다. 오버샘플링의 경우 뒤따르는 디지털 데시메이션 필터는 그리지 않았다.

카메라의 안티앨리어싱: 광학 저역통과 필터(OLPF)

이미지 센서도 똑같은 문제를 겪습니다. 센서는 공간을 픽셀 피치 \(p\) 간격으로 샘플링하므로 공간 나이퀴스트 주파수는 \(1/(2p)\)입니다. 그런데 장면에는 주파수 상한이 없습니다. 셔츠의 가는 줄무늬, 먼 건물의 창문 격자, 머리카락은 얼마든지 가늘 수 있습니다. 픽셀 하나가 면적 전체의 빛을 모으는 것 자체가 일종의 평균 필터이긴 하지만, 개구율 100%인 정사각 픽셀의 MTF는 \(\operatorname{sinc}(fp)\)여서 나이퀴스트에서도 \(\operatorname{sinc}(0.5) \approx 0.64\)나 남습니다. 충분히 막지 못하는 것입니다.

그래서 많은 디지털 카메라는 센서 바로 앞에 복굴절 결정판(수정이나 니오브산리튬 등)을 겹친 광학 저역통과 필터(OLPF, optical low-pass filter)를 둡니다. 복굴절판은 빛을 편광에 따라 약간 떨어진 두 갈래로 나누므로, 가로·세로로 한 장씩 겹치면 한 점의 빛이 약 1픽셀 간격의 네 점으로 퍼집니다. 의도적으로 상을 살짝 흐려 나이퀴스트 근처와 그 위의 공간 주파수를 깎는 것입니다.

판 1(가로 분리)판 2(세로 분리)한 점이 약 1픽셀 간격의 4점으로빛 한 점
그림 6-6. 4점 분리형 OLPF의 원리(모식도). 첫 번째 복굴절판이 빛을 가로로, 두 번째 판이 세로로 나눠 한 점이 2×2 픽셀에 걸친 네 점이 된다. 공간 주파수 응답은 \(|\cos(\pi f d)|\) 꼴이 되어(d: 분리 간격) \(d\)를 픽셀 피치 근처로 잡으면 나이퀴스트 부근에서 응답이 크게 줄어든다.
공짜는 없다 OLPF는 모아레를 막는 대신 해상감을 깎습니다. 그래서 일부 고해상도 카메라는 OLPF를 빼거나 효과를 상쇄한 모델을 내놓았고, 렌즈와 회절이 이미 충분히 흐리게 만드는 아주 작은 픽셀의 스마트폰 카메라는 보통 OLPF를 따로 두지 않는 것으로 알려져 있습니다. 어느 쪽이든 "샘플링 전에 대역을 제한한다"는 원리는 같고, 다만 그 역할을 누가 맡느냐가 다릅니다(CameraBook, OpticsBook).

2차원 에일리어싱 = 모아레

방송 사고의 단골

가는 줄무늬 셔츠를 입은 출연자가 TV에 나오면 셔츠 위에 굵은 물결무늬가 꿈틀거립니다. 고층 건물 외벽을 찍은 사진에는 실제로 없는 곡선 띠가 나타납니다. 이 무늬는 어디서 왔을까요?

2차원에서는 주파수가 벡터가 됩니다. 줄무늬 \(\cos(2\pi\,\mathbf{k}\cdot\mathbf{x})\)의 주파수 벡터 \(\mathbf{k} = (k_x, k_y)\)는 줄무늬에 수직인 방향을 가리키고, 길이 \(|\mathbf{k}|\)는 단위 길이당 줄 수(주기의 역수)입니다. 픽셀 피치 1인 정사각 격자로 샘플링하면, 1차원에서 \(f\)와 \(f + kf_s\)가 같았던 것처럼 \(\mathbf{k}\)와 \(\mathbf{k} + \mathbf{m}\)(\(\mathbf{m}\)은 정수 벡터)이 같은 샘플을 만듭니다.

$$\mathbf{k}_{\text{alias}} = \mathbf{k} - \mathbf{m},\qquad \mathbf{m} = \big(\operatorname{round}(k_x),\ \operatorname{round}(k_y)\big),\qquad \mathbf{k}_{\text{alias}} \in \left[-\tfrac12, \tfrac12\right]^2$$
단위: 픽셀당 주기(cycles/pixel). 나이퀴스트 영역은 원이 아니라 정사각형이다. 그래서 같은 주기의 줄무늬라도 대각선 방향(정사각형의 모서리 쪽)은 더 고운 무늬까지 살아남는다. 모아레의 주기는 \(1/|\mathbf{k}_{\text{alias}}|\), 방향은 \(\mathbf{k}_{\text{alias}}\)에 수직이다.

고운 줄무늬가 거의 정수 벡터 \(\mathbf{m}\) 근처의 주파수를 가지면 \(\mathbf{k}_{\text{alias}}\)가 아주 짧아져 굵고 느린 가짜 무늬가 됩니다. 이것이 모아레입니다. 아래 시뮬레이터의 오른쪽 평면에서 \(\mathbf{k}\)를 직접 끌어 보세요.

SIMULATOR

모아레: 줄무늬 × 픽셀 격자, 그리고 두 격자 겹치기

확대: 8×8 픽셀과 샘플 점
센서 출력 64×64
주파수 평면 (점을 끌기)
모드
줄무늬 주파수 |k|—
모아레 주기—
모아레 방향—
샘플링 모드: 왼쪽은 센서 일부(8×8 픽셀)를 확대해 실제 줄무늬와 픽셀 중심의 샘플 점을 보여 주고, 가운데는 64×64 센서가 출력한 이미지, 오른쪽은 주파수 평면(파란 정사각형 = 나이퀴스트 영역, 주황 = 실제 k, 파랑 = 접힌 k). 해볼 것: ① 주기를 8픽셀에서 천천히 줄여 2픽셀(나이퀴스트)을 넘는 순간부터 가운데 이미지의 무늬가 다시 굵어지는 것을 본다. ② 주기 1.0 근처에서 각도를 조금씩 돌려 모아레가 크게 회전하는 것을 본다. ③ '두 격자 겹치기'에서 두 점을 가깝게 끌어 모아레 주기가 커지는(확대되는) 것을 확인한다. · 모델: 이상적 사인 줄무늬, 정사각 픽셀 격자. 면적 적분은 픽셀 안 4×4 점의 평균. 겹치기 모드의 오른쪽(가운데) 이미지는 곱한 무늬에서 저주파 성분만 남긴 것(눈이 멀리서 보는 평균 밝기).

두 격자를 겹치면: 모아레는 확대경이다

모아레는 꼭 카메라에만 생기지 않습니다. 망사 커튼 두 장, 겹친 철망, 인쇄 망점과 스캐너 격자처럼 주기 구조 두 개가 겹치면 언제나 생깁니다. 투과율 \(\tfrac12(1 + \cos 2\pi\mathbf{k}_1\!\cdot\mathbf{x})\)와 \(\tfrac12(1+\cos 2\pi\mathbf{k}_2\!\cdot\mathbf{x})\)를 곱하면 곱셈 공식에 의해 합 주파수 \(\mathbf{k}_1 + \mathbf{k}_2\)와 차 주파수 \(\mathbf{k}_1 - \mathbf{k}_2\) 성분이 생기는데, 눈(또는 카메라의 흐림)은 고운 성분을 평균해 버리고 느린 차 주파수만 남깁니다. 주기가 \(p_1, p_2\)이고 사이각이 \(\alpha\)인 두 줄 격자의 모아레 주기는

$$P = \frac{1}{|\mathbf{k}_1 - \mathbf{k}_2|} = \frac{p_1 p_2}{\sqrt{p_1^2 + p_2^2 - 2p_1p_2\cos\alpha}}\;\;\xrightarrow{\;p_1 = p_2 = p\;}\;\; \frac{p}{2\sin(\alpha/2)} \approx \frac{p}{\alpha}$$
예: 주기 1 mm인 두 격자를 1°(0.0175 rad) 돌리면 모아레 주기 ≈ 57 mm. 회전 없이 주기만 2% 다르면(1 mm와 1.02 mm) 51 mm. 미세한 각도·주기 차이가 수십 배로 확대되어 보인다.

이 확대 효과는 계측에 그대로 쓰입니다. 두 격자의 상대 위치가 격자 주기의 일부만큼만 어긋나도 모아레 무늬는 그 수십 배만큼 이동하므로, 모아레를 이용한 정렬 마크와 오버레이(층간 정렬) 측정 기법이 노광 분야에서 연구·사용되어 왔습니다(LithoBook). 반대로 디스플레이에서는 패널의 픽셀 격자와 그 위에 얹는 터치 센서 메쉬나 광학 필름의 주기 구조가 겹쳐 생기는 모아레가 골칫거리여서, 두 구조의 피치와 각도를 모아레 주기가 눈에 띄지 않도록 설계합니다(DisplayBook).

베이어 컬러 필터 배열과 위색

한 픽셀은 한 색만 본다

실리콘 포토다이오드는 색을 구별하지 못하고 광자 수만 셉니다. 컬러 사진을 찍으려면 픽셀 위에 빨강·초록·파랑 필터를 하나씩 올려야 하는데, 그러면 각 색은 전체 픽셀의 일부에서만 샘플링됩니다. 흑백 줄무늬 셔츠를 찍었는데 사진에 무지개색 얼룩이 생기는 이유가 여기에 있습니다.

가장 널리 쓰이는 배열은 코닥의 브라이스 베이어(Bryce Bayer)가 1976년 특허를 받은 베이어 패턴(Bayer color filter array)입니다. 2×2 칸마다 초록 둘, 빨강 하나, 파랑 하나를 둡니다. 초록이 두 배인 것은 사람 눈의 밝기 감도가 초록 파장대에서 가장 높아 밝기 정보의 대부분을 초록이 맡기 때문입니다.

RGRGRGGBGBGBRGRGRGGBGBGBRGRGRGGBGBGB베이어 RGGBGGGGGGGGGGGGGGGGGGG: 50% (체커보드)RRRRRRRRRR: 25% (2픽셀 간격)BBBBBBBBBB: 25% (2픽셀 간격)
그림 6-7. 베이어 RGGB 배열(왼쪽)을 색별로 나누면 서로 다른 샘플링 격자가 된다. 초록은 체커보드(가로·세로 나이퀴스트 0.5 cycles/pixel), 빨강과 파랑은 가로·세로 2픽셀 간격(나이퀴스트 0.25 cycles/pixel)이다. 같은 장면을 세 색이 서로 다른 격자로 샘플링하므로, 고운 무늬는 색마다 다르게 접힌다.

흑백 줄무늬라면 R, G, B 값이 모두 같아야 합니다. 하지만 주파수가 R/B의 나이퀴스트(0.25 cycles/pixel)를 넘으면 R과 B는 접힌 가짜 무늬를, G는 (아직 0.5 아래라면) 진짜 무늬를 봅니다. 빠진 색을 이웃에서 채우는 디모자이킹(demosaicing) 단계에서 세 색의 무늬가 서로 어긋나 있으니, 흑백이어야 할 자리에 색이 생깁니다. 이것이 위색(false color) 또는 컬러 모아레입니다.

SIMULATOR

베이어 샘플링과 디모자이킹의 위색

장면 (연속)
베이어 원시 데이터
디모자이킹 결과
디모자이킹
위색 지표 (평균 채도 오차)—
줄무늬 / R·B 나이퀴스트—
판정—
해볼 것: ① 흑백 줄무늬 주파수를 0.1에서 0.3으로 올리면 0.25(R·B 나이퀴스트)를 넘는 순간 결과에 색 띠가 생기는 것을 본다. ② '존 플레이트'에서 중심에서 바깥으로 갈수록 주파수가 높아지며, 위색 링이 어디서 시작되는지 본다. ③ OLPF를 켜면 위색이 크게 줄지만 원래 무늬의 대비도 함께 줄어드는 것을 확인한다. · 모델: 48×48 픽셀, RGGB 배열, 이상적 색 필터(겹침 없음), 점 샘플링. 쌍선형 디모자이킹은 3×3 이웃의 같은 색 샘플 가중 평균. 실제 카메라는 경계 방향을 고려하는 훨씬 정교한 디모자이킹과 위색 억제 처리를 쓴다.
같은 원리, 반대 방향 동영상 압축의 크로마 서브샘플링(4:2:0)은 이 비대칭을 일부러 이용합니다. 눈이 색의 세밀함보다 밝기의 세밀함에 훨씬 민감하므로, 밝기(Y)는 모든 픽셀에, 색차(Cb, Cr)는 가로·세로 절반 해상도로만 저장합니다. 색 정보를 성기게 샘플링해도 대부분 티가 나지 않지만, 빨간 글씨의 가장자리처럼 색의 경계가 날카로운 곳에서는 번짐이 보입니다(ColorBook).

값도 잘라야 한다: 양자화와 디더

시간만 자르면 끝이 아니다

표본화 정리 덕분에 시간 축은 잃는 것 없이 자를 수 있었습니다. 하지만 각 샘플의 값도 여전히 실수(무한 자릿수)입니다. CD는 각 샘플을 16비트, 즉 65,536단계 중 하나로 반올림해 저장합니다. 이번에는 정말로 정보를 잃습니다. 얼마나 잃을까요?

전체 범위 \([-1, 1)\)를 \(N\)비트로 나누면 한 단계(1 LSB)의 크기는 \(q = 2/2^N\)입니다. 반올림 양자화(quantization)는 입력을 가장 가까운 단계로 옮기므로 오차는 항상 \(\pm q/2\) 안에 있습니다.

입력 x출력 Q(x)q+q/2−q/2오차 e = Q(x) − x계단 전달 특성
그림 6-8. 왼쪽: 반올림 양자화기의 계단 전달 특성(점선은 이상적인 직선). 오른쪽: 오차 \(e = Q(x) - x\)는 \(\pm q/2\) 사이를 오가는 톱니 모양이다. 신호가 여러 단계를 바쁘게 지나가면 이 오차는 \([-q/2, q/2]\)에 고르게 퍼진 잡음처럼 행동한다.

오차를 \([-q/2, q/2]\)의 균등분포 확률변수로 보면(7장 확률) 그 분산, 즉 잡음 전력은 \(q^2/12\)입니다. 여기에 최대 진폭 사인파(진폭 1, 전력 1/2)를 넣으면 신호 대 잡음비가 나옵니다.

$$\sigma_e^2 = \frac{1}{q}\int_{-q/2}^{q/2} e^2\,de = \frac{q^2}{12},\qquad \text{SNR} = 10\log_{10}\frac{1/2}{q^2/12} = 10\log_{10}\!\left(\tfrac{3}{2}\cdot 2^{2N}\right) \approx \boxed{6.02N + 1.76\ \text{dB}}$$
1비트를 더할 때마다 단계가 절반이 되어 잡음 진폭이 절반(−6.02 dB)이 된다. 신호가 최대 진폭보다 \(A\) dB 작으면(\(A\) dBFS) SNR도 그만큼 줄어든다. 이 식은 "오차가 신호와 무관한 균등 잡음"이라는 가정이 성립할 때만 맞는다. 바로 이 가정이 깨지는 상황이 디더의 출발점이다.
비트 수단계 수이론 SNR (최대 사인)대표 용도
825649.9 dB8비트 이미지 채널, 초기 디지털 오디오 장비
124,09674.0 dB이미지 센서 RAW, 계측용 ADC
1665,53698.1 dBCD 오디오
2416,777,216146.2 dB녹음·제작용 오디오 (실제 ADC 성능은 아날로그 잡음이 제한)

디더: 일부러 잡음을 더해 더 깨끗하게

균등 잡음 가정은 신호가 단계를 여러 개 바쁘게 넘나들 때 잘 맞습니다. 신호가 작거나 단순하면 깨집니다. 진폭이 반 LSB도 안 되는 조용한 사인파는 반올림하면 전부 0이 되어 사라집니다. 몇 LSB짜리 사인파는 매 주기 똑같은 계단 모양이 되어, 오차가 신호와 같은 주기로 반복되므로 잡음이 아니라 고조파 왜곡(배음)으로 들립니다. 피아노 소리가 잦아드는 꼬리에서 이런 거친 왜곡이 들리면 무척 거슬립니다.

해법은 역설적입니다. 양자화 전에 1~2 LSB 크기의 작은 무작위 잡음, 즉 디더(dither)를 더합니다. 그러면 같은 입력값이라도 반올림이 매번 다르게 일어나, 오차가 신호와 통계적으로 무관해집니다. 특히 두 균등 난수를 더한 삼각 분포(TPDF, ±1 LSB) 디더는 오차의 평균과 분산이 신호 값에 의존하지 않게 만드는 것으로 알려져 있습니다. 대가는 잡음 전력 증가(TPDF는 \(q^2/12\)에 \(q^2/6\)이 더해져 3배, 약 4.8 dB)이지만, 거슬리는 왜곡이 고른 쉬익 소리로 바뀌고 1 LSB보다 작은 신호도 평균적으로 살아남습니다.

SIMULATOR

양자화 비트 수, 잡음 바닥, 디더

디더
이론 SNR (디더 없음, 6.02N+1.76+A)—
측정 SINAD—
최대 스퍼 (신호 대비)—
1 LSB—
위: 원 신호(회색)와 양자화된 계단(파랑), 아래 띠는 오차. 아래 그래프: 양자화된 신호의 스펙트럼(48 kHz, 4096점 FFT, 신호는 750 Hz = 정확히 64샘플에 한 주기, FFT 창에 64주기). 점선은 균등 잡음 모델이 예측하는 빈당 잡음 바닥. 해볼 것: ① 디더 없이 4비트: 스펙트럼에 날카로운 고조파 기둥들이 선다. TPDF를 켜면 기둥이 사라지고 평평한 잡음 바닥만 남는다. (오디오 측정에서 1 kHz 대신 997 Hz처럼 샘플률과 맞아떨어지지 않는 시험 주파수를 쓰는 것도, 샘플 위상이 반복되어 오차가 이렇게 몇 개의 고조파에 몰리는 것을 피하기 위해서다.) ② '작은 신호 프리셋'(8비트, −50 dBFS, 진폭이 1 LSB 미만): 디더 없이는 신호가 통째로 사라지고, 디더를 켜면 잡음 속에 신호 기둥이 살아난다. ③ 비트를 1씩 올리며 측정 SINAD가 약 6 dB씩 오르는지 확인한다. · 모델: 반올림(mid-tread) 양자화기, 범위 [−1, 1−q]로 클리핑. 디더는 양자화 전에 더하고 빼지 않는다(비감산 디더). 소리는 같은 처리를 한 440 Hz 사인을 1초 반복 재생한다.
비트를 시간으로 사기: 오버샘플링과 잡음 성형 양자화 잡음 전력 \(q^2/12\)은 0부터 \(f_s/2\)까지 고르게 퍼집니다. 샘플률을 \(M\)배로 올리면 같은 잡음이 \(M\)배 넓은 대역에 퍼지므로, 원하는 대역만 남기고 거르면 잡음이 \(10\log_{10}M\) dB 줄어듭니다(4배마다 약 6 dB = 1비트). 여기에 잡음을 필요 없는 고주파 쪽으로 밀어내는 잡음 성형(noise shaping)까지 더한 것이 델타-시그마 변환기로, 1비트에 가까운 아주 거친 양자화기로 16~24비트급 성능을 얻습니다. 디스플레이에서도 6비트 패널이 시간·공간 디더링(FRC)으로 8비트 계조를 흉내 내며, 사진에서 하늘의 그러데이션이 띠처럼 끊겨 보이는 밴딩(banding)은 디더 없는 양자화의 시각적 증상입니다.

시뮬레이션의 격자: 공간과 시간을 얼마나 잘게 자를까

픽셀 하나를 계산하는 데 셀이 몇 개 필요할까

1 µm 픽셀의 마이크로렌즈와 컬러 필터를 지나는 빛을 FDTD(유한차분 시간영역법)로 계산하려 합니다. 공간을 너무 굵게 자르면 결과가 틀리고, 너무 잘게 자르면 계산이 끝나지 않습니다. 기준은 무엇일까요?

시뮬레이션의 격자도 연속 세계를 샘플링하는 것이므로 이 장의 규칙을 그대로 따릅니다. 표본화 정리만 보면 파장당 2셀이 절대 하한입니다. 하지만 유한차분은 sinc 재구성처럼 이상적인 보간이 아니라 이웃 몇 개만 보는 근사여서, 셀이 거칠면 파동이 실제보다 느리게 전파되는 수치 분산(numerical dispersion)이 생깁니다. 이 오차는 전파 거리에 따라 쌓이므로 실무에서는 가장 굴절률이 높은 매질 속 파장 기준으로 파장당 10~20셀을 씁니다.

λ = 10Δx공간 격자: 파장당 셀 수시간 격자: 의존 영역tx →파랑: 격자가 보는 범위 · 주황: 실제 빛 원뿔
그림 6-9. 왼쪽: 파장 하나에 셀 10개(\(\Delta x = \lambda/10\)). 오른쪽: 시간 간격 \(\Delta t\) 동안 한 격자점(주황 점)의 다음 값은 이전 시각의 이웃 격자점에서만 계산된다. 거슬러 올라가면 격자가 정보를 가져올 수 있는 범위(파란 삼각형)가 생기는데, 실제 물리에서 빛이 영향을 미칠 수 있는 범위(주황 삼각형)가 그 안에 들어가야 한다. 이것이 CFL 조건이다.
파장당 셀 수 λ/Δx위상 속도 오차 (1D FDTD, 쿠랑 수 0.5)의미
5−5.7%몇 파장만 진행해도 위상이 크게 어긋난다
10−1.3%짧은 구조에는 쓸 만함 (100파장 진행 시 위상 1파장 이상 오차)
20−0.31%정밀 계산의 흔한 기준

시간 축에도 조건이 있습니다. 한 시간 간격 동안 빛이 한 셀보다 멀리 가 버리면, 이웃 셀만 보는 계산은 그 정보를 놓치고 해가 지수적으로 폭주합니다. 이것이 CFL 조건(Courant–Friedrichs–Lewy condition)입니다.

$$\text{1차원: } c\,\Delta t \le \Delta x, \qquad \text{3차원 정육면체 격자: } \Delta t \le \frac{\Delta x}{c\sqrt{3}}$$
예: \(\Delta x = 20\) nm이면 \(\Delta t \le 20\times10^{-9} / (3\times10^{8}\cdot\sqrt3) \approx 3.85\times10^{-17}\) s = 0.0385 fs. 100 fs의 빛 펄스를 따라가려면 약 2,600 스텝이 필요하다. 실리콘(가시광에서 굴절률 약 4) 속에서는 파장이 공기 중의 1/4 정도로 짧아지므로 셀도 그만큼 작아야 한다.

두 조건을 합치면 격자 계산 비용이 얼마나 빨리 커지는지 보입니다. 3차원에서 셀 크기를 절반으로 줄이면 셀 수가 8배, CFL 때문에 시간 스텝 수가 2배가 되어 계산량은 16배가 됩니다. 수치 오차의 다른 얼굴(반올림, 안정성, 강성 문제)은 10장 컴퓨터는 어떻게 틀리는가에서, 반도체 공정·소자 시뮬레이션의 메시 설계는 TCADBook에서 이어집니다.

이 도구가 쓰이는 곳

연속을 격자로 자르는 일은 디지털 기기의 입구와 출구 어디에나 있습니다. 시리즈의 다른 책에서 이 장의 도구가 나오는 곳입니다.

핵심 정리

  1. 일정 간격으로만 보는 관측자는 한 주기의 정수배만큼의 차이를 구별하지 못한다. 바퀴에서는 \(360°/N\), 주파수에서는 \(f_s\), 2차원에서는 정수 벡터 \(\mathbf{m}\)이 그 주기다.
  2. 에일리어스 주파수는 \(f_{\text{alias}} = |f - \operatorname{round}(f/f_s)\,f_s|\). 입력-출력 관계는 \(f_s/2\)마다 접힌 아코디언 모양이다.
  3. 표본화 정리: \(|f| \ge B\) 성분이 없고 \(f_s > 2B\)이면 \(x(t) = \sum x[n]\,\operatorname{sinc}((t - nT)/T)\)로 정확히 복원된다. 정확히 \(f_s/2\)는 위상에 따라 사라질 수 있어 등호는 안 된다.
  4. 에일리어싱은 샘플링 후에는 되돌릴 수 없다. 오디오는 안티앨리어싱 필터(현대 ADC는 오버샘플링 + 디지털 데시메이션), 카메라는 렌즈 MTF·픽셀 개구·OLPF가 샘플링 전에 대역을 제한한다.
  5. 모아레는 2차원 에일리어싱이다. 나이퀴스트 영역은 정사각형이고, 두 주기 구조가 겹치면 차 주파수 \(\mathbf{k}_1 - \mathbf{k}_2\)가 확대된 무늬로 보인다. 베이어 배열에서는 R/B가 G보다 성기게 샘플링되어 위색이 생긴다.
  6. 양자화 잡음은 \(q^2/12\), 최대 사인의 SNR은 \(6.02N + 1.76\) dB. 디더는 잡음을 조금 늘리는 대신 왜곡과 미소 신호 소실을 없앤다.
  7. 시뮬레이션 격자도 샘플링이다. 공간은 파장당 10~20셀(수치 분산), 시간은 CFL 조건 \(c\Delta t \le \Delta x/\sqrt{d}\)을 지켜야 한다.

확인 퀴즈

48 kHz로 샘플링하는 ADC에 안티앨리어싱 필터 없이 30 kHz 사인파가 들어왔다. 재생하면 어떤 주파수가 들리는가?

\(k = \operatorname{round}(30/48) = 1\)이므로 \(|30 - 48| = 18\) kHz. 나이퀴스트 24 kHz를 6 kHz 넘었으니 24 kHz에서 6 kHz 아래로 접힌다고 생각해도 된다.

살이 6개인 바퀴가 초당 4바퀴 돈다. 24 fps 카메라로 찍으면 어떻게 보이는가?

프레임당 회전 = 4 × 360° / 24 = 60°, 살 사이 각도(대칭 주기)도 360°/6 = 60°. 매 프레임 바퀴가 정확히 자기 자신과 겹치므로 멈춰 보인다(겉보기 회전 0°).

표본화 정리의 조건이 \(f_s \ge 2B\)가 아니라 \(f_s > 2B\)인 가장 직접적인 이유는?

\(\cos(\pi n + \varphi)\)의 샘플은 \(\cos\varphi\,(-1)^n\)이다. 진폭과 위상이 한 숫자 \(\cos\varphi\)로 뭉쳐 구별되지 않고, 사인(\(\varphi = -\pi/2\))이면 모든 샘플이 0이다.

최대 진폭 사인파를 16비트로 양자화할 때 이론적인 SNR에 가장 가까운 값은?

6.02 × 16 + 1.76 ≈ 98.1 dB. 흔히 말하는 "16비트 = 96 dB"는 1.76 dB 항을 뺀 단순 계산(\(20\log_{10}2^{16}\))이다.

디지털 카메라의 광학 저역통과 필터(OLPF)가 하는 일로 가장 알맞은 것은?

에일리어싱은 샘플링 후에는 되돌릴 수 없으므로 대역 제한은 샘플링 전에 해야 한다. OLPF는 복굴절로 한 점을 픽셀 간격 정도의 여러 점으로 나눠 고주파를 깎는 광학적 안티앨리어싱 필터다. 적외선 차단은 별도의 IR 컷 필터가 맡는다.

3차원 FDTD에서 셀 크기를 절반으로 줄이고 같은 물리 시간을 계산하려면, 계산량은 대략 몇 배가 되는가? (CFL 조건 유지)

셀 수는 \(2^3 = 8\)배. CFL 조건 \(\Delta t \propto \Delta x\) 때문에 시간 스텝도 절반이 되어 스텝 수가 2배. 합쳐서 16배다.