# Noise 예산과 입력 환산

:::goals
- 여러 원천의 noise를 같은 기준점(FD, 전자 수)에 모아 예산표를 만들 수 있다.
- CG를 바꿀 때 어떤 원천의 몫이 줄고 어떤 원천은 그대로인지 안다.
- shot noise와 read noise가 함께 정하는 SNR과 dynamic range를 계산할 수 있다.
:::

## 한 문장으로
지금까지 noise 원천을 하나씩 보았다. 설계에서 실제로 묻는 질문은 **"전부 합치면 몇 전자이고, 그중 무엇이 가장 큰가"**다. 이 질문에 답하는 표가 ==noise 예산==(noise budget)이다.

## 예산표 만드는 순서
- **기준점을 정한다.** 보통 FD, 단위는 전자 수(e⁻ rms)다(10장).
- **각 원천을 그 기준점으로 옮긴다.** 뒷단 원천은 앞단 이득으로 나누고(11장), 전압이면 같은 기준점의 CG로 나눈다.
- **처리 단계를 맞춘다.** CDS 전 값과 후 값을 섞지 않는다. CDS로 지워지는 성분(reset noise 등)은 CDS 후 예산에 넣지 않는다(13장).
- **분산으로 더한다.** 독립이면 RSS, 상관이 있으면 상관 항을 넣는다(14장).
- **몫을 본다.** 분산에서 차지하는 비율이 큰 원천부터 줄인다.

[[lab:budget]]

## CG를 바꾸면
SF 채널 noise, column 회로, ADC처럼 **FD 기준 전압으로 정해지는 원천**은 CG가 커질수록 전자 수 몫이 준다. 같은 µV를 더 큰 CG로 나누기 때문이다. 반면 암전류 shot noise처럼 **처음부터 전자 수로 정해지는 원천**은 CG와 무관하다. 또 CG를 키우려고 FD를 줄이면 SF 소자 크기나 동작점이 함께 바뀌어 SF noise 자체가 달라질 수 있다. CG를 키우는 효과가 어디까지인지는 예산표에서 원천별로 봐야 한다.

## 빛 자체의 흔들림: shot noise
빛의 광자는 무작위로 도착한다. 평균 $S$개의 전자가 모이면 그 흔들림은 $\sqrt{S}$다(==shot noise==, 포아송 분포). 이것은 회로가 아무리 좋아도 없앨 수 없다. read noise $\sigma_r$와 함께 보면 SNR은 이렇게 된다.

$$
\text{SNR} = \frac{S}{\sqrt{S + \sigma_r^2}}
$$

- **어두울 때**($S \ll \sigma_r^2$): SNR ≈ $S/\sigma_r$. read noise가 지배한다.
- **밝을 때**($S \gg \sigma_r^2$): SNR ≈ $\sqrt{S}$. shot noise가 지배한다.

두 영역의 경계는 $S = \sigma_r^2$이다. read noise가 2 e⁻이면 신호 4 e⁻ 근처에서 바뀐다. read noise를 줄이는 노력은 어두운 장면에서 효과가 크다.

## Dynamic range
가장 큰 신호(full well)와 가장 작은 구분 가능한 신호(read noise)의 비가 ==dynamic range==다.

$$
\text{DR} = 20\log_{10}\frac{\text{full well}}{\sigma_r}\ \text{[dB]}
$$

full well 10,000 e⁻에 read noise 2 e⁻이면 74 dB다. CG를 키우면 read noise(e⁻)는 줄지만 같은 전압 범위에 담을 수 있는 전자 수도 줄어, DR이 반드시 좋아지지는 않는다. 상황에 따라 CG를 바꾸는 구조가 쓰이는 이유다.

[[lab:snr]]

> 측정에서는 신호를 바꿔 가며 평균과 분산을 그리는 photon transfer curve(PTC)로 CG, read noise, full well을 함께 구한다. 자세한 방법은 CIS Pixel Device Physics 교재의 성능 지표 장에 있다.

## 핵심 정리
- 예산표: 기준점을 정하고 → 옮기고 → 처리 단계를 맞추고 → 분산으로 더하고 → 몫이 큰 것부터 줄인다.
- 전압으로 정해지는 원천은 CG가 커지면 전자 수 몫이 준다.
- SNR = $S/\sqrt{S+\sigma_r^2}$. 어두울 때는 read noise, 밝을 때는 shot noise가 지배한다.
- DR = 20 log(full well / read noise). CG를 키우면 두 값이 함께 바뀐다.
