DFT와 GFT의 수식 디테일보다, “데이터 구조가 다르면 푸리에의 기준(주파수)이 어떻게 바뀌는지“를 비교로 이해한다.
- DFT: 값이 놓이는 뼈대가 시간축(고정된 줄)
- GFT: 값이 놓이는 뼈대가 관계망(유동적인 그래프 연결)
푸리에(Fourier)란?
푸리에는 복잡한 신호를 ‘단순한 진동 성분’들의 합으로 쪼개 보는 방법을 말한다.
- 신호(signal): 어떤 위치에 붙어 있는 값
- 시간 t의 값(시계열) / 픽셀 위치의 값(이미지) / 노드의 값(그래프)
- 주파수(frequency): “얼마나 빨리 바뀌거나 반복하나”
- 천천히 변하면 저주파, 급격히 변하면 고주파
- 스펙트럼(spectrum): 주파수별로 성분이 얼마나 있는지 요약한 지도
한 줄 요약 + 비교 표
DFT는 시간 순서(고정 격자) 기준의 주파수, GFT는 연결 관계(그래프) 기준의 주파수다.
| 구분 | DFT | GFT |
|---|---|---|
| 대조되는 관점 | 격자/선형 구조(시간축 고정) | 그래프 구조(연결 유동/복잡) |
| 데이터 타입 | 시계열, 이미지(격자 위 값) | 그래프 위의 지표/신호(노드별 값) |
| 인접성(가중치) | 시간순 1:1 연결(대개 단순) | 임의 노드 간 연결 + 가중치 존재 |
동일한 데이터프레임 구조로 예시 만들기
비교를 쉽게 하려면 “값”과 “구조”를 분리하면 된다.
(A) 값(신호) DF: 어디에 어떤 값이 있나?
signal_df(둘 다 동일하게 사용)- DFT 관점: key = 시간 t, value = x[t]
- GFT 관점: key = 노드 i, value = x[i]
| key | value |
|---|---|
| 0 | 10 |
| 1 | 12 |
| 2 | 13 |
| 3 | 9 |
| 4 | 8 |
즉, “값의 테이블”은 동일하고, 해석만 달라진다.
(B) 구조(연결) DF: 누가 누구랑 얼마나 연결되어 있나? (GFT의 핵심)
edge_dfsrc(source) = 연결의 출발 노드dst(destination) = 연결의 도착 노드weight= 연결 강도
| src | dst | weight |
|---|---|---|
| 0 | 1 | 0.9 |
| 0 | 2 | 0.2 |
| 1 | 2 | 0.7 |
| 2 | 3 | 0.8 |
| 3 | 4 | 0.6 |
여기서 비교 포인트
- DFT는 시간축 자체가 구조(고정)라서 보통
edge_df를 따로 주지 않는다. - GFT는 관계망이 데이터의 일부라서
edge_df가 반드시 필요하다.
데이터 흐름(Flow): “무엇이 입력이고, 무엇이 변환의 기준인가?”
DFT의 데이터 흐름
- 입력: 시간순 신호
x[t](signal_df로 표현 가능) - 기준(좌표계): 시간축 위의 사인/코사인(주기 패턴)
- 출력: 시간 주파수 성분(어떤 주기가 얼마나 섞였는지)
한 줄로:
시간축(고정) 위에서, 신호를 주기 성분으로 바꾼다.
GFT의 데이터 흐름
- 입력: 노드별 신호
x[i](signal_df) - 추가 입력: 그래프 연결(
edge_df) - 기준(좌표계): 그래프 구조를 요약한 행렬(대표적으로 라플라시안)에서 나온 “기준 모양들”
- 출력: 그래프 주파수 성분(그래프 기준으로 얼마나 거친 패턴인지)
한 줄로:
관계망(유동) 위에서, 신호를 “이웃 대비 변화(거칠기)” 성분으로 바꾼다.
가장 중요한 직관: “주파수 = 빠르게 바뀌는 정도” (근데 기준이 다름)
DFT에서 “빠르게 바뀜”
- 시간에 따라 값이 천천히 움직이면 저주파
- 시간에 따라 들쭉날쭉 빠르게 흔들리면 고주파
GFT에서 “빠르게 바뀜”
- 시간 대신 연결된 이웃과 비교한다.
- 연결된 이웃끼리 값이 비슷하면 저주파(부드러움)
- 연결된 이웃과 값이 확 다르면 고주파(경계/거침)
예시로 딱 감 잡기:
- 도시(노드)들이 도로망(엣지)로 연결돼 있고 value가 “미세먼지”라면
- 인접 도시들이 비슷하면 저주파(부드러운 분포)
- 특정 도시만 튀면 고주파(급격한 경계/이상)
목적: “왜 GFT가 필요해?”
DFT는 시간축이 고정인 문제에서 매우 강력하다.
하지만 많은 데이터는 “시간”보다 관계(연결)가 더 본질일 때가 많다.
GFT가 유리한 대표 상황:
- 사용자–상품 추천(누가 무엇과 연결되는지)
- 종목/코인 간 상관 네트워크(같이 움직이는 관계)
- 센서/전력망/도로망(물리적 연결)
- 소셜/인용 네트워크(관계가 정보의 뼈대)
즉, 핵심이 “값이 어디로 영향을 타고 퍼지나“라면 시간축 대신 edge_df(관계망)이 문제를 정의한다.
미니 숫자 예시: 같은 signal_df로 DFT 스펙트럼 vs GFT 스펙트럼
준비: 동일한 값 테이블(signal_df)
| key | value |
|---|---|
| 0 | 10 |
| 1 | 12 |
| 2 | 13 |
| 3 | 9 |
| 4 | 8 |
- DFT: key=시간 (t) 로 해석
- GFT: key=노드 (i) 로 해석
→ 값은 똑같은데, “구조(축)”가 달라지면서 스펙트럼 해석이 달라진다
DFT 스펙트럼: “시간축에서 어떤 주기가 섞였나?”
5개 샘플((N=5))에 대해 DFT를 하면 주파수 bin (k=0..4)가 나온다고 보면 됩니다.
- (k=0): 평균(DC 성분)
- (k=1,4): 비교적 느린 진동(저주파)
- (k=2,3): 비교적 빠른 진동(고주파)
((k=1)과 (k=4), (k=2)와 (k=3)은 대칭이라 크기가 동일하게 나오는 경우가 많아요)
DFT 크기 스펙트럼(정규화: (|X[k]|/N))
| k | 직관적 의미 | |X[k]|/N | 막대(상대크기) |
|---|---|---|---|
| 0 | 평균(DC) | 10.400 | ██████████████████ |
| 1 | 저주파 | 1.273 | ██ |
| 2 | 고주파 | 0.316 | █ |
| 3 | 고주파 | 0.316 | █ |
| 4 | 저주파 | 1.273 | ██ |
해석(한 문장): 이 신호는 “평균(전체 레벨)”이 가장 크고, 그 위에 완만한 흔들림(저주파)이 조금 얹혀 있으며 짧게 지그재그 하는 고주파는 상대적으로 작다.
GFT 스펙트럼: “관계망에서 이웃 대비 얼마나 거친가?”
이번엔 같은 값을 “그래프 위 신호”로 보고, 아래처럼 관계(edge_df)를 정의해봅니다(무방향, 가중치=연결 강도).
그래프 구조(edge_df) 예시
| src | dst | weight |
|---|---|---|
| 0 | 1 | 0.9 |
| 0 | 2 | 0.2 |
| 1 | 2 | 0.7 |
| 1 | 3 | 0.1 |
| 2 | 3 | 0.8 |
| 3 | 4 | 0.6 |
여기서 GFT의 “주파수 축”은 그래프 라플라시안에서 나오는 모드들이고, 각 모드에는 고유값 (\lambda)가 붙는다.
- λ가 작을수록: 이웃끼리 비슷하게 변하는 부드러운 패턴(저 그래프-주파수)
- λ가 클수록: 이웃 대비 급격히 달라지는 거친 패턴(고 그래프-주파수)
GFT 결과
(모드별 크기, 아래는 위 edge_df로 만든 그래프에서 계산한 예시)
| m | λ_m(그래프 주파수) | 직관적 의미 | x̂[m] | 막대(상대크기) |
|---|---|---|---|---|
| 0 | 0.000 | 전체 평균/기본 레벨 | 23.255 | ██████████████████ |
| 1 | 0.374 | 가장 부드러운 변화 | 2.807 | ██ |
| 2 | 1.220 | 중간 변화 | 1.955 | ██ |
| 3 | 2.234 | 더 거친 변화 | 2.139 | ██ |
| 4 | 2.771 | 가장 거친 변화 | 0.962 | █ |
해석(한 문장): 이 신호는 그래프 연결 기준으로도 전체 레벨(모드0)이 지배적이고, 나머지는 “연결된 이웃들 대비” 어느 정도의 변화가 섞여 있다. 특히 그래프 고주파(큰 (\lambda)) 성분이 아주 크진 않아서, 이 그래프 기준으로는 “극단적으로 거친 신호”까진 아니다.
한 번에 비교 핵심(중요)
- DFT 스펙트럼은 “시간축”이 고정이라, 같은
signal_df면 축이 안 바뀜 → 결과 해석이 안정적 - GFT 스펙트럼은 “edge_df(관계망)”이 축을 결정함 → 같은
signal_df라도 edge_df를 바꾸면 스펙트럼이 달라질 수 있음- 예: 0–2의 weight를 크게 만들면(더 강한 이웃) “0과 2가 비슷해야 부드럽다”는 기준이 강해져서, 그 차이를 설명하는 고주파 성분이 커질 수 있음
결론
- 공통: 신호를 “주파수 성분”으로 분해해 패턴을 본다.
- DFT: 고정된 시간축 기준 → “시간에 따른 변화 속도”가 주파수
- GFT: 유동적인 그래프 연결 기준 → “이웃 대비 변화(거칠기)”가 주파수
- 데이터 관점 차이:
- DFT:
signal_df만 있으면 시작 가능(축이 고정) - GFT:
signal_df+edge_df가 필요(축이 관계로 결정)
- DFT: