Fourier Transform

Summary

Fourier transform, 한국어로 푸리에 변환, 은 시간이나 공간 위에 있는 신호를 여러 주파수 성분의 합으로 분해하는 변환이다. 쉽게 말하면, “이 신호 안에 어떤 빠르기의 파동들이 얼마나 들어 있는가?”를 보는 방법이다.


한 문장으로 이해하기

Fourier transform은 복잡한 신호를 sine과 cosine 같은 단순한 파동들의 조합으로 다시 표현하는 방법이다.

예를 들어 음악 소리는 시간에 따라 공기 압력이 변하는 신호다. 이 신호를 그대로 보면 복잡한 파형이지만, Fourier transform을 적용하면 어떤 음높이, 즉 어떤 주파수가 강하게 들어 있는지 볼 수 있다.

flowchart LR
    accTitle: Fourier Domain Change
    accDescr: Fourier transform changes a signal from a time or space representation into a frequency representation, where amplitude and phase describe sinusoidal components.

    signal["Signal<br/>time or space domain"] --> transform["Fourier transform"]
    transform --> spectrum["Spectrum<br/>frequency domain"]
    spectrum --> amplitude["Amplitude<br/>how much"]
    spectrum --> phase["Phase<br/>where aligned"]

    classDef input fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e3a5f
    classDef process fill:#f3f4f6,stroke:#6b7280,stroke-width:2px,color:#1f2937
    classDef output fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d

    class signal input
    class transform process
    class spectrum,amplitude,phase output

왜 sine과 cosine인가?

Fourier transform의 핵심 직관은 “복잡한 모양도 충분히 많은 파동을 더하면 만들 수 있다”는 것이다.

Sine과 cosine은 주기적인 기본 파동이다. 낮은 주파수의 파동은 천천히 변하고, 높은 주파수의 파동은 빠르게 변한다. 어떤 신호를 낮은 주파수부터 높은 주파수까지 여러 파동으로 분해하면, 그 신호의 전체 구조와 세부 변화가 각각 어떤 성분에서 오는지 볼 수 있다.

Euler formula를 쓰면 sine과 cosine을 하나의 복소 지수 함수로 표현할 수 있다.

그래서 Fourier transform 수식에는 같은 복소 지수 항이 등장한다. 이 항은 “주파수 를 가진 기준 파동”으로 생각할 수 있다.


수학적 정의

연속 Fourier transform

연속 시간 신호 의 Fourier transform은 다음처럼 정의한다.

여기서 는 주파수 에서의 복소수 값이다. 이 값은 해당 주파수 성분이 얼마나 강한지와 어떤 phase를 가지는지를 함께 담고 있다.

역변환은 다음과 같다.

즉 Fourier transform은 정보를 버리는 압축이 아니라, 조건이 맞으면 원래 신호로 되돌릴 수 있는 표현 변환이다.

주파수 단위에 따른 다른 표기

위 식은 angular frequency 를 쓴다. 만약 초당 진동수 를 쓰면 가 지수 안으로 들어간다.

표기마다 가 어디 붙는지가 달라질 수 있다. 중요한 것은 부호와 정규화 상수를 일관되게 쓰는 것이다.

이산 Fourier transform

컴퓨터에서는 유한한 길이의 배열을 다루므로 보통 DFT, 즉 discrete Fourier transform을 쓴다.

역변환은 다음과 같다.

여기서 은 길이 인 원래 신호이고, 번째 주파수 성분이다.


복소수 값은 무엇을 뜻하나?

Fourier transform 결과는 보통 복소수다.

이 복소수는 두 가지 정보를 담는다.

의미
Magnitude $F(\omega)
Phase 해당 주파수 성분이 어디서 시작하는가, 얼마나 밀려 있는가

많은 경우 amplitude spectrum만 보지만, phase도 중요하다. 이미지에서 phase는 edge나 구조의 위치 정보를 많이 담는다. magnitude만 보존하고 phase를 망가뜨리면 원래 구조가 크게 흐려질 수 있다.


시간 domain과 주파수 domain

Fourier transform은 데이터를 없애는 것이 아니라, 같은 대상을 다른 좌표계에서 보는 것이다.

관점무엇을 보나잘 보이는 것
Time / space domain값이 시간이나 위치에 따라 어떻게 변하는가사건의 위치, 형태, local pattern
Frequency domain어떤 주파수 성분이 얼마나 들어 있는가반복성, 진동, smoothness, noise, filtering

