세션 목록
LIGO-Virgo 검출기 노이즈는 충분히 짧고 조용한 구간에서는 근사적으로 정상 잡음으로 취급됩니다. 정상·가우시안 노이즈는 서로 다른 주파수 성분 사이에 상관이 없어지고, 각 주파수 성분(복소 푸리에 계수 )은 실수부와 허수부가 각각 독립적인 가우시안 분포를 따르며, 그 분산은 노이즈 PSD 를 따릅니다. 실제 검출기 데이터는 글리치나 스펙트럼 드리프트, 시간에 따라 변하는 선 노이즈, 검출기 커미셔닝 상태 변화 등으로 더 긴 시간에 걸쳐서는 서서히 성질이 바뀌지만, 짧고 조용한 구간에서의 이 근사가 화이트닝이나 매칭 필터 같은 이후 유도의 출발점이 됩니다.
시간 영역에서는 얽혀 있던 노이즈의 통계적 구조가 주파수 영역으로 옮기면 각 주파수 빈마다 독립적인 문제로 쪼개져 훨씬 다루기 쉬워집니다. 이것이 LVC(LIGO-Virgo Collaboration) 분석 대부분이 데이터를 FFT로 먼저 변환해서 분석을 시작하는 이유입니다. (출처: Abbott et al. 2020, Class. Quantum Grav. 37, 055002 — "A guide to LIGO-Virgo detector noise and extraction of transient gravitational-wave signals", Sec. 4)
처리 과정 한눈에 보기
시간 영역 데이터 는 신호를 찾기 쉽게 만들기 위해 보통 다음 순서로 처리됩니다(논문 Eq. 4):
풀어서 보면 세 단계입니다:
Figure 3 — 실제 GW150914 데이터에 적용한 예

Figure 3 (Abbott et al. 2020) — LIGO-Hanford 검출기의 GW150914 부근 4초 스트레인 데이터에 처리 단계를 순서대로 적용한 모습. 위에서부터: 원본 데이터(Hanford Data), Tukey 윈도우 적용 후(Windowed), 화이트닝 후(Whitened), 대역통과 필터링 후(Bandpassed). 마지막 패널에서 t≈0.4초 부근에 GW150914 신호가 뚜렷한 스파이크로 드러난다. 출처: Abbott et al. 2020, Fig. 3.
원본 데이터(Hanford Data)는 저주파 노이즈에 압도되어 있어 맨눈으로는 신호가 전혀 보이지 않습니다. Tukey 윈도우를 적용(Windowed)해 스펙트럼 누설을 줄인 뒤, 위 식대로 화이트닝하면(Whitened) 모든 주파수의 기대 노이즈 기여가 균등해집니다. 마지막으로 대역통과 필터로 35–350 Hz만 남기면(Bandpassed), GW150914 처프 신호가 t≈0.4초 부근에서 뚜렷한 스파이크로 드러납니다.
아래 토글에서 푸리에 변환의 수학적 배경을 더 자세히 살펴봅니다.
실제 LIGO 데이터에서 중력파 신호는 검출기 노이즈보다 훨씬 작습니다. 맨눈으로 시계열 데이터를 보면 신호를 찾을 수 없습니다.
PSD를 정의하기 전에, 검출기 노이즈 를 다룰 때 흔히 가정하는 두 가지 통계적 특성을 짚고 넘어갑니다.
물리적 의미 — "주파수마다 노이즈가 얼마나 강한가?"
LIGO 검출기의 노이즈 스펙트럼을 나타낸 노이즈 버짓 그래프에서, y축은 흔히 "strain/√Hz"로 표시됩니다. 이것이 바로 ASD (진폭 스펙트럼 밀도) 이고, PSD는 그 제곱입니다:
즉 노이즈 버짓 곡선 = ASD 곡선 = 곡선입니다.
PSD의 정의:
서로 상관이 없는(uncorrelated) 잡음 원천들은 PSD에서 더해집니다:
예를 들어 100 Hz에서 ASD ≈ strain/√Hz이라면:
노이즈 버짓 곡선이 낮은 구간(~100–300 Hz)이 바로 PSD가 작은 구간, 즉 LIGO가 가장 잘 볼 수 있는 주파수입니다.
PSD를 알면, 모든 주파수에서 기대되는 노이즈 크기를 대략 같게 맞출 수 있습니다. 이것이 화이트닝입니다. 각 주파수 성분을 로 나누면 노이즈의 주파수 의존성이 평균적으로 사라지고, 모든 주파수가 노이즈 관점에서 비슷하게 기여합니다.
gwpy는 이 과정을 TimeSeries.whiten() 메서드로 자동화합니다. GW150914 데이터로 직접 확인해 보세요:
import matplotlib.pyplot as plt
import numpy as np
from gwpy.timeseries import TimeSeries
t0 = 1126259462.4 # GW150914 GPS 시각
dt = 0.2
strain = TimeSeries.fetch_open_data('L1', t0 - 14, t0 + 14, cache=False)
# -- 화이트닝
white_data = strain.whiten()
white_data.plot(xlim=(t0 - dt, t0 + dt), title='Time-domain data')
white_data.asd(fftlength=2).plot(xlim=(5, 1700), title='Frequency-domain data (ASD)')
plt.ylim(1e-3, 1)
화이트닝 후 데이터를 보면 저주파의 거대한 노이즈가 줄어들고, 100–300 Hz에 묻혀 있던 중력파 신호가 눈에 보이기 시작합니다.
화이트닝을 해도 특정 주파수에는 날카로운 스파이크가 남습니다. LIGO 데이터에는 60 Hz 전원 노이즈와 그 배수에 강한 선 노이즈(Spectral Lines)가 있습니다. 이 선들은 PSD 위에서 좁은 피크로 나타납니다. 화이트닝(PSD 가중)이 이런 정상적인 좁은 대역 잡음의 영향력을 이미 낮춰주지만, 분석에 따라 지속되는 일부 선은 화이트닝 전후에 노치 필터 등으로 추가 처리되기도 합니다.
아래 그래프: GW150914 실제 데이터에 화이트닝을 적용한 전후 비교입니다.
화이트닝 후에도 LIGO 민감 대역 밖의 노이즈는 남습니다.
대역통과 필터(bandpass filter)는 관심 주파수 범위만 통과시키고 나머지를 차단합니다.
gwpy는 TimeSeries.bandpass() 메서드로 이 과정을 간단히 처리합니다:
# -- 대역통과 필터링 (40–400 Hz), white_data는 위 화이트닝 코드에서 이어짐
bp_data = white_data.bandpass(40, 400)
bp_data.plot(xlim=(t0 - dt, t0 + dt), title='Time-domain data')
bp_data.asd(fftlength=2).plot(xlim=(5, 1700), title='Frequency-domain data (ASD)')
plt.ylim(1e-3, 1)
대역 선택에 대하여
교육용 튜토리얼에서는 통상 40–400 Hz 대역을 사용합니다 (위 그래프와 동일; Kanner et al., GWOSC tutorial notebook). LIGO 공식 검출 논문(Abbott et al. 2016, PRL 116, 061102)의 Figure 1은 시각화 목적으로 35–350 Hz 대역통과 필터를 적용했습니다.
실제 검출 파이프라인(PyCBC, GstLAL)은 대역통과가 아닌 고역통과(~20 Hz) 만 적용하고, 매칭 필터 자체가 PSD로 가중 합산하기 때문에 고주파 노이즈가 자연스럽게 억제됩니다 (GWOSC Data Release, GW150914).
신호 처리 기초의 핵심 개념을 점검해봅시다.