# Compressive Sensing-Based IoT Applications: A Review
## 4 CS-Based IoT Applications
### Processing Layer  
With the deployment of huge, dense WSNs to collect different types of information. Big data is generated from the sensing objects and routed to the cloud. Even though the big data provides a comprehensive knowledge about the sensed phenomena, they require very powerful storage, processing and information retrieving mechanisms. Moreover, big data is usually so massive that it exceeds the capabilities of commonly used computing environments. Thus, it restrains the performance of the IoT platforms by increasing the high-level service requirements (massive storage, expensive processing power, high latency, etc). Subsequently, a major challenge in IoT platforms design is to decide the layer in which the data can be processed. In fact, this decision depends on several factors such as real-time constraints, energy efficiency, communication bandwidth, delay, etc. Therefore, for large-scale IoT platforms in which real-time response and power efficiency are strict requirements, opting for a device-centric processing does not seem to be effective. In a device-centric approach, the micro-controllers embedded within the sensors are exploited to process the data. Nevertheless, the computation/communication resources of these sensors are limited which would lead to poor system performances. On the other hand, opting for a cloud-centric processing can satisfy the computing requirements, however, the transmission of a substantial amount of data over the wireless channel incurs a heavy communication overhead. Consequently, cloud processing usually faces issues of scalability, high energy cost, latency and bandwidth availability [93]. Thus, a trade-off solution can be endorsed by adopting a gateway/fog centric architecture. The IoT gateway devices which are used to provide an interoperability between the different heterogeneous cross platforms are usually installed on powerful computing embedded platforms such as ARM Cortex-A [94]. In addition, smartphones can be used as processing units for gateway centric IoT [95]. Moreover, gateway/fog computing does not only bring the computing platform to the edge of the network but it also provides a low latency, location awareness, smart geographical distribution and on-line analysis [96]. Therefore, moving the computation from the cloud to the edge near the IoT devices would help to meet the computation requirements, to provide real-time response and to improve the scalability of the network. This approach is known as edge computing. Edge computing presents the new trend in IoT infrastructure development; it aims to analyze the time-sensitive data at a platform in a proximity to where the data were initially collected rather than sending many data to the cloud. Edge computing platform does not eliminate the role of cloud computing, however, it will only send selected information and historical analysis for long-term storage and deep data analytic operations. Edge computing can be well suited for CS-based IoT applications, where the compressed data can be reconstructed at the gateway unit, then only the extracted features, the reconstruction reports and other useful service-specific information can be sent to the cloud for further deep learning, classification and objects/events detection. Edge computing leverages the powerful local processing units to shift the data computation and storage from the cloud clusters to the embedded cross platforms. Edge computing can be accomplished using PCs, mobile computing devices, field programmable gate array (FPGAs), etc. Moreover, Edge computing offers real-time analysis and response, low-cost management as well as fewer data transferred to the cloud. From the several available computing platforms, FPGA technology establishes itself as an appealing environment to implement such edge computing platforms. FPGAs would provide energy efficiency, interactivity, powerful computation abilities and reconfigurable embedded system to IoT. Moreover, compared to other computing platforms such as Raspberry Pi, FPGAs provide a better performance [97].