
1 SimCommSys: Taking the errors out of error-correcting code simulations Johann A. Briffa and Stephan Wesemeyer Abstract—In this paper we present SimCommSys, a Simulator harness. To do this, it is likely they will have needed to of Communication Systems that we are releasing under an open implement or find at least: a) a fast finite field representation source license. The core of the project is a set of C++ libraries for their code alphabet, b) vector and matrix representations defining communication system components and a distributed Monte Carlo simulator. Of principal interest is the error-control capable of handling finite fields for their encoder and decoder, coding component, where various kinds of binary and non- c) a channel implementation to simulate the transmissions of binary codes are implemented, including turbo, LDPC, repeat- codewords, d) a framework that glues together the encode, accumulate, and Reed-Solomon. The project also contains a transmit, decode steps for a large number of codewords and number of ready-to-build binaries implementing various stages computes the symbol error rate (SER) and frame error rate of the communication system (such as the encoder and decoder), a complete simulator, and a system benchmark. Finally, Sim- (FER), and e) for more complex systems, a way of using CommSys also provides a number of shell and python scripts to this framework on a cluster to speed up the processing time. encapsulate routine use cases. As long as the required components While being able to code these things is arguably a good are already available in SimCommSys, the user may simulate learning experience for any new researcher, most of these complete communication systems of their own design without any implementation tasks are peripheral to the main research additional programming. The strict separation of development (needed only to implement new components) and use (to simulate problem of designing codes. specific constructions) encourages reproducibility of experimental These elements are needed to test the code but should be work and reduces the likelihood of error. Following an overview independent of the code and remain unchanged across codes. of the framework, we provide some examples of how to use the In fact, researchers having to implement these components framework, including the implementation of a simple codec, the separately is a likely source of additional errors which might specification of communication systems and their simulation. hide problems in the performance of the designed code. For ex- Index Terms—communication systems, development frame- ample, a channel which introduces less noise than required for work, Monte Carlo simulation, distributed computing, object- a specific signal-to-noise ratio (SNR) might boost the claimed oriented programming, open-source software performance of a code. Consequently, having a framework of well-tested components that provide all the required features I. INTRODUCTION allows the researcher to concentrate on code design and testing Error-correcting codes are everywhere, from CDs (using it. It also provides other researchers with a means to reproduce Reed-Solomon codes), the now interstellar space communi- the results more easily. cation between NASA and the Voyager 1 probe (using a Current choices for researchers are limited, and each option convolutional code concatenated with a Golay code), to current has its caveats. Perhaps the most popular solution, MATLAB terrestrial HDTV broadcasts (DVB-T2, using concatenated [5] and its Communications Toolbox includes implementations LDPC and BCH codes). Shannon’s seminal paper [1] showed of a very wide range of current schemes. However, it comes at that almost error-free communication is possible provided the a considerable financial cost, particularly for parallel compu- rate of the information transmitted is below the capacity of the tation, limiting its availability to researchers. Furthermore, its channel. Unfortunately, the proof is based on a probabilistic usual workflow requires the user to write scripts to describe argument and does not provide a way of constructing codes a given system, making it easy to introduce logical errors. that achieve the channel capacity while still being practical The interpreted nature of the language also makes the im- to encode and decode. Since then, the error-correction code plementation of novel code constructions inefficient, unless arXiv:1802.08522v1 [cs.IT] 23 Feb 2018 community has developed a plethora of different codes and one makes use of the MATLAB to C/C++ interface (which associated encoders and decoders. Modern codes, such as requires considerable technical skill). An alternative open- turbo [2], LDPC [3] and polar codes [4], have come very source solution exists in the form of IT++ [6], [7], a library of close to the channel capacity while still having encoders and mathematical, signal processing and communication system decoders ‘simple’ enough to be useful. components. While this library includes implementations of As new codes continue to be developed whose performance most current schemes, it is designed to be used by program- need to be evaluated, most researchers in this field will at some mers, and the implementation of a system requires the user point have written a simple test and performance measurement to write C++ code. Notably, the library does not include a simulation framework, so that the user is responsible to collect Manuscript submitted February 20, 2014; accepted May 12, 2014 for results and decide when a simulation has converged. publication in the IET Journal of Engineering. J. A. Briffa and S. Wesemeyer are with the Dept. of Computing, Uni- Our Simulator of Communication Systems (SimCommSys) versity of Surrey, Guildford GU2 7XH, England. Email: [email protected] C++ framework helps address all these issues. It runs on both 2 Encode Map Modulate Create Source Sequence Transmit Codec Mapper Modem Channel Encode → Compare Accummulate Check for Transmit → Sequences Results Convergence Receive Decode Inverse Decode Demodulate Map Communication Results Collector System CommSys Simulator Object Figure 1. The SimCommSys communication system model Binomial Experiment Object Monte Carlo Object Windows and Linux and can also use NVIDIA GPUs using Figure 2. The SimCommSys simulator model CUDA [8]. It has been developed over more than 15 years by the first author and was used successfully in a number of papers [9]–[13]. The source code has been released under the the codec output and to puncture it to increase the code rate. GNU General Public Licence (GPL) version 3 (or later) and Obviously, at the receiving end any interleaving or puncturing can be found, together with its documentation, at: needs to be undone and the received symbols need to be https://github.com/jbresearch/simcommsys. mapped back to the alphabet that the codec understands. Researchers are provided with a host of existing codecs, The modem is responsible for translating the abstract sym- channels, modulators and different performance measures to bols to their equivalent channel representation. A number of gather results quickly. Furthermore, the implementation is different modems are available, including commonly used ones highly modular and every component is designed around for channels with a signal-space representation. These include simple-to-use interfaces which make it straightforward to M-ary phase-shift keying (PSK) with variable M (including extend the framework with new codecs as well as other com- M = 2 for BPSK, etc.) and quadrature amplitude modulation ponents like channels, modulators, etc. as required. Particular (QAM). Null modems are also available for abstract channels. attention is also paid to the correctness of implementation and Finally, the channel represents the medium over which the verifiability, for increased confidence in the results obtained. modulated signal is transmitted and exposed to noise or cor- Internal checks are performed at multiple levels, and are ruption. Again a number of channels are available, including available to the user through the debug build. the commonly used additive white Gaussian noise (AWGN) The rest of this paper is organized as follows. In Section II channel. Asbtract channels are also available, including the we describe the structure of the framework in more detail, q-ary erasure channel, q-ary symmetric channel, and also highlighting the main components of interest. This is then channels with insertion, deletion and substitution errors. In followed by some examples of how to use SimCommSys in the case of such synchronization error channels, the length of Section III and how to extend the framework in Section IV. the transmitted sequence (i.e. entering the channel) might not We conclude with an invitation to other researchers to use and be the same as that of the received sequence. contribute to the project. A summary of the principal communication system com- ponents available in the SimCommSys code base is given in II. SIMCOMMSYS:THE FRAMEWORK Table I. This is followed by a list of codec sub-components A. The communication system model in Table II. Fig. 1 shows a simplified version of the communication system model that is supported by our framework. The codec B. The Monte Carlo simulator model block represents the code that is to be tested, and consists In addition to the ease of setting up different combinations of an encoder and its corresponding decoder. In order to of codecs, mappers, modems and channels, the framework also create a new code, the user simply needs to inherit from the provides a feature-rich simulator. This can be configured to abstract class codec or, if the code can provide soft output, gather numerous performance measurements of the described codec_softout. In turn this inherits from the codec system, including SER, FER, and the timings of various com- class; it is provided for convenience, and also allows iterative ponents. An overview of the simulator model implemented by decoding between the codec and modems that support this. our framework is shown in Fig. 2, where the communication The remaining components are straightforward to explain.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages10 Page
-
File Size-