Software packages performance evaluation of basic radar signal processing techniques - Frantz, Xavier (Department of Electrical Engineering, 2019)
This dissertation presents a radar signal processing infrastructure implemented on scripting language platforms. The main goal is to determine if any open source scripted packages are appropriate for radar signal processing and if it is worthwhile purchasing the more expensive MATLAB, commonly used in industry. Some of the most common radar signal processing techniques were considered, such as pulse compression, Doppler processing and adaptive filtering for interference suppression. The scripting languages investigated were the proprietary MATLAB, as well as open source alternatives such as Octave, Scilab, Python and Julia. While the experiments were conducted, it was decided that the implementations should have algorithmic fairness across the various software packages. The first experiment was loop based pulse compression and Doppler processing algorithms, where Julia and Python outperformed the rest. A further analysis was completed by using vectors to index matrices instead of loops, where possible. This saw a significant improvement in all of the languages for Doppler processing implementations. Although Julia performed extremely well in terms of speed, it utilized the most memory for the processing techniques. This was due to its garbage collector not automatically clearing the memory heap when required. The adaptive LMS (least mean squares) filter designs were a different form of analysis, as a vector of data was required instead of a matrix of data. When processing a vector or one dimensional array of data, Julia outperformed the rest of the software packages significantly, approximately a 10 times speed improvement. The experiments indicated that Python performed satisfactorily in terms of speed and memory utilization. Physical RAM of computer systems is, however, constantly improving, which will mitigate the memory issue for Julia. Overall, Julia is the best open source software package to use, as its syntax is similar to MATLAB compared with Python, and it is improving rapidly as Julia developers are constantly updating it. Other disadvantage of Python is that the mathematical signal processing is an add-on realized by modules such as NumPy.