샘플링: 칸 간격과 에일리어싱
자주 하는 실수와 요약
자주 하는 실수
| 실수 |
바른 생각 |
나온 문제 |
| 55분마다 본 분침은 55분 앞으로 간 것으로 보인다 |
분침만 보면 330° 는 거꾸로 30° 와 같은 자리다. 한 바퀴 시간의 절반보다 자주 보아야 방향을 안다 |
문제 1 |
| 음수 주파수는 뜻이 없어 절댓값만 적으면 된다 |
음수는 거꾸로 도는 화살표다. 사인 물결에서는 부호가 뒤집혀 나타난다 |
문제 2 |
| 위치 인코딩은 빠르게 돌릴수록 가까운 자리를 잘 가른다 |
정수 자리에서는 자리 하나에 π 라디안을 넘게 도는 묶음이 더 느리게 도는 묶음으로 둔갑한다 |
문제 3 |
| 가장 빠른 물결의 두 배로 재면 된다 |
정리의 조건은 「두 배보다 촘촘히」다. 꼭 두 배로 재면 재는 시각에 따라 출렁임이 사라질 수 있다 |
문제 4, 9 |
| 샘플 사이는 곧은 선으로 이으면 된다 |
곧은 선은 칸 사이의 휨을 무시한다. 되살리는 펄스는 꼬리가 1/m 로 천천히 줄어 많이 더해야 한다 |
문제 5 |
| 1초에 16000번 재면 16000 Hz 까지 담는다 |
절반인 8000 Hz 아래까지다. 칸을 건너뛰어 샘플링 레이트를 낮추면 빠른 소리가 낮은 소리로 끼어든다 |
문제 6 |
| 셔터 시간은 밝기만 정한다 |
셔터가 열린 동안의 평균이 재기 전의 필터라서 빠른 바퀴살 무늬를 흐린다 |
문제 7 |
| 재고 나서 걸러도 된다 |
재고 나면 둔갑한 물결과 원래 물결을 어떤 계산도 가르지 못한다 |
문제 8 |
| 두 망을 겹친 띠의 간격은 두 줄 간격의 중간쯤이다 |
띠는 두 주파수의 차이로 생겨 줄 간격보다 훨씬 넓다 |
문제 10 |
| 둔갑한 줄무늬는 굵어질 뿐 방향은 같다 |
성분마다 따로 접혀 방향이 거울에 비친 듯 바뀐다 |
문제 11 |
| ReLU 는 출렁이는 횟수를 바꾸지 않는다 |
꺾인 곳이 빠른 물결을 만들고, 그 물결이 나이퀴스트 주파수를 넘으면 둔갑한다 |
문제 12 |
요약
- 에일리어싱: 1초에 fs번 재면 주파수 f와 f − m fs의 물결은 같은 샘플을 낸다. 샘플만 보면 −fs/2와 fs/2 사이의 가장 느린 물결로 보이고, 음수면 거꾸로 돈다. 7 Hz를 초당 8번 재면 1 Hz, 초당 24장 찍은 바퀴는 거꾸로 돈다.
- 샘플링 정리: 신호에 든 물결이 모두 fs/2보다 느리면, 샘플마다 sinc 펄스를 세워 더해 신호 전체를 되살린다. 휘태커, 나이퀴스트, 코텔니코프, 섀넌이 서로 다른 고민에서 같은 「두 배」에 닿았다.
- 앤티에일리어싱 필터: 재고 나면 둔갑을 되돌릴 수 없으니 재기 전에 나이퀴스트 주파수 위를 걷어 낸다. 길이 T의 평균은 주파수 f인 물결의 크기를 sin(πfT)/(πfT)배로 바꾼다. 셔터를 연 시간, 줄이기 전에 흐리기가 이런 필터다.
- 모아레: 가로·세로 칸으로 재면 성분마다 따로 접혀 굵은 띠가 다른 방향으로 생긴다. 두 겹의 무늬가 겹쳐도 굵은 띠가 생긴다.
- ML에서는 위치 인코딩의 가장 빠른 묶음이 나이퀴스트 주파수 아래에 있고, 음성 모델은 샘플링 레이트로 들을 수 있는 소리의 위쪽 끝을 정하며, 최대 풀링과 생성기의 비선형 함수는 필터를 끼워야 밀기에 흔들리지 않는다.
flowchart LR
A["띄엄띄엄 재기<br/>f 와 f − m·fs 는 같은 샘플"] --> B["둔갑하지 않는 범위<br/>|f| < fs/2"]
B --> C["샘플링 정리<br/>sinc 펄스를 더해 되살림"]
A --> D["재기 전에 거르기<br/>나이퀴스트 주파수 위를 걷어 냄"]
A --> E["가로·세로 칸<br/>성분마다 접혀 방향이 바뀜"]
막힌 곳
- 이 장의 신호는 처음부터 끝까지 같은 물결이 되풀이되었다. 「아」에서 「이」로 바뀌는 목소리처럼 물결이 시간에 따라 바뀌면, 「지금 이 순간」의 주파수는 무엇으로 잴 수 있을까? 1초 동안의 샘플 전체를 물결로 나누면 그 물결이 언제 울렸는지는 어디에 남을까?
- 되살리는 펄스는 꼬리가 끝없이 길었다. 한 시각의 값을 알려면 아주 먼 과거와 미래의 샘플까지 필요하다. 짧은 구간만 보고 주파수를 말하면 무엇을 잃게 될까?
- 필터를 끼운 최대 풀링은 한 칸 밀기에 덜 흔들렸지만 완전히 그대로이지는 않았다. 밀어도 답이 그대로이려면 신경망의 연산이 어떤 성질을 가져야 할까?