1. 개요[편집]
| 깁스 현상 Gibbs phenomenon | |
|---|---|
| 다른 이름 | 빌브라함-깁스 현상, 링잉(ringing) |
| 최초 계산 | H. Wilbraham (1848) |
| 이름의 주인 | J. W. Gibbs (1899, Nature) |
| 초과율 | 뜀 크기의 8.9490% |
| 상수 | $\frac{2}{\pi}\mathrm{Si}(\pi) = 1.17897974\ldots$ |
| 깨지는 것 | 균등수렴 (점별수렴·$L^2$수렴은 멀쩡) |
항을 더 넣으면 나아질 줄 알았지. 봉우리는 좁아지기만 하고 절대 안 내려간다.
깁스 현상(Gibbs phenomenon)은 불연속점을 가진 함수를 푸리에 급수로 전개할 때, 부분합 이 불연속점 바로 옆에서 원래 함수의 뜀(jump) 크기의 약 **8.9490%**만큼 위아래로 초과해 출렁이고, 로 보내도 그 초과 높이가 전혀 줄지 않는 현상이다. 줄어드는 것은 봉우리의 폭뿐이다. 즉 급수는 수렴하는데, 수렴하는 모양이 우리가 기대한 모양이 아니다.
이건 계산 실수도, 반올림 오차도, 부동소수점 문제도 아니다. 무한급수를 유한하게 자르는 행위 자체가 만들어 내는 구조적 결과이고, 그래서 스펙트럴 방법으로 충격파를 풀 때도, JPEG 이미지의 경계에서도, 윈도 함수로 FIR 필터를 자를 때도 똑같은 얼굴로 나타난다. 요약하면 **“고차 근사는 불연속 앞에서 진동한다”**는 명제의 원형이다.
2. 얼마나 넘치나[편집]
가장 깔끔한 표본은 톱니파다. 에서 로 정의하고 주기로 이으면, 원점에서 크기 의 뜀이 생기고 푸리에 급수는
가 된다. 부분합 의 첫 봉우리 값은
인데, 정작 다. 비율을 재면
즉 한쪽 끝값을 17.898% 초과한다. 뜀 전체(위로 8.949%, 아래로 8.949%) 기준으로 말하면 , 흔히 인용되는 **8.9490%**가 이것이다.1 부호만 정리해서 말하면 가 빌브라함-깁스 상수다.
핵심은 이 숫자에 이 없다는 것이다. 이든 이든 봉우리 높이는 같다.
3. 정확히 무엇이 깨지는가[편집]
여기서 초심자가 가장 많이 틀린다. 급수는 수렴한다. 다만 어떤 의미로 수렴하는지가 문제다.
- 점별수렴은 성립한다. 유계변동 함수라면 는 연속점에서 로, 뜀점에서는 좌우극한의 산술평균 로 수렴한다(디리클레-조르당 정리). **고정된 **를 잡고 보면 아무 이상이 없다.
- 수렴도 성립한다. 파세발 항등식에 의해 이다. 초과 봉우리의 폭이 로 줄기 때문에, 높이가 상수여도 오차의 제곱적분은 0으로 간다.
- 깨지는 건 균등수렴뿐이다. 는 0으로 가지 않고 뜀 크기의 약 9%에서 멈춘다.
이 셋을 구분하지 못하면 “푸리에 급수가 틀렸다”는 잘못된 결론에 도달한다. 실제로는 점별로 쫓아가는 지점이 에 따라 계속 이동하기 때문에 아무 점도 손해를 보지 않으면서 최댓값만 살아남는다. 봉우리는 에 있고, 이 커지면 불연속점 쪽으로 미끄러져 들어간다. 잡으려고 하면 도망가는데 사라지지는 않는 셈.
4. 원인은 디리클레 핵[편집]
부분합은 합성곱으로 쓸 수 있다.
은 로 정규화되어 있지만 부호가 계속 바뀐다. 그리고 절댓값 적분(르베그 상수)이
로 로그 발산한다. 커널이 비음수가 아니고 노름이 발산한다는 이 두 사실이 곧 균등수렴 실패의 정체다. 뜀을 지나가는 순간, 계단함수와 진동하는 꼬리의 합성곱이 함수의 첫 봉우리를 그대로 베껴 온다. 위 적분에서 가 튀어나오는 이유가 바로 이것이다.
5. 어떻게 없애나[편집]
전부 한 가지 대가를 치른다. 진동을 죽이면 모서리가 뭉개진다. 공짜는 없다.
체사로/페예르 평균. 부분합들을 다시 평균 낸다.
페예르 핵 은 제곱이라 항상 비음수다. 비음수 커널로 평균 낸 값은 원 함수의 최솟값과 최댓값 사이에 갇히므로 초과가 원리적으로 불가능하다(페예르 정리). 계수 관점에서 보면 번째 계수에 이라는 삼각창을 곱한 것과 같다. 대가는 수렴이 느려지는 것 — 매끄러운 구간에서 원래 였던 정확도가 로 주저앉는다.
시그마 근사(Lanczos). 를 곱한다. 최고 조화항의 한 주기에 걸쳐 국소 평균을 낸다는 해석이 붙으며, 체사로보다 모서리를 덜 뭉개면서 진동을 크게 줄이는 실용적 절충이다.
창함수 / 필터. 결국 위의 것들은 전부 계수에 감쇠 인자를 곱하는 같은 종류의 조작이고, 이 관점의 일반론이 윈도 함수 문서다. 스펙트럴 방법에서는 보통 지수 필터 를 쓴다. 를 키우면 저차 모드는 그대로 두고 고차 모드만 깎아 매끄러운 영역의 정확도 손실을 최소화한다.
후처리 재구성. 게겐바우어 재구성처럼, 부분합 계수만으로 불연속 사이의 매끈한 구간을 스펙트럴 정확도로 복원하는 방법도 있다. 정보는 계수 안에 남아 있고 표현 기저가 나빴을 뿐이라는 발상인데, 파라미터에 민감해서 실무 도입은 제한적이다.2
6. 시뮬레이션에서 만나는 자리[편집]
- 스펙트럴 방법과 충격파. 압축성 유동에 스펙트럴/의사스펙트럴 이산화를 그대로 쓰면 충격파 주변에서 전 영역으로 진동이 퍼진다. 지수 필터나 스펙트럴 소점성(SV)을 넣는 것이 국룰이며, 그래도 안 되면 불연속 갤러킨법 계열로 도망간다(갤러킨 방법 참고).
- 고차 도식의 비물리 진동. 차분 도식에서 2차 이상 선형 도식이 단조성을 유지할 수 없다는 고두노프 정리는, 유한차분 세계에서 깁스 현상과 같은 자리에 앉아 있는 정리다. TVD 한계자·WENO의 비선형 가중은 결국 “불연속 근처에서만 차수를 떨어뜨리는 필터”다. 진동을 수치 소산과 분산 관점에서 보면, 위상오차가 만든 열차가 뒤따라오는 그림과 같다.
- 신호·영상의 링잉. JPEG의 블록 DCT를 양자화로 자르면 경계 주변에 유령 무늬가 생기고, 오디오에서 급격한 저역통과 필터는 프리에코를 남긴다. MRI의 트렁케이션 아티팩트도 같은 뿌리다.
- 고속 푸리에 변환 실무. FFT는 유한 구간을 주기 신호로 간주하므로, 양 끝값이 다르면 그 지점이 자동으로 불연속이 된다. 데이터에 뜀이 없어도 창을 씌우지 않으면 깁스가 생기는 이유다.
한편 웨이블릿 변환은 깁스에서 자유롭지 않다. 국소 지지 덕분에 진동이 불연속 근처로 가둬지긴 하지만, 초과 자체는 남는다(하르 웨이블릿처럼 초과가 없는 특수한 경우가 예외다). “웨이블릿 쓰면 깁스가 없어진다”는 말은 절반만 맞다.3
7. 여담 — 이름값[편집]
깁스가 1899년 Nature에 이 문제를 정리하기 51년 전, 케임브리지의 헨리 빌브라함이 이미 같은 계산을 해서 논문으로 냈다. 아무도 안 읽었다. 정작 깁스도 처음 보낸 편지에서는 틀린 답을 적었다가 다음 편지에서 정정했고, 그 정정본이 정답이었다.4 오늘날 정확한 명칭은 빌브라함-깁스 현상이지만 실무에서는 아무도 그렇게 부르지 않는다. 이 바닥에서 이름은 먼저 계산한 사람이 아니라 유명한 사람이 가져간다는 사실의 교과서적 사례.
8. 관련 문서[편집]
- 푸리에 변환 · 고속 푸리에 변환
- 윈도 함수 · 웨이블릿 변환
- 스펙트럴 방법 · 직교다항식
- 차분 도식 · 수치 소산과 분산
- 충격파 · 압축성 유동 · 리만 솔버
- 보간과 근사 · 수렴성
- 표본화 정리 · 안티앨리어싱
- 디지털 필터 · 주파수 응답 해석
9. Footnotes[편집]
-
이 숫자를 “약 9%“로 외워 두면 대부분의 상황에서 충분하다. 문제는 사람들이 이걸 “N을 늘리면 9%가 줄어든다”로 기억한다는 것. 절대 안 줄어든다. 줄어드는 건 여러분의 인내심뿐이다. ↩
-
게겐바우어 재구성은 “불연속을 알고 있고, 그 사이 구간이 해석적이면 계수만으로 원래 함수를 되살릴 수 있다”는 다소 마술 같은 결과다. 대신 파라미터 두 개를 잘못 고르면 결과가 발산한다. 마술은 원래 성공률이 낮다. ↩
-
정확히는 웨이블릿 부분합의 초과율이 기저에 따라 다르고, 하르 기저는 초과가 0이지만 근사 차수가 1차라 쓸모가 제한적이다. 세상은 공평하다. ↩
-
깁스가 유명해진 분야는 열역학과 통계역학이지 조화해석이 아니다. 벡터 해석 표기법과 깁스 자유에너지를 만든 사람이 남는 시간에 Nature에 쓴 두 페이지짜리 편지가, 100년 뒤 신호처리 교재의 필수 챕터가 됐다. 취미로 한 일이 본업보다 널리 읽히는 흔한 비극(?). ↩