Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it - Brian Wilson Kernighan


Compression Algorithms for Biosignals acquired from Wearable IoT Devices

Wearable Internet of Things (IoT) devices permit the massive collection of biosignals (e.g., heart-rate, oxygen level, respiration, blood pressure, photo-plethysmographic signal, etc.) at low cost. These, can be used to help address the individual fitness needs of the users and can be exploited within personalized healthcare plans. In our recent research activity, we have developed algorithms for the lightweight and efficient (lossy) compression of these signals. Below, you will find the link to a Matalb demo code that we used to demonstrate the strikingly good performance of our signal compression technique based on denoising autoencoders [SPL15]. ECG and PPG signals from the Physionet database and our own collected traces from a Zpehyr BioHarness 3 chestband were used for the tests.

  • Developers: Davide Del Testa, Michele Rossi
  • Download: Matlab code (downloadable as a Media file from IEEExplore)


Compressive Data Gathering

Compressive Sensing (CS) is an efficient signal processing technique for the acquistion and reconstruction of signals. Since 2009, we have designed several CS-based compression strategies, using them to efficiently gather data in distributed (multi-hop) Wireless Sensor Networks (WSNs). For an efficient utilization of CS, it is of utmost importance to find a suitable transformation basis under which the signal of interest is sparse. Typically, standard transforms such as FFT and DCT do a good job for video signals, but in [ITA09] we found that this is not the case for environmental WSN signals, and this substantially affects the performance of CS recovery algorithms in WSNs. To solve this, in [TW12] Principal Component Analysis (PCA) was used to find good sparsification bases "on-the-fly", i.e., by analyzing (at runtime) the signal that is being sampled. This made it possible to efficiently use CS in WSNs but we noted that there was still room for improvement. In the recent paper [SE15], we further enhanced the technique of [TW12] by refining they way in which we capture the spatio-temporal correlation properties of the WSN field. To do that, we combined covariogram estimation techniques (geostatistics) with another recent technique from the literature, which is called "Kronecker CS". This led to a very efficient CS sampling and compression algorithm (that in [SE15] is compared against popular compression algorithms from the literature as well as with several CS variants).

Next, you can find our implementation of the NESTA CS recovery algorithm [CS1] and as well the Matlab code [CS2] that we used in [SE15] to assess the performance of our Covariogram-based CS (and other compression algorithms) for correlated spatio-temporal signals.

[CS1] NESTA CS recovery algorithm

[CS2] Covariogram-based CS

Our papers

Acknowledgments: the work on CS has been funded in part by the University of Padova, through the project "MOSAICS: MOnitoring Sensor and Actuator networks through Integrated Compressive Sensing and data gatering" (grant. no. CDPA 094077, 2009-2011).

Modeling and Generation of Space-Time WSN Signals

In the past few years, a large number of networking protocols for data gathering through aggregation, compression and recovery in Wireless Sensor Networks (WSNs) have utilized the spatio-temporal statistics of real world signals in order to achieve good performance in terms of energy savings and improved signal reconstruction accuracy. Nevertheless, little has been said in terms of suitable spatio-temporal models of the signals of interest. These models are very useful to prove the effectiveness of the proposed data gathering solutions as they can be used in the design of accurate simulation tools for WSNs. In addition, they can also be considered as reference models to prove theoretical results for data gathering algorithms. We addressed this gap by devising a mathematical model for real world signals that are correlated in space and time. Our method allows one to reproduce synthetic signals with tunable correlation characteristics. The accuracy of this method has been tested through analysis and comparison against large data sets from real world testbeds. A scientific paper has been published to IEEE GLOBECOM 2011 (see below). Next, you can download the Matlab code of our signal generation tool.

  • Developer: Davide Zordan.
  • Acknowledgements: this work has been funded in part by the University of Padova, through the project "MOSAICS: MOnitoring Sensor and Actuator networks through Integrated Compressive Sensing and data gatering" (grant. no. CDPA 094077, 2009-2011).
  • Download: Matlab code for the generation of Space-Time correlated WSN data [2.3 MB]


CoAP implementation for TinyOS

This TinyOS library is a nesC implementation of the CoAP-01 draft currently being discussed by the IETF Core working group. It is designed to handle up to COAP_MAX_TRANSACTION concurrent transactions (default: 5). The library offers two different interfaces CoAPClient and CoAPServer, which respectively implement client and server functionalities. The implementation of the actual client and server functions are merged in the library to enable high code-reuse thus minimizing RAM/ROM occupation. This implementation has been tested on the telosb platform.


Synapse: wireless reprogramming for WSNs

Synapse++ is a reprogramming system for wireless sensor networks (WSNs) exploiting Fountain Codes (FCs). These allow it to scale in highly populated and noisy networks. In order to speed up the decoding process and decrease its computational complexity, we engineered the FC encoding distribution through a genetic optimization approach, so as to make FCs usable in resource constrained sensor nodes. Further, novel channel access and pipelining techniques have been jointly designed so as to fully exploit the benefits of FCs, mitigate the hidden terminal problem and reduce the number of collisions. All of this makes it possible for Synapse to recover data over multiple hops through overhearing by limiting, as much as possible, the number of explicit retransmissions. Synapse also features new bootloader and memory management modules which makes it possible to load and disseminate program images written using any language. Below, you can download the TinyOSv2 implementation of the Synapse reprogramming suite.

SYNAPSE++ has been integrated into WSN products from WORLDSENSING for the fast deployment and over the air software update of their WSN solutions!



Secure Code Update

Secure Code Update (SCU) is a secure wireless reprogramming system for Wireless Sensor Networks (WSNs). This solution achieves different security goals. 1) Through a dedicated authentication protocol it provides protection against the corruption of code images during their dissemination. Authentication routines exploit a lightweight asymmetric T-time signature algorithm and allow the out-of-order reception of data blocks. 2) Confidentiality is provided through the implementation of a lightweight symmetric encryption suite, designed to leverage the processing capabilities offered by IEEE 802.15.4 radios. 3) Also, SCU offers protection against denial of service attacks at the data link layer.


Optimization Software

Stochastic Shortest Path Solver

This code implements the Stochastic Shortest Path (SSP) solver proposed in [SSP] and is based on the Focused Real Time Dynamic Programming algorithm of [FRTDP]. This is an optimized algorithm to solve SSP problems having a very large state space (successful tests have been run for up to 1 billion of states). The code below can be used to obtain the results of [SSP] and can be easily modified to solve any other SSP problem. Our implementation uses the Boost C++ Libraries, which must be installed to successfully compile the code.



SolarStat: Modeling Photovoltaic Sources through Stochastic Markov Processes

The Matlab code below implements a tool to derive simple but yet accurate stochastic Markov processes for the description of the energy scavenged by outdoor solar sources. In particular, we target photovoltaic panels with small form factors, as those exploited by embedded communication devices such as wireless sensor nodes or, concerning modern cellular system technology, by small-cells. Our models are especially useful for the theoretical investigation and the simulation of energetically self-sufficient communication systems including these devices. The Markov models that can be obtained with SolarStat are obtained from solar radiation databases. Below, you can download the Matlab code along with the solar radiance data from NREL: The National Renewable Energy Laboratory for years 1999 to 2010 for several locations in the US (Chicago, Los Angeles, Odessa, Reno and New York). These radiance patterns are already formatted and ready for being used with the SolarStat tool. A paper describing the adopted methodology and the results that we have obtained is available below.