summaryrefslogtreecommitdiffstats
path: root/prog/icmpft/fft.py
diff options
context:
space:
mode:
authorAnton Luka Šijanec <anton@sijanec.eu>2023-12-08 20:17:44 +0100
committerAnton Luka Šijanec <anton@sijanec.eu>2023-12-08 20:17:44 +0100
commit1110aaff07edd87f0ae991d8bc9b0f9b5c571e1f (patch)
tree18374b3ff6cae500b84f6914fef8067d02c3ff3a /prog/icmpft/fft.py
parentkolokvij1.lyx (diff)
downloadr-1110aaff07edd87f0ae991d8bc9b0f9b5c571e1f.tar
r-1110aaff07edd87f0ae991d8bc9b0f9b5c571e1f.tar.gz
r-1110aaff07edd87f0ae991d8bc9b0f9b5c571e1f.tar.bz2
r-1110aaff07edd87f0ae991d8bc9b0f9b5c571e1f.tar.lz
r-1110aaff07edd87f0ae991d8bc9b0f9b5c571e1f.tar.xz
r-1110aaff07edd87f0ae991d8bc9b0f9b5c571e1f.tar.zst
r-1110aaff07edd87f0ae991d8bc9b0f9b5c571e1f.zip
Diffstat (limited to 'prog/icmpft/fft.py')
-rwxr-xr-xprog/icmpft/fft.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/prog/icmpft/fft.py b/prog/icmpft/fft.py
new file mode 100755
index 0000000..d39244a
--- /dev/null
+++ b/prog/icmpft/fft.py
@@ -0,0 +1,23 @@
+#!/usr/bin/python3
+from sys import stdin
+from struct import unpack
+profile = stdin.buffer.read()
+hosts = {}
+for resp in [profile[i:i+32] for i in range(0, len(profile), 32)]:
+ ssec, snsec, rsec, rusec = unpack("!LLLL", resp[0:16])
+ ipaddr = resp[16:32]
+ if ipaddr not in hosts:
+ hosts[ipaddr] = {}
+ stime = ssec*1000000000+snsec
+ rtime = rsec*1000000000+rusec
+ hosts[ipaddr][stime] = rtime-stime
+from numpy.fft import rfft
+import numpy as np
+import matplotlib
+matplotlib.use("GTK3Cairo")
+from matplotlib import pyplot as plt
+for host in hosts:
+ N = 10
+ fft = np.convolve(np.absolute(rfft(list(hosts[host].values()))), np.ones(N)/N, mode='valid')
+ plt.plot(list(range(len(fft))), fft)
+ plt.show()