![Loading full text...](/images/jp/spinner.gif)
Full text loading...
Principal component analysis (PCA) is a commonly used technique for data reduction in general as well as for dimensionality reduction in gas identification systems when a sensor array is being used. A complete PCA IP core for gas application has been designed and implemented on the Zynq programmable system on chip (SoC). The new heterogeneous Zynq platform with its ARM processor and programmable logic (PL) was used because it is becoming an interesting alternative to conventional field programmable gate array (FPGA) platforms. All steps of the learning and testing phases of PCA starting from the mean computation to the projection of data onto the new space, passing by the normalization process, covariance matrix and the eigenvectors computation were developed in C and synthesized using the new Xilinx VIVADO high level synthesis (HLS) tool. The eigenvectors were found using the Jacobi method. The implemented hardware of the presented PCA algorithm for a 16×30 matrix was faster than the software counterpart with a speed up of 1.41 times when executed on a desktop running a 64-bit Intel i7-3770 processor at 3.40GHz. The implemented IP core consumed an average of 23% of all on chip resources. The PCA algorithm used in the learning phase is to be executed first for the system to be trained to a specific data set and then produce the related vectors of means along with the eigenvectors that will be used in the testing part. The PCA algorithm used in the testing phase will also be used in real time identification. For testing purpose, a data set that represents the output of a 16-array gas sensor when exposed to three types of gases (CO, Ethanol and H2) in ten different concentrations (20, 40, 60, 80, 120, 140, 160, 180 and 200ppm) was used. The aim was to reduce the 30 samples of 16 dimensions to 30 vectors of 2 or 3 dimensions data depending on the need. The combination between the Zynq platform and the HLS tool showed many benefits, using Vivado HLS resulted in a considerable gain in terms of time spent on prototyping and this is due to the fact that the design was specified in a high level language such C or C++ and not a hardware description language such as VHDL or Verilog. While using the Zynq platform highlighted some interesting advantages compared with conventional FPGA platforms such us the possibility to split the design, executing the simple part in a software manner on the ARM processor and leaving the complex one for hardware acceleration. It is planned to further optimize the IP core using the Vivado HLS directives, the developed core is to be used in a larger gas identification system for dimensionality reduction purpose. The larger gas identification system will be used to identify a given gas and estimate its concentration and will be part of a Low Power Reconfigurable self-calibrated Multi‐Sensing Platform.