ARTEMIS DOCUMENTATION
SETUP
Artemis 3 is a python script that uses the power of Python 3.7 with several extra libraries. In order to ensure a simple, clean and non-invasive installation Artemis 3 is shipped with a portable version of Python 3.7 (fully independent from any previous installation) with all the necessary libraries.
Windows
Windows doesn’t offer a native version of Python but the .zip file already contains everything you need (Python 3.7 with additional libraries):
To install Artemis on Windows systems simply extract the .zip content in a folder of your choice and run the executable.
Important: The main folder of Artemis must have read/write permission: this is necessary to download and extract the signals database (DB) correctly.
Mac OS
Mac OS, in some cases, already offers a native version of Python 2 on board but the version 3 is needed to run Artemis flawlessly. This is not a problem since the .dmg already contains a portable copy of Python 3 with all the necessary libraries:
1. To install Artemis on macOS systems double click on .dmg to make its content available (usually, a window opens showing the content as well).
2. Drag the application from the .dmg window into /Applications to install (may need the administrator password).
3. After this step, eject (and remove) the .dmg (by clicking the eject button in the Sidebar).
Important: The main folder of Artemis must have read/write permission: this is necessary to download and extract the signals database (DB) correctly.
Linux
Linux already offers a native version of python on board but the .tar.gz archive already contains a portable copy of Python with the necessary libraries:
To install Artemis on Linux systems simply extract the .tar.gz content in a folder of your choice and run the executable.
Important: The main folder of Artemis must have read/write permission: this is necessary to download and extract the signals database (DB) correctly.
HOW TO CREATE A SHORTCUT
To create a direct shortcut (in the main menu) launch the bash script in the terminal with the command:
./create_shortcut.sh
This script will:
Set the correct read/write privileges of the Artemis folder
Create the artemis.desktop file (shortcut) in /home/$USER/.local/share/applications
Move the icon file artemi3.svg to /usr/share/icons
TECHNICAL DETAILS
Autocorrelation Function
Theoretical Introduction. Correlation Functions are useful mathematical tools adopted in many fields of science, from engineering to physics and chemistry. Cross-Correlation function, often defined as a sliding inner (dot) product, represents the measure of similarity of two signals as a function of a (temporal) shift applied to one of them:

where k and l are two general non-discrete functions without discontinuity, k* is the complex conjugate of k and τ is the lag (time delay for signal analysis). This representation is closely related to the convolution theorem by the following relationship:

In our case the signal must be compared with itself to find periodic patterns or anomalous high “similarity” degree within a time interval. To fulfill our purpose we can use the Autocorrelation Function (ACF) which is a simply cross-correlation of a signal with it self k(t)=l(t). Next equation defines ACF that results from a simple revaluation of the first equation:

Within a discrete data set composed by Y(t) records we can easily calculate autocorrelation from:

where Yi+τ is a lagged data by τ of Yi and Ӯ is the average value of the original data set. Entire denominator is used to keep the normalization condition, indeed ρτ can assume a value between -1 (exact anticorrelation) and +1 (exact correlation). A complete correlation can be only achieved with a perfect overlap of the analyzed function with it self; the simple way to verify that is when τ=0

Example: STANAG 4285 analysis
The first example will be a NATO standard known as STANAG 4285. You can download a .wav sample from HERE. We start to collect some information about the structure of this signal: a good starting point is the official declassified NATO document dated 1989. The main frame structure can be found at Annex A-3/5 with a graphical view at Annex A-7, also reported below:
1 x 80 bits of synchronization pattern
4 x 32 bits of data
3 x 16 bits of reference
Therefore, a full sequence will be composed as the sum of all symbols reported above: 256 symbols recursively transmitted at the ratio of 2400 bauds means a redundancy of 106.66 ms.
To analyze an unknown signal I strongly recommend Signal Analyzer (SA). SA is actually one of the most valuable and priceless software available by Sergey Makarov (Макаров Сергей Михайлович, sadly passed away on 29 May 2012) and it used to perform several tests on data sample coded as .wav or .mp3 file. The signal waterfall is reported below:

When an Autocorrelation function is applied on selected data frame (see above), the result shows a clear recursive pattern with a gap of 106.244 ms between every peak as expected. An ACF refinement can be done into WaveForm windows where we can also notice an identical structure as reported by the specifications


1 – Synchronization pattern is composed by 2400*33.013E-3=79.2 (80) symbols
2 – Data group contain 2400*13.348E-3=32.0 (32) symbols
3 – Reference sequence is formed by 2400*6.674E-3=16.02 (16) symbols