A ../data/black_hole.npy
binárisan tárolt file-ban a LIGO detektor legfrissebb mérési adatai találhatóak. Az adatsort a detektor 44100 Hz-es mintavételezési frekvenciával vette fel.
Először betöltjük a szükséges csomagokat
%pylab inline
from scipy.signal import spectrogram
Majd beolvassuk az adatokat, és legyártjuk az idő tömböt, ami a mintavételezési időket tartalmazza. Ezekkel ábrázoljuk a jelet.
adatok = load("../data/black_hole.npy")
t = linspace(0, len(adatok)/44100, len(adatok))
plot(t, adatok)
xlabel("idö", size=12)
ylabel("Jelerösség", size=12)
title("Az adatfájl adatai", size=18, y=1.05)
Ezután, legyártjuk a jel spektrumát, és ezt is ábrázoljuk:
ujfreq,ujt,ujadatok=spectrogram(adatok,44100)
pcolor(ujt,ujfreq,ujadatok)
xlabel("Idö [s]", size=12)
ylabel("Frekvencia [Hz]", size=12)
title("A spektrumban lévö frekvenciák\naz idö függvényében", size=18, y=1.05)
colorbar()
A jel alapján, ahol ténylegesen jelenvan egy frekvencia, ott az intenzitás 2000 körüli, míg a többi helyen 400 alatti. Ha a kritikus határt 1000-nél rögzítjük, ez alapján meg lehet vizsgálni, hogy a mintavétel során mely frekvenciák érik el a kritikus szintet. Ezek közül keressük a legkisebbet és a legnagyobbat:
jelenvan = []
for i in range(len(ujadatok[:,0])):
if max(ujadatok[i,:]) > 1000:
jelenvan += [ujfreq[i]]
print("A jel spektrumában jelenlévő legkisebb fekvencia {} Hz, a legnagyobb {} Hz".format(min(jelenvan), max(jelenvan)))
A jel spektrumának részletes vizsgálatával pedig azt is megállapíthatjuk, hogy a feketelyukak a spájzban vannak.