센서는 연속적인 세상을 띄엄띄엄 숫자로 옮깁니다. 몇 번 재야 하는지, 숫자 줄을 주파수로 어떻게 읽는지, 원하는 부분만 어떻게 남기는지를 직접 만지며 봅니다.
센서는 신호를 1초에 fs번 잽니다(표본화 주파수). 표본만 남으면 그 사이 값은 사라지고, 주파수가 fs/2(나이퀴스트 주파수)보다 높은 성분은 더 낮은 주파수와 구별할 수 없게 됩니다. 이것이 앨리어싱입니다. 표본화 정리는 fs/2 아래의 성분만 있으면 표본만으로 원래 신호를 정확히 되살릴 수 있다고 말합니다.
그래서 실제 장비는 표본화 전에 아날로그 저역 필터로 fs/2 위를 먼저 지웁니다. 표본을 얻은 뒤에는 앨리어싱을 되돌릴 수 없습니다.
회색이 원래 사인, 파란 점이 표본, 금색이 표본만으로 복원한 곡선(sinc 보간)입니다. f를 fs/2보다 올리면 금색 곡선이 전혀 다른, 더 느린 사인이 됩니다. 아래 그림은 원래 주파수마다 표본에서 보이는 주파수입니다. 눌러서 f를 바꿀 수 있습니다.
카메라도 초당 몇 장씩 찍는 표본화입니다. 살이 6개인 바퀴는 60° 돌 때마다 같은 모습이라, 한 장 사이에 60°보다 조금 덜 돌면 거꾸로 도는 것처럼 보입니다. 왼쪽은 매끄러운 실제 회전, 오른쪽은 초당 몇 장으로만 다시 그린 것입니다.
어떤 숫자 줄도 여러 주파수의 사인을 더한 것으로 쓸 수 있습니다. 이산 푸리에 변환(DFT)은 N개의 표본을 N개의 주파수 성분으로 바꾸고, FFT는 이를 N log N 번의 계산으로 합니다. 주파수 간격은 fs/N, 곧 기록 길이의 역수입니다. 더 촘촘히 보려면 더 오래 재야 합니다.
기록이 사인의 주기와 딱 맞지 않으면 에너지가 이웃 칸으로 번집니다(누설). 기록 양 끝을 0으로 부드럽게 줄이는 창(Hann, Blackman)을 곱하면 먼 칸으로의 누설은 크게 줄고, 대신 봉우리가 넓어집니다.
아래 스펙트럼의 빈 곳을 누르면 그 주파수와 높이의 사인이 더해지고, 봉우리를 누르면 빠집니다. 위의 시간 신호가 바로 바뀝니다. 사각파 버튼은 홀수 배음 1/k를 더해 사각파에 가까운 모양을 만듭니다.
큰 사인(진폭 1) 옆에 아주 작은 사인(30 Hz)이 있습니다. 큰 사인의 주파수가 칸 사이에 걸리면, 직사각 창(아무것도 안 곱함)에서는 누설이 작은 사인을 덮어 버립니다. Hann이나 Blackman 창으로 바꿔 보세요. 세로축은 dB(20 log₁₀ 진폭)입니다.
필터는 지난 입력(과 지난 출력)에 계수를 곱해 더하는 식 하나입니다. 같은 식이 주파수마다 다른 배율(이득)과 다른 늦음(위상)을 줍니다. 이동 평균과 지수 평균은 가장 흔한 저역 필터지만 잘 지우지 못하는 주파수가 남고, 창 씌운 sinc FIR과 버터워스 IIR은 차단 주파수 위를 더 깨끗하게 지웁니다.
실시간으로 쓰는 필터는 미래 값을 볼 수 없어 반드시 늦습니다. 기록을 다 받은 뒤라면 앞으로 한 번, 뒤로 한 번 걸어 늦음을 없앨 수 있습니다(zero-phase).
입력은 남기고 싶은 2 Hz 사인, 지우고 싶은 25 Hz 사인, 잡음의 합입니다(초당 200 표본). 필터 종류를 고르고 위 주파수 응답 그림을 누르거나 슬라이더로 차단 주파수를 옮겨 보세요. 아래가 실제로 걸러 낸 결과입니다.
위에서 고른 필터를 계단과 짧은 펄스에 걸었습니다. 금색은 실시간처럼 앞으로만 건 것, 파란색은 기록을 다 받은 뒤 앞뒤로 두 번 건 것입니다. 실시간 필터는 계단을 늦게 따라가고, 버터워스는 계단을 조금 넘쳤다 돌아옵니다. 앞뒤로 두 번 건 결과는 늦지 않지만, 출력이 계단보다 먼저 오르기 시작합니다. 미래 값을 쓰기 때문입니다.
주파수가 시간에 따라 바뀌는 신호는 짧은 창으로 잘라 창마다 FFT를 합니다(단시간 푸리에 변환). 세로가 주파수, 가로가 시간, 밝기가 세기인 그림이 스펙트로그램입니다. 창이 짧으면 언제 일어났는지는 잘 보이지만 주파수가 뭉개지고, 창이 길면 그 반대입니다. 두 해상도를 함께 좋게 할 수는 없습니다.
시험 신호(초당 8,000 표본, 2초): 300 Hz에서 1,700 Hz로 오르는 처프, 0.5초에 20 ms짜리 2,500 Hz 짧은 소리, 1.2초부터 1,000 Hz와 1,060 Hz 두 음. 창이 짧으면 짧은 소리는 또렷하지만 두 음이 하나로 뭉치고, 길면 두 음이 갈라지지만 짧은 소리가 옆으로 번집니다.
위 칸에 시간에 따른 주파수 경로를 끌어 그리면, 그 경로대로 사인의 위상을 쌓아 소리를 만들고 스펙트로그램을 그립니다. 들어 보기로 소리를 낼 수 있습니다. 마이크 버튼은 2초를 녹음해 같은 방법으로 그립니다(브라우저 안에서만 계산하고 저장하지 않음).
교육용 페이지입니다. 신호는 모두 브라우저에서 만든 것이며, 마이크 녹음은 이 화면에서만 계산하고 어디에도 보내거나 저장하지 않습니다.