[SmallSat] FPGA Implementation of PCA Dimensionality Reduction Technique
MetadataShow full item record
The aim of the thesis is to develop an efficient hardware implementation of the PCA (Principal Component Analysis) algorithm for dimensionality reduction in hyperspectral imaging. PCA includes the calculation stages as normalization, covariance matrix calculation and eigenvalue decomposition. An efficient hardware implementation of covariance matrix calculation has been designed in the specialisation project which uses high parallelism. The main focus is performing eigenpair decomposition on the covariance matrix and using BRAM (block RAM) as intermediate storage such that a large covariance matrix can be decomposed in a compact module. Fully parameterized FPGA implementation of eigen decomposition is developed and performed on the covariance matrix. Cyclic-by-row Jacobi method is used to find all the eigenvalues and eigenvectors concurrently. CORDIC algorithm is used with Jacobi for more efficient implementation. The Jacobi is designed in such a way that it can adapt to any FPGA regardless of the amount of available resources. This allows finding solutions to huge dimensional matrices in even small-sized FPGAs, e.g 100x100 by sacrificing a small amount of execution speed. The whole synthesizable PCA design is modelled using VHDL attempting to optimize the design. Zedboard Zynq-7000 series is used as the FPGA. The design is tested on MATLAB. All hardware modules are synthesized using Xilinx Vivado-2017.3 tool. In addition to this, the proposed design is compared to previous works done.