이산 푸리에 변환(DFT) 계산기
표본 수열을 이산 푸리에 변환해 주파수 성분의 크기와 위상을 보여 줍니다. 빈 번호가 실제로 몇 Hz인지, 주기가 정수로 안 떨어질 때 생기는 스펙트럼 누설이 어떻게 퍼지는지까지 눈으로 확인할 수 있습니다.
나이퀴스트(fs/2)를 넘기면 접혀서 엉뚱한 자리에 나타납니다.
가장 센 성분
8Hz (빈 8)
진폭 1로 추정됩니다. 빈 하나가 1Hz씩이고 볼 수 있는 최대 주파수는 32Hz입니다.
주파수 성분 (0 ~ 32Hz)
막대 하나가 빈 하나입니다. 실수 신호라 0 ~ N/2만 그렸습니다 — 나머지 절반은 거울상입니다.
빈별 값
| 빈 k | 주파수 | 크기 |X| | 진폭 | 위상 |
|---|---|---|---|---|
| 0 | 0Hz | 0 | 0 | 0° |
| 1 | 1Hz | 0 | 0 | 0° |
| 2 | 2Hz | 0 | 0 | 0° |
| 3 | 3Hz | 0 | 0 | 0° |
| 4 | 4Hz | 0 | 0 | 0° |
| 5 | 5Hz | 0 | 0 | 0° |
| 6 | 6Hz | 0 | 0 | 0° |
| 7 | 7Hz | 0 | 0 | 0° |
| 8 | 8Hz | 32 | 1 | -90° |
| 9 | 9Hz | 0 | 0 | 0° |
| 10 | 10Hz | 0 | 0 | 0° |
| 11 | 11Hz | 0 | 0 | 0° |
| 12 | 12Hz | 0 | 0 | 0° |
| 13 | 13Hz | 0 | 0 | 0° |
| 14 | 14Hz | 0 | 0 | 0° |
| 15 | 15Hz | 0 | 0 | 0° |
| 16 | 16Hz | 0 | 0 | 0° |
| 17 | 17Hz | 0 | 0 | 0° |
| 18 | 18Hz | 0 | 0 | 0° |
| 19 | 19Hz | 0 | 0 | 0° |
| 20 | 20Hz | 0 | 0 | 0° |
| 21 | 21Hz | 0 | 0 | 0° |
| 22 | 22Hz | 0 | 0 | 0° |
| 23 | 23Hz | 0 | 0 | 0° |
| 24 | 24Hz | 0 | 0 | 0° |
| 25 | 25Hz | 0 | 0 | 0° |
| 26 | 26Hz | 0 | 0 | 0° |
| 27 | 27Hz | 0 | 0 | 0° |
| 28 | 28Hz | 0 | 0 | 0° |
| 29 | 29Hz | 0 | 0 | 0° |
| 30 | 30Hz | 0 | 0 | 0° |
| 31 | 31Hz | 0 | 0 | 0° |
| 32 | 32Hz | 0 | 0 | 0° |
계산 방법
- 1사인파를 만들거나 표본 수열을 직접 넣습니다.
- 2표본화 주파수(fs)와 표본 수(N)를 정합니다.
- 3막대 그래프에서 어느 빈에 값이 섰는지 봅니다.
- 4표에서 빈 번호가 실제로 몇 Hz인지(k·fs/N) 확인합니다.
- 5주파수를 반 칸씩 옮겨 가며 누설이 어떻게 퍼지는지, 창을 씌우면 어떻게 달라지는지 봅니다.
자주 묻는 질문
k·fs/N입니다. fs는 표본화 주파수, N은 표본 수입니다. 64Hz로 64개를 모았다면 빈 하나가 1Hz씩이고, 같은 fs로 32개만 모았다면 빈 하나가 2Hz씩이라 그 사이 주파수는 표시할 자리가 아예 없습니다.
오래 재야 합니다. 주파수 해상도가 fs/N이고 N/fs가 곧 잰 시간이므로, 해상도는 「얼마나 오래 모았나」의 역수입니다. 표본화 주파수만 높이면 볼 수 있는 최대 주파수(나이퀴스트 fs/2)가 올라갈 뿐 해상도는 그대로입니다.
DFT가 모아 온 N개 표본이 그대로 반복되는 신호라고 여기기 때문에 생기는 번짐입니다. 신호의 주기가 N 안에 정수 번 들어가지 않으면 이어 붙인 자리에 없던 단절이 생기고, 그 단절이 온갖 빈에 에너지를 흩뿌립니다. 8Hz를 64Hz로 64개 모으면 정확히 8주기라 빈 하나에만 값이 서지만, 8.5Hz로 바꾸면 빈 8과 9가 뭉개지고 멀리 떨어진 빈까지 값이 퍼집니다.
표본의 양 끝을 0으로 부드럽게 눌러 이어 붙인 자리의 단절을 줄입니다. 그러면 멀리 퍼지던 자락이 눈에 띄게 줄어듭니다. 대신 봉우리가 이웃 빈으로 번져 넓어지고 진폭이 줄어듭니다. 해닝 창은 평균이 0.5이므로 진폭을 되살리려면 2를 곱해야 하며, 이 도구는 그 보정을 넣어 표시합니다.
입력이 실수이면 X[N−k]가 X[k]의 켤레라 크기가 좌우 대칭이기 때문입니다. 0부터 N/2까지만 보면 되고 나머지는 거울상입니다. 진폭으로 되돌릴 때 0번과 N/2번은 |X|/N, 그 사이 빈은 2|X|/N을 쓰는 것도 대칭인 두 빈이 진폭을 절반씩 나눠 갖고 있기 때문입니다.
결과는 같고 계산하는 방법이 다릅니다. FFT는 DFT를 빠르게 계산하는 알고리즘으로, 정의대로 O(N²)에 도는 것을 O(N log N)으로 줄입니다. 이 도구는 정의 그대로 계산하며, 테스트에서 재귀 FFT로 같은 값이 나오는지 대조합니다.
전송되지 않습니다. 변환은 모두 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 정답지를 넷 두었습니다. 손으로 푼 4점 DFT([1,2,3,4] → 10, −2+2i, −2, −2−2i), 닫힌 형태(상수 수열은 0번 빈에만, 순수 코사인은 k와 N−k에 N/2씩), 원리가 다른 재귀 FFT, 그리고 파스발 정리와 역변환 왕복입니다.
- 진폭 환산은 대칭인 두 빈이 절반씩 나눠 갖는다는 사실을 씁니다. 0번과 (짝수 N의) N/2번은 짝이 없으므로 2를 곱하지 않습니다.
- 해닝 창을 씌우면 진폭이 절반으로 줄어드는데(창의 평균이 0.5), 표시할 때 그만큼 되살립니다. 창을 씌우면 멀리 퍼진 자락이 줄어드는 대신 봉우리가 이웃으로 번지는 것도 테스트로 고정했습니다.
- 정의 그대로 O(N²)에 계산하므로 표본 1024개까지 다룹니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.