Applicability of the Julia Programming Language to Forward Error-Correction Coding in Digital Communications Systems
Loading...
Authors
Quinn, Ryan
Andriamanalimanana, Bruno R.; Advisor
Sengupta, Saumendra; Reviewer
Spetka, Scott; Reviewer
Issue Date
2018-05
Type
Thesis
Language
en_US
Keywords
Julia (programming language) , forward error correction (FEC) , digital signal processing (DSP)
Alternative Title
Abstract
Traditionally SDR has been implemented in C and C++ for execution speed and processor efficiency. Interpreted and high-level languages were considered too slow to handle the challenges of digital signal processing (DSP). The Julia programming language is a new language developed for scientific and mathematical purposes that is supposed to write like Python or MATLAB and execute like C or FORTRAN. Given the touted strengths of the Julia language, it bore investigating as to whether it was suitable for DSP. This project specifically addresses the applicability of Julia to forward error correction (FEC), a highly mathematical topic to which Julia should be well suited. It has been found that Julia offers many advantages to faithful implementations of FEC specifications over C/C++, but the optimizations necessary to use FEC in real systems are likely to blunt this advantage during normal use. The Julia implementations generally effected a 33% or higher reduction in source lines of code (SLOC) required to implement. Julia implementations of FEC algorithms were generally not more than 1/3 the speed of mature C/C++ implementations.While Julia has the potential to achieve the required performance for FEC, the optimizations required to do so will generally obscure the closeness of the implementation and specification. At the current time it seems unlikely that Julia will pose a serious challenge to the dominance of C/C++ in the field of DSP.
Description
Master of Science Project in Computer and Information Sciences, Department of Computer Sciences, SUNY Polytechnic Institute. Approved and recommended for acceptance as a project in partial fulfillment of the requirements for the degree of Master of Science in Computer and Information Sciences.