# Compressive Sensing-Based IoT Applications: A Review
## 5 Challenges and Research Trends
### CS Encoder Design  
The different techniques that explore CS at the sensing layer can contribute significantly to the design of energy-efficient CS-based IoT system by using the CS as a compression technique. However, to fully exploit CS theory, the sensing nodes have to collect directly a compressed form of the signal. Therefore, it is of high importance to design CS-based sensing nodes.  
In fact, one of the main attributes of CS is to shift the high complexity burden from the IoT sensing devices to the gateways that are usually embedded on platforms with much-relaxed computation, communication and energy efficiency abilities. CS is expected to reduce the power consumption of the sensing and the transmission processes. Unlike conventional compression techniques which require some processing to extract the salient information, CS encoding can be implemented in two different modes, analog or digital domains. In analog CS, the linear projection is applied in the analog domain prior to digitization, whereas the digital encoder first quantizes the signal samples and then performs the equivalent modulations using digital logic. CS-based IoT applications require sensing nodes with low-power consumption design, thus they could benefit from research that aims to develop a low rate-energy efficient CS acquisition sensors [36, 141, 142, 37]:  
* Analog CS [143, 144] represents the hardware implementation of the CS acquisition model (Equation (1)) in which the signals are acquired at the sub-Nyquist rate. The CS-based acquired signal is the inner product between the input signal and \(M\) random vectors. In fact, the analog CS encoder is designed using random modulator (RM) [145]. The RM is implemented using a mixer, an integrator, and an analog to digital converter (ADC). The mixer performs the inner product between the signal and the measurement matrix in a sub-Nyquist rate. The integrator accumulates the output voltage of the mixer, and it has to be reset after each sample is taken. Finally, the signal is sampled at rate \(1/\text{M}\) using the ADC. For more illustrations and implementations, the reader can refer to [146, 147].
* Digital CS is performed by sampling the input signal following the Shannon-Nyquist theorem, and then performing \(M\) random modulation. In addition, a non-uniform sampler (NUS) [148] technique can be used, where the CS encoder picks an \(M\) samples randomly from the whole \(N\) dimension vector after the digital conversion. The NUS can be seen as an RM modulator with binary sensing matrix with elements \(\{0,1\}\).
* [PERSON] et al. [37] examined the implementation of both analog and digital encoders and showed that an inexpensive and energy-efficient digital logic is most suitable to implement CS-based data reduction. Moreover, they investigated two scenarios that can occur often in WSN. In the first scenario, the energy consumption of storage/transmission is dominating the total power balance, thus the superior compression performance of analog CS leads to a significant advantageover digital CS. Instead, in scenarios where signal acquisition and processing are dominant, digital encoders are indeed more energy-efficient. The results hold great promises to extend CS application of CS encoder from small WSNs to massive IoT platforms.