이미지에서는 space domain이 픽셀 위치의 밝기 배열이고, frequency domain은 이미지 안에 들어 있는 저주파/고주파 성분을 나타낸다.

성분이미지에서의 직관
Low frequency넓고 부드러운 변화, 전체 밝기, 큰 형태
High frequencyedge, texture, noise, 급격한 변화

핵심 성질

1. 선형성

Fourier transform은 선형이다.

즉 신호를 더한 뒤 변환한 결과는, 각 신호를 변환한 뒤 더한 결과와 같다.

2. 시간 이동은 phase 변화가 된다

시간 domain에서 신호를 만큼 이동하면, frequency domain에서는 phase가 바뀐다.

이 성질은 phase가 위치 정보를 담는 이유와 연결된다.

3. 스케일 변화는 주파수 스케일 변화가 된다

시간축에서 신호를 압축하면 주파수 domain에서는 넓어진다.

짧고 급격한 신호일수록 넓은 범위의 주파수를 필요로 한다.

4. 미분은 주파수 곱셈이 된다

시간 domain에서 미분하는 것은 frequency domain에서 를 곱하는 것과 같다.

그래서 변화율, edge, gradient는 고주파 성분과 관련이 깊다.

5. Convolution theorem

Fourier transform의 가장 중요한 성질 중 하나는 convolution theorem이다.

즉 시간이나 공간 domain의 convolution은 frequency domain에서 단순한 곱셈이 된다. 반대로 시간 domain의 곱셈은 frequency domain에서 convolution이 된다.

이 성질 때문에 blur, sharpening, denoising 같은 filtering을 frequency domain에서 해석할 수 있다.

6. Parseval’s theorem

신호의 에너지는 time domain에서 보든 frequency domain에서 보든 보존된다.

이 성질은 “표현만 바뀌었을 뿐, 신호의 전체 에너지는 같다”는 의미다.


고차원적 함의

1. Fourier transform은 basis change다

가장 중요한 관점은 Fourier transform을 basis change로 보는 것이다. 원래 신호는 시간이나 위치 basis에서 표현된다. Fourier transform은 같은 신호를 sinusoidal basis에서 표현한다.

벡터를 표준 좌표계에서 다른 좌표계로 바꿔 쓰는 것처럼, Fourier transform은 함수를 주파수 좌표계로 바꿔 쓴다.

이 관점에서 DFT는 길이 벡터에 특수한 unitary matrix를 곱하는 선형 변환으로 볼 수 있다.

여기서 는 Fourier basis matrix다.

2. 복잡한 구조를 단순한 성분으로 분해한다

Fourier transform은 복잡한 신호를 여러 단순 성분으로 분해한다. 이는 선형대수에서 eigenvector basis로 행렬을 대각화하는 것과 비슷한 역할을 한다.

특히 shift-invariant한 선형 연산은 Fourier basis에서 대각화된다. 이 말은 어렵지만, 직관은 간단하다.

이동에 대해 같은 방식으로 작동하는 선형 시스템은 주파수별로 독립적으로 작동한다.

그래서 Convolution 같은 연산이 frequency domain에서 주파수별 곱셈으로 단순해진다.

3. Locality와 frequency 사이에는 trade-off가 있다

시간 위치를 아주 정확히 알고 싶으면 넓은 주파수 범위가 필요하고, 특정 주파수를 아주 정확히 알고 싶으면 긴 시간 범위를 봐야 한다.

이를 time-frequency trade-off 또는 uncertainty principle로 볼 수 있다.

원하는 것필요한 것포기되는 것
정확한 시간 위치짧은 window주파수 해상도
정확한 주파수긴 window시간 위치 해상도

이 한계 때문에 음성, 음악, 비정상 시계열에서는 short-time Fourier transform이나 wavelet transform 같은 방법을 쓴다.

4. “Smoothness”를 주파수로 볼 수 있다

부드러운 함수는 대체로 저주파 성분이 강하고, 급격히 변하는 함수는 고주파 성분이 강하다. 그래서 frequency domain은 smoothness, noise, edge, regularity를 분석하는 언어가 된다.

딥러닝에서도 모델이 낮은 주파수 패턴을 먼저 배우는 경향, positional encoding에서 주파수 성분을 사용하는 이유, implicit neural representation에서 Fourier features를 넣는 이유가 이 관점과 연결된다.


