From 113033c7806fc963a796c7867e3b66160d080302 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Wed, 21 Jun 2023 13:47:15 +0200
Subject: [PATCH] Transient detection notes.

---
 .../station2_sdp_transient_detection.txt      | 87 +++++++++++++++++++
 1 file changed, 87 insertions(+)
 create mode 100644 applications/lofar2/doc/prestudy/station2_sdp_transient_detection.txt

diff --git a/applications/lofar2/doc/prestudy/station2_sdp_transient_detection.txt b/applications/lofar2/doc/prestudy/station2_sdp_transient_detection.txt
new file mode 100644
index 0000000000..30f46842d5
--- /dev/null
+++ b/applications/lofar2/doc/prestudy/station2_sdp_transient_detection.txt
@@ -0,0 +1,87 @@
+1) Transient detection (TDet) Design
+
+- no self triggering yet for MVP
+- Pulse detection messages contain event info and timestamp, which is still
+  useful for ligthning science even without dumping buffer.
+
+- will use Hilbert transform of real input and > 30MHz BPF
+  https://nl.mathworks.com/help/signal/ug/single-sideband-modulation-via-the-hilbert-transform.html
+  For the FIR Hilbert transformer we will use an odd length filter which is
+  computationally more efficient than an even length filter. Albeit even
+  length filters enjoy smaller passband errors. The savings in odd length
+  filters is a result that these filters have several of the coefficients that
+  are zero. Also, using an odd length filter will require a shift by an
+  integer time delay, as opposed to a fractional time delay that is required
+  by an even length filter. For an odd length filter, the magnitude response
+  of a Hilbert Transformer is zero for w=0 and w=Ï€. For even length filers the
+  magnitude response doesn't have to be 0 at π, therefore they have increased
+  bandwidths. So for odd length filters the useful bandwidth is limited to
+  0 < w < π.
+
+- https://en.wikipedia.org/wiki/Analytic_signal --> Smith, J.O. "Analytic Signals and Hilbert Transform Filters", in Mathematics of the Discrete Fourier Transform (DFT) with Audio Applications, Second Edition
+- https://nl.mathworks.com/help/dsp/ug/envelope-detection.html
+
+- forced trigger message every 30 s, for logging of default radio environment --> send to LCU2
+  radio triggered message once per hour
+
+
+2) Transient detection:
+- notch filter ?
+- transient detection based on power after 40 - 80 MHz BPF
+- measure power during 10 us to detect pulse, if > threshold then send pulse detection events
+  per signal input via 1GbE
+- e.g. use dead time after a detection to avoid storm of event messages
+
+
+- Waarom kan LIFT niet commensal met BF?
+
+  --> during thunderstorm BF measurements get disturbed anyway
+  --> For maximum transport capacity to CEP
+
+
+3) Cosmic ray
+* Katie Mulrey (RU, Cosimc Ray group)
+* Stijn Buitink (VUB, Cosmic Ray group)
+
+
+4) Meeting Brian, Katie 21 june 2023
+
+https://support.astron.nl/confluence/display/L2M/2023-06-21+LIFT+meeting+notes+on+Transient+Detection
+
+CR = cosmic ray
+LI = Lightning
+
+Complex envelope detector:
+. real --> BPF           --> **2
+       --> BPF + Hilbert --> **2 + --> threshold -- event
+. 32 tap FIR filter, coefficients fixed (CP needed, but in MMAP)
+. 32 * 2 * 12 = 768 multipliers
+. FPGA has 3036 multipliers = 1518 DSP blocks
+. SDP Fsub FIR 192 DSP blocks (16 tap * 12 si = 192)
+           FFT 228 DSP blocks
+  Could gain factor 2 with more efficient real multiplier usage in FIR
+
+Threshold level:
+. fixed
+. via CP most likely
+. tracking dependend on current input power (not needed)
+
+CR, LI pulse duration in comlex envelope is ~50 - 100ns
+. LI burst of 10000's pulses during 1 s flash
+. CR ~ 1 pulse per min
+
+LI binning in time, to limit maximum message rate
+. bin time fixed in time of 10 - 100 us
+. only report strongest event during bin
+. typically each bin will show an event during a flash
+
+Message
+. CR for all inputs that crossed threshold
+. CR sent event message when at least e.g. half of the antenna / FPGA has crossed threshold
+. LI one input per FPGA is enough (or per Station ?)
+. group bins in message to reduce message rate
+. group antennas in mesage to reduce message rate
+. antenna index
+. timestamp of crossing threshold (or of maximum after crossing threshold until uncrossing threshold?)
+. max level of pulse is not needed
+
-- 
GitLab