About The Project

The Zn2Z^2_n Software was developed by Yohan Alexander as a research project, funded by the CNPq Institution, and it is a Open Source initiative. The program allows the user to calculate periodograms using the Zn2Z^2_n statistics a la Buccheri et al. 1983.

The Zn2Z^2_n is a periodogram based on the Rayleigh method, which applies the time samples in a signal to a Fourier analysis. This method has been shown to be useful in detecting periodic signals at high frequencies associated with the rotation of compact objects.

First, each event is reduced to a phase value ϕj\phi_j, in the range of 0 to 1, where frac(x)=xxfrac (x) = x - \lfloor x \rfloor such that for the jj-th event we have the following equation, where Δtij\Delta t_{ij} is the time of the event under analysis tjt_j minus the time of the first detected event T0T_0.

ϕj[0,1]=frac(viΔtij+v˙iΔtij22+v˙iΔtij36) \phi_j [0,1] = frac(v_i\Delta t_{ij} + \dot v_i \frac{\Delta t^2_{ij}}{2} + \dot v_i \frac{\Delta t^3_{ij}}{6})

The Zn2Z^2_n power spectrum, where nn is the number of harmonics included in the power, and NN is the number of events, is calculated from the equation which is defined as follows.

Zn2=2Nk=1n[(j=1Ncos(kϕj))2+(j=1Nsin(kϕj))2] {\color{red}Z^2_n =} {\color{blue}\frac{2}{N}} {\color{black}\cdot} {\color{green}\sum_{k=1}^{n}} [({\color{green}\sum_{j=1}^{N}} {\color{magenta}cos}({\color{red}k}{\color{blue}\phi_j})) ^ 2 + ({\color{green}\sum_{j=1}^{N}} {\color{magenta}sin}({\color{red}k}{\color{blue}\phi_j})) ^ 2]

Note that this is potentially very computationally expensive, as there are two variables by which we are doing a loop, k\color{red}k which represents the frequencies, and j\color{blue}j which are the indices of the event.

Think of the loop j\color{blue}j as being within the loop k\color{red}k. For each new k\color{red}k, we get the full range of j\color{blue}j, which is why the periodogram can sometimes be very slow, since the execution time of the algorithm grows at a exponential rate O(n2)O(n^2).

Built With

The Z2n Software was built using the Python open source language, and optimized with the Numba JIT (just-in-time) compiler.