CNN과 convolution과의 연결

CNN에서 convolution filter는 공간 domain에서 local pattern을 감지한다. Fourier 관점에서는 이 filter를 frequency response로 해석할 수 있다.

FilterSpace domain에서 하는 일Frequency domain 해석
Blur filter주변 값을 평균내어 부드럽게 함high frequency를 줄이는 low-pass filter
Edge detector급격한 밝기 변화를 찾음high frequency에 민감한 filter
Sharpening filter경계를 더 강하게 만듦일부 high frequency를 강화

CNN은 보통 Fourier transform을 명시적으로 계산하지 않는다. 하지만 convolution theorem 때문에, CNN의 filter는 주파수 선택성을 가진 연산으로 해석할 수 있다. 초기 layer의 edge detector, texture detector는 고주파/중간 주파수 성분에 반응하는 filter로 볼 수 있다.

다만 CNN의 목적은 단순 주파수 분석이 아니다. convolution 뒤에 non-linearity, pooling, normalization, 여러 layer가 붙으면서 feature는 점점 더 추상적인 의미를 갖는다.


딥러닝에서의 주요 사용 맥락

맥락Fourier 관점
Convolution acceleration큰 convolution은 FFT를 이용해 frequency domain 곱셈으로 빠르게 계산할 수 있다.
Image filteringblur, denoising, sharpening을 frequency response로 해석한다.
Positional encodingsinusoidal positional encoding과 RoPE는 위치를 주파수적 회전/진동으로 표현한다.
Fourier features좌표 입력을 여러 주파수의 sinusoid로 확장해 고주파 패턴을 더 잘 표현하게 한다.
Spectral biasneural network가 저주파 패턴을 먼저 학습하는 경향을 분석할 때 사용된다.
Generative models이미지의 저주파 구조와 고주파 texture/noise를 구분해 분석할 때 유용하다.

DFT와 FFT

DFT는 수학적 변환이고, FFT는 DFT를 빠르게 계산하는 알고리즘이다.

용어의미
DFT유한 길이 이산 신호를 주파수 성분으로 바꾸는 변환
FFTDFT를 빠르게 계산하는 알고리즘

직접 DFT를 계산하면 복잡도는 다. FFT를 사용하면 보통 에 계산할 수 있다. 이 차이 때문에 Fourier transform은 실제 공학 문제에서도 널리 쓰일 수 있다.


자주 헷갈리는 점

오해정확한 이해
Fourier transform은 정보를 버리는 압축이다일반적으로는 표현 변환이며, 역변환으로 복원 가능하다.
주파수 domain은 음악에만 쓰인다이미지, 시계열, PDE, 통신, 딥러닝 등 매우 넓게 쓰인다.
amplitude만 알면 충분하다phase도 위치와 구조 정보를 담기 때문에 중요하다.
Fourier transform은 모든 신호에 항상 최선이다시간에 따라 주파수 특성이 바뀌는 신호에는 STFT나 wavelet이 더 적합할 수 있다.
CNN은 Fourier transform을 직접 쓰는 모델이다일반 CNN은 직접 FT를 계산하지 않지만, convolution filter를 frequency response로 해석할 수 있다.

핵심 요약

질문
Fourier transform이란?신호를 시간/공간 domain에서 frequency domain으로 바꾸는 변환
무엇을 알려주나?어떤 주파수 성분이 얼마나 강하고 어떤 phase를 갖는지
왜 중요한가?복잡한 신호, convolution, filtering, smoothness를 주파수 관점에서 단순하게 설명한다.
Convolution과 관계는?time/space domain의 convolution은 frequency domain의 곱셈이다.
CNN과 관계는?convolution filter를 주파수 선택적 filter로 해석할 수 있다.
한계는?시간 위치와 주파수 해상도 사이의 trade-off가 있다.

관련 노트


참고

  • Ronald N. Bracewell, The Fourier Transform and Its Applications
  • Alan V. Oppenheim and Ronald W. Schafer, Discrete-Time Signal Processing
  • James W. Cooley and John W. Tukey, “An algorithm for the machine calculation of complex Fourier series”, 1965
  • Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, Chapter 9, “Convolutional Networks”

태그

AI Math FourierTransform SignalProcessing FrequencyDomain Convolution CNN