提到引力波,就要提到引力波天文学。引力波天文学是观测天文学的一个新兴分支,主要利用引力波(微小时空扭曲)观测发出引力辐射的天体系统,比如中子星和黑洞等波源、超新星等事件以及大爆炸后不久的早期宇宙演化过程。
爱因斯坦在1915年发表广义相对论,在1916年,预言了引力波的存在。但后续长达一个世纪都未能成功捕获引力波,直至1974年。在1974年普林斯顿大学的拉塞尔·赫尔斯和约瑟夫·泰勒发现脉冲双星 PSR 1913+16,该双星的轨道演化规律符合引力波理论的预测。此时,人类首次实现了引力波探测。
广义相对论预言的引力波来自于宇宙间带有强引力场的天文学或宇宙学波源,他是波源整体的宏观产物。近半个世纪以来的天体物理学研究表明,引力波有着极其丰富的波源,比如银河系内的双星系统(白矮星、中子星或黑洞等致密星体组成的双星)、河外星系内的超大质量黑洞的并合、脉冲星的自转、超新星的引力坍缩、大爆炸留下的背景辐射等等。
引力波的观测意义不仅在于对广义相 对论的直接验证,更在于它能够提供一个观测宇宙的新途径,就像观测天文学从可见光天文学扩展到全波段天文学那样极大扩展人类的视野。传统的观测天文学完全依靠对电磁辐射的探测,而引力波天文学的出现则标志着观测手段已经开始超越电磁相互作用的范畴,引力波观测将揭示关于恒星、星系以及宇宙更多前所未知的信息。
同时由于引力波与物质的相互作用非常弱,引力波探测并非是单纯意义的观测天文学。其更像是一个多领域的复合体,引力波天文学涉及以广义相对论为基础的理论和实验天体物理学、激光物理、数字信号处理、控制论、概率统计等多方面的领域。无论是工程上,还是科学上,引力波探测一直在挑战人类的极限。从数据角度而言,过往人类的观测是直接的,高信噪比的,是简单的“看山是山, 看水是水”阶段;但对于引力波天文学,特别是空间引力波探测,其观测是低信噪比的,我们无法直接地“看山是山,看水是水”,需要对数据进行深度地挖掘, 进行更仔细地分析,才能实现空间引力波探测,此时,人们跳跃至“看山还是山, 看水还是水”。
简单一点说,引力波有着极其丰富的波源,比如银河系内的双星系统(白矮星、中子星或黑洞等致密星体组成的双星)、河外星系内的超大质量黑洞的并合、脉冲星的自转、超新星的引力坍缩、大爆炸留下的背景辐射等等。引力波的观测意义不仅在于对广义相对论的直接验证,更在于它能够提供一个观测宇宙的新途径,就像观测天文学从可见光天文学扩展到全波段天文学那样极大扩展人类的视野。传统的观测天文学依靠对电磁辐射的探测,而引力波天文学的出现则标志着观测手段已经开始超越电磁相互作用的范畴,引力波观测将揭示关于恒星、星系以及宇宙更多前所未知的信息。
Freespace gravitational wave example
## GT0568 time-frequency map example ##import numpy as np
from matplotlib import pyplot as plt
import sys
sys.path.insert(0, '../')
import gw_cwt# Load waveform data
data = np.loadtxt('GT0568_edgeon_clean.txt')
sample_times = data[:,0]
signal = data[:,1]### CWT #### Transform parameters for mother wavelet
Q = 5.0 # quality factor
chirp_rate = 0.00 # chirp param - set to zero for Morlet-Gabor wavelet
f_range = (30.0,300.0)
freq_spacing = 'Log'
n_conv = 400
cwt_result = gw_cwt.build_cwt(signal, sample_times, Q=Q, chirp_rate=chirp_rate, f_range=f_range, freq_spacing=freq_spacing, n_conv=n_conv, Norm=True)wfreqs = cwt_result['frequencies']
fmap = cwt_result['map']
scales = cwt_result['scales']print('CWT done, beginning plots')#
# Plotting
#plt.close('all')plot_domain = [-0.1, 0.05]
plot_range = [-1.25, 1.25]fig_size = (16,9)
#
# Spectrograms
#fig1, ax1 = plt.subplots(figsize=fig_size, ncols=1, nrows=1)
fig1.patch.set_facecolor('white')spec = ax1.pcolormesh(sample_times, wfreqs, fmap, rasterized=True, shading='auto', cmap='viridis', alpha = 1)ax1.set_ylabel('Frequency [Hz]')
ax1.set_xlabel('Time [s]')clb = fig1.colorbar(spec, ax=ax1, shrink=0.9, pad=0.01)
clb.ax.tick_params(labelsize=12)
clb.ax.set_title(r'$T\left(t, f\right)$', fontsize=14, pad=10)plt.show()知乎学术咨询:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1
import gw_cwt.cwt_catalog as cwt_catcwt_cat.get_data(event='GW150914')
cwt_cat.run_cwt('cwt_data', Q=6.0, chirp_rate=0.0, path='', events=None, f_range=(10.0, 500.0), freq_spacing='Log', n_conv=400, df=None, da=None, f_list=None, Norm=True)
cwt_cat.plot_cwt('cwt_data', savefig=False)
Retrieving data...
Full name for event GW150914 not entered. Set it to GW150914-v3.
Done retrieving data!
Starting to make h5py file
h5py file complete
Done! Your h5py file is located in this directory and is called cwt_data.
Starting CWT
running CWT on GW150914-v3, detector H1...
CWT done for GW150914-v3, detector H1
running CWT on GW150914-v3, detector L1...
CWT done for GW150914-v3, detector L1
Done running cwt, saving data...
Data saved
Done! Data saved to cwt_data
Done with merger GW150914-v3 at H1.
工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。