New Page
still requires a bit of thought
Parameters:
struct rfi5gParameters{
char* name;
uint32_t timestamp;
uint32_t temperature;
uint32_t startFrequency;
}
Constants
General Constants
#define N_SAMPLES 1000
#define NUM_FREQ 62
#define R 10
N_SAMPLES: Number of samples to capture in one frequency bin.
NUM_FREQ: Number of frequency bins.
R: Number of repetitions for the calibration step.
Statistical Constants
#define KU_UPPER_THRES 3.3
#define KU_LOWER_THRES 2.7
#define SK_UPPER_THRES 200
#define SK_LOWER_THRES -200
Upper and lower thresholds for kurtosis and skewness.
Notice that skewness is multiplied by 1000.
Time Domain Constants
For the time domain the threshold is defined as th = βσ + m
#define AGGRESSIVENESS_TIME 1.5
#define PERCENTAGE_TH 0.01
#define K 1.3339
AGGRESSIVENESS_TIME: Aggressiveness Time (aka β) is an empirical value obtained by simulating different INR values.
PERCENTAGE_TH: Percentage Threshold is the minimum percentage to consider the existence of an interferent signal, it is defined as the minimum number of detection out of N_SAMPLES.
Frequency Domain Constants
#define AGGRESSIVENESS_FREQ 1.5
AGGRESSIVENESS_FREQ: Aggressiveness Frequency is an empirical value obtained by simulating different INR values.
Structures Definition
typedef struct{
uint16_t mean;
uint16_t stdv;
uint16_t ku;
int16_t sk;
uint16_t Ndet;
uint8_t decision;
} tRFIbinCapture;
mean: Mean is a statistical parameter that shows the central tendency of the distribution.
stdv: Standard Deviation is the square root of the second standardized moment, it measures the dispersion of the distribution.
sk: Skewness, also known as the third standardized moment, is a metric that characterizes the asymmetry of the distribution.
ku: Kurtosis is the fourth standardized moment, that measures how big are the tails of the distribution.
Ndet: Number of detections counts the number of samples that had surpassed the threshold in time domain algorithm.
decision: Decision is an 8 bits variable, which flags with a pair of bits if an alogorithm has detected an interference.
From the least significant bit to the more significant bit, the flags are grouped in pairs:
-The first two bits are turned on if the statistical domain algorithm detects an interference.
-The second pair of bits are activated if the time domain algorithm detects an interference.
-The third pair of bits are activated if the frequency domain algorithm detects an interference.
-The fourth couple of bits is the combination of the previous decisions, if any algorithm has detected an interference these two bits are turned on.
Due to the possibility of ions or electromagnetic radiation to strike into the electronic circuits, causing an unwanted bit change, commonly refered as single event upset (SEU), each decision bit has a redundancy of one.
typedef struct{
uint16_t id;
tRFIbinCapture captures[NUM_FREQ];
} tRFIsweepCapture;
tRFIsweepCapture: This struct consists in the frequency axis data, since the system does not do a continuous frequency sweep, the axis is discretitzed in NUM_FREQ bins.
id: It is the identifier of a capture.
Data that needs to be added
This is not implemented, but only designed at the moment
- Temperature at beginning and end (internal and antenna) (MAYBE if measurement is interrupted also noted?)
- Timestamp at beginning and end (MAYBE if measurement is interrupted also noted?)
- Which systems have been working meanwhile
Comms considerations
In this section there will be some considerations to take into account when passing the data to Comms
As of now this section is temporal, IN DEVELOPMENT
Non mandatory data:
- Frequency bins with 0 Number of Detections.
- Statistical parameters
- sweepCapture.Id (it is already identifies by timestamp)