이 글은 직접 학습하거나 구현하며 남긴 개인 기술 기록입니다. 참고 자료가 있는 경우 본문에 출처를 남기고, 틀린 부분을 발견하면 수정합니다.
푸리에 변환의 핵심 수식
이미지를 “밝기의 공간적 배열”이 아니라 “여러 주파수 성분의 합”으로 바라보면 블러·샤프닝·노이즈 제거 같은 처리를 훨씬 간단한 곱셈 연산으로 표현할 수 있다. 이 글은 그 관점 전환에 필요한 수식들을 1차원 → 2차원 → 실제 필터링·최적화 순서로 정리한다. 이산 이미지에 실제로 적용하는 예시는 DFT 기반 Convolution 글에서 이어진다.
1. 기본 푸리에 변환
1.1 1차원 푸리에 변환
신호 x(t)를 주파수 영역으로 변환:
F(ω) = ∫ x(t) • e^(-iωt) dt
여기서:
- F(ω): 주파수 영역에서의 신호
- x(t): 시간 영역에서의 신호
- ω: 각주파수 (2πf)
- i: 허수 단위 (i² = -1)
1.2 이산 푸리에 변환 (DFT)
디지털 신호의 변환:
F[k] = Σ x[n] • e^(-i2πkn/N)
역변환: x[n] = (1/N) • Σ F[k] • e^(i2πkn/N)
아주 작은 예로 감을 잡아보기: 신호 x = [1, 1, 1, 1] (N=4, 값이 전부 동일)를 DFT하면, 모든 주파수 성분의 위상이 서로 상쇄되고 k=0(직류 성분)만 살아남아 F = [4, 0, 0, 0]이 된다. 값이 하나도 변하지 않는 신호는 “변화가 없다”는 의미에서 주파수가 0인 성분(평균값)만 갖는다는 것을, 계산 없이도 직관적으로 확인할 수 있는 경우다.
2. 2차원 푸리에 변환
2.1 이미지 처리용 기본 수식
F(u,v) = Σ Σ f(x,y) • e^(-i2π(ux/M + vy/N))
역변환: f(x,y) = (1/MN) • Σ Σ F(u,v) • e^(i2π(ux/M + vy/N))
2.2 복소수 형태
F(u,v) = R(u,v) + i•I(u,v)
- R(u,v): 실수부
- I(u,v): 허수부
3. 실용적인 수식들
3.1 오일러 공식 활용
e^(-iθ) = cos(θ) - i•sin(θ)
따라서 DFT는 다음과 같이 표현 가능: F[k] = Σ x[n] • (cos(2πkn/N) - i•sin(2πkn/N))
3.2 진폭과 위상
진폭 스펙트럼: |F(u,v)| = √(R² + I²)
위상 스펙트럼: φ(u,v) = tan⁻¹(I/R)
4. 게임 개발 응용
4.1 주파수 도메인 필터링
H(u,v) = F(u,v) × G(u,v)
- F(u,v): 입력 이미지의 푸리에 변환
- G(u,v): 필터 함수
- H(u,v): 필터링된 결과
4.2 가우시안 블러
G(u,v) = e^(-(u² + v²)/(2σ²))
4.3 모션 블러
H(u,v) = sinc(πT(uu₀ + vv₀)) • e^(-iπT(uu₀ + vv₀))
5. 최적화 기법
5.1 대칭성
F(-u,-v) = F*(u,v)
- F*: 복소 켤레 (a - i•b)
5.2 분리 가능한 변환
2D DFT = (1D DFT on rows) × (1D DFT on columns)
5.3 고속 푸리에 변환 (FFT)
N-포인트 FFT 복잡도:
- 연산 수 = N•log₂(N)
- 메모리 = 2N (실수부 + 허수부)
6. 실시간 근사
6.1 블룸 효과
I_bloom = I + α•Blur(max(I - threshold, 0))
6.2 간단한 주파수 필터링
F_filtered = F × Mask
- Mask = 0 또는 1로 구성된 간단한 필터
핵심 정리
- 공간(시간) 영역의 합성곱(convolution)은 주파수 영역에서는 단순 곱셈이 된다 — 필터링을 훨씬 싼 연산으로 바꿔주는 성질이다.
- 저주파는 “완만한 변화”(전체 밝기, 큰 형태), 고주파는 “급격한 변화”(경계선, 노이즈, 세부 텍스처)에 대응한다는 감각만 있으면 Low/High/Band-pass 필터의 효과를 예측할 수 있다.
- FFT는 DFT를 O(N²)에서 O(N log N)으로 줄이는 알고리즘으로, 이미지·오디오 실시간 처리가 가능한 것은 사실상 FFT 덕분이다.
댓글이 보이지 않으면 GitHub에 로그인한 뒤 새로고침해 주세요. 공개 댓글은 로그인 상태에서 더 안정적으로 표시됩니다.