그림 11.1. 위: 대역 ∣ω∣<W에 한정된 스펙트럼. 가운데: ωs>2W이면 복제본(파선)이 겹치지 않습니다. 아래: ωs<2W이면 복제본이 겹쳐 더해지고(굵은 실선) 원래 모양을 알아볼 수 없습니다. 세로 파선은 ±ωs/2.
그림 11.2. sinc 보간. 각 표본에 그 높이의 sinc(회색)를 하나씩 세우고 모두 더하면 원래 신호(굵은 선)가 됩니다. 각 sinc는 다른 표본 위치에서 0이므로 합은 표본점을 정확히 지납니다.
2B를 나이퀴스트율(Nyquist rate), fs/2를 나이퀴스트 주파수(Nyquist frequency)라 합니다. 가장 높은 주파수 성분의 한 주기에 표본이 2개보다 많아야 합니다.
사람의 가청 한계가 약 20 kHz이므로 CD는 fs=44.1 kHz, 전화 음성은 약 3.4 kHz까지이므로 fs=8 kHz를 씁니다.
연속 함수는 무한히 많은 수로 이루어져 있는데 띄엄띄엄한 표본으로 복원된다는 것이 놀라워 보이지만, 대역제한이라는 조건이 그만큼 강합니다. 대역제한된 함수는 표본 사이에서 제멋대로 움직일 수 없습니다.
참고 11.4 (선형대수로 보면).W=ωs/2로 대역제한된 함수 전체는 L2(R)의 부분공간이고, ϕn(t)=sincTst−nTs는 그 직교기저입니다. 파세발 등식으로 ⟨ϕn,ϕm⟩=2π1∫−ωs/2ωs/2Ts2e−jω(n−m)Tsdω=Tsδnm임을 확인할 수 있습니다. 표본화 정리는 이 기저에 대한 전개이고, 표본값이 곧 좌표입니다. 3장 정리 3.17의 또 다른 예입니다.
11.3 에일리어싱
fs≤2B이면 복제본이 겹칩니다. 겹친 부분에서는 서로 다른 주파수 성분이 더해져 구별할 수 없게 됩니다. 이 현상을 에일리어싱(aliasing)이라 합니다. 시간 영역에서 직접 볼 수 있습니다. f와 f+kfs인 두 사인파는 표본점에서 값이 같습니다.
표본화 주파수 fs로 표본화하면 주파수 f인 사인파는 [0,fs/2] 안의 주파수 fa=∣f−fs⋅round(f/fs)∣인 사인파와 구별되지 않습니다.
예제 11.5.fs=8 Hz일 때 7 Hz 사인파는 ∣7−8∣=1 Hz로 보입니다(그림 11.3). fs=44.1 kHz로 30 kHz 음을 표본화하면 44.1−30=14.1 kHz의 가짜 음이 생깁니다.
그림 11.3. 에일리어싱. 7 Hz와 1 Hz의 코사인은 8 Hz 표본점에서 값이 완전히 같습니다.
신호 주파수와 표본화 주파수를 바꾸면 표본점이 보여 주는 주파수가 바뀝니다
이 위젯은 JavaScript가 필요합니다
영화에서 바퀴가 거꾸로 도는 것처럼 보이는 것이 같은 현상입니다(초당 24장의 표본화). 한번 섞인 성분은 표본만으로는 분리할 수 없습니다. 그래서 표본화 전에 아날로그 저역통과 필터로 fs/2 이상의 성분을 없앱니다. 이 필터를 안티에일리어싱 필터라 합니다. 모든 A/D 변환기 앞에 있습니다.
입니다. Ω=0에서 높이 N, 영점은 Ω=2πk/N입니다. 연속의 rect ↔ sinc에 해당하는 “주기적 sinc”입니다.
11.5 네 가지 푸리에 변환
지금까지 네 개의 변환이 나왔습니다. 하나의 원리로 정리됩니다.
한 영역에서 주기적 ⟺ 다른 영역에서 이산적. 표본화 ↔ 주기화(푸아송 합 공식).
주파수: 연속 (시간: 비주기)
주파수: 이산 (시간: 주기)
시간: 연속 (주파수: 비주기)
푸리에 변환 (FT)
푸리에 급수 (FS)
시간: 이산 (주파수: 주기)
이산시간 푸리에 변환 (DTFT)
이산 푸리에 변환 (DFT)
FT에서 출발해 시간을 표본화하면 스펙트럼이 주기화되어 DTFT가 되고, 시간을 주기화하면 스펙트럼이 표본화되어 FS가 됩니다. 둘 다 하면 양쪽 모두 이산적이고 주기적인 DFT다. DFT만이 유한 개의 수를 유한 개의 수로 보내므로 컴퓨터가 계산할 수 있는 것은 DFT뿐입니다.
11.6 DFT로 스펙트럼을 볼 때 일어나는 일
실제로는 유한한 길이 N개의 표본 x[0],…,x[N−1]만 가지고 DFT를 계산합니다. 이것이 원래 신호의 스펙트럼과 어떻게 다른지 단계별로 봅니다.
11.6.1 DTFT의 표본으로서의 DFT
길이 N인 신호의 DTFT와 DFT의 정의를 비교하면
X[k]=Xd(N2πk)
입니다. DFT는 연속 곡선 Xd(Ω)를 간격 2π/N으로 읽은 것입니다. Ω=ωTs=2πf/fs이므로 빈(bin) k의 실제 주파수는
공짜는 없습니다. 부엽을 낮추면 주엽이 넓어집니다. 주엽 폭은 가까이 붙은 두 주파수를 구별하는 능력(해상도(resolution))을, 부엽 높이는 큰 성분 옆의 작은 성분을 찾아내는 능력(동적 범위)을 정합니다. 사각 창은 해상도가 가장 좋고 누설이 가장 나쁩니다.
11.6.4 영 채우기
길이 N인 신호 뒤에 0을 붙여 길이 M>N으로 만든 뒤 DFT를 하면 같은 곡선 Xd(Ω)를 더 촘촘한 간격 2π/M으로 읽게 됩니다. 그래프가 매끄러워지고 봉우리의 위치를 더 정밀하게 읽을 수 있습니다. 그러나 곡선 자체(창에 의해 흐려진 스펙트럼)는 바뀌지 않으므로 가까운 두 주파수를 분리하는 능력은 늘지 않습니다. 해상도를 올리는 방법은 더 오래 관측하는 것뿐입니다.
11.6.5 FFT로 연속 푸리에 변환을 근사하는 절차
x(t)를 tn=t0+nTs (n=0,…,N−1)에서 표본화했다고 합시다. 적분을 리만 합으로 바꾸면
나이퀴스트 주파수는 500 Hz다. 700 Hz는 ∣700−1000∣=300 Hz로 접혀 실제 300 Hz 성분과 겹칩니다. 보이는 것은 100 Hz와 300 Hz뿐이고 300 Hz의 크기는 두 성분의 위상에 따라 달라집니다. fs>1400 Hz가 필요합니다.
문제 2 · 확인 문제
11.2.fs=48 kHz, N=4096인 FFT의 빈 간격과 관측 시간은? 440 Hz와 441 Hz를 구별하려면 빈 간격이 1 Hz보다 작아야 합니다. 그러려면 최소 몇 초를 관측해야 할까요? 소수 둘째 자리까지 적습니다.
값
답
빈 간격 (Hz)
[?]
관측 시간 (ms)
[?]
최소 관측 시간 (s)
[?]
힌트 1
Δf=fs/N, 관측 시간은 N/fs입니다.
정답
11.72
85.33
1
풀이
Δf=48000/4096=11.72 Hz, 관측 시간 4096/48000=85.33 ms다. 1000/11.72=85.33으로 정수가 아니므로 1 kHz 사인파는 누설이 생깁니다. 1 Hz 차이를 구별하려면 빈 간격이 1 Hz보다 작아야 하므로 최소 1초, 한 창(주엽 4빈)을 쓰면 2초 이상이 필요합니다.
문제 3 · 확인 문제
11.3.x[n]이 n=0,1,2에서 1,2,1이고 나머지는 0입니다. DTFT를 구하고 크기를 말합니다.
값
답
∣Xd(0)∣
[?]
∣Xd(π)∣
[?]
∣Xd(π/2)∣
[?]
힌트 1
Xd(Ω)=1+2e−jΩ+e−j2Ω=e−jΩ(ejΩ+2+e−jΩ)입니다.
정답
4
0
2
풀이
Xd(Ω)=1+2e−jΩ+e−j2Ω=e−jΩ(2+2cosΩ)입니다. 크기 2+2cosΩ=4cos22Ω는 Ω=0에서 4, Ω=π/2에서 2, Ω=π에서 0인 저역통과입니다. 위상 −Ω는 한 표본 지연의 선형 위상입니다.
문제 4 · 확인 문제
fs=44.1 kHz로 30 kHz 음을 표본화하면 몇 kHz의 가짜 음이 생길까요?
정답
14.1
풀이
∣30−44.1∣=14.1 kHz다.
문제 5 · 확인 문제
가까이 붙은 두 주파수를 구별하는 능력(해상도)을 높이는 방법은?
영 채우기로 DFT 길이를 늘립니다
관측 시간을 늘립니다
해밍 창을 곱합니다
표본화 주파수만 올립니다
정답
2
풀이
빈 간격은 관측 시간의 역수입니다. 영 채우기는 같은 곡선을 촘촘히 읽을 뿐이고, 창은 주엽을 넓혀 해상도를 오히려 낮춥니다. 관측 시간이 같으면 표본화 주파수를 올려도 빈 간격은 그대로입니다.