안녕하세요. 이수민 전문가입니다.
푸리에 변환은 신호에 특정 주파수로 도는 복소 지수 e^(-i2πft)를 곱해 시간 전체로 더해요. 그 주파수 성분이 있으면 곱한 값이 한 방향으로 쌓여 큰 값이 남고, 없으면 0으로 상쇄돼요. 모든 주파수에 반복하면 시간 영역 파형이 주파수 영역 스펙트럼으로 바뀌고, 결과 복소수의 크기가 진폭을, 각도가 위상을 알려줘요.
점 N개로 하는 이산 변환은 N²번 곱해야 하지만, FFT는 짝수, 홀수 번째로 반씩 쪼개 재사용해 N log N번으로 줄여요. 1024점이면 100만 번이 약 1만 번이 돼요.
샘플링은 최고 주파수의 두 배보다 빨라야 해서 CD는 20kHz까지 담으려고 44.1kHz를 쓰고, 이보다 느리면 높은 주파수가 낮은 주파수로 둔갑하는 에일리어싱이 생겨요. 자른 신호 끝이 갑자기 끊기면 스펙트럼이 번져서 윈도우 함수로 끝을 부드럽게 줄여요.
원치 않는 성분을 지우고 되돌리면 노이즈 제거 필터가 되고, MP3나 JPEG는 잘 못 느끼는 성분을 버려 용량을 줄여요 :)