A core component of the scientific method is reproducibility; that is, that the results of a research study can be reproduced by anyone who has access to the original data, mathematical derivations, and/or programming code. Strictly speaking, a research paper can only advance the state-of-the-art if the results can be reproduced and scrutinized by other researchers.

The research on communications and signal processing is a hybrid of theoretical analysis and experiments (e.g., computer simulations). The research community has a long tradition of developing and publishing rigorous theory, which can be validated and mathematically reproduced. Unfortunately, the simulation part of the research has traditionally not received the same rigorous treatment. Code and datasets are seldom shared with fellow researchers, which makes it a major effort to reproduce the results. I elaborate on this in the article “Reproducible Research: Best Practices and Potential Misuse” published in the IEEE Signal Processing Magazine. I think that publishing simulation code along with journal articles should be the new norm, both to enabler swifter progress, more credible research results, and to make it easier for new researchers to learn good simulation practices.

To promote a higher level of research reproducibility, I have published simulation code along with my textbooks:

I have also published code along with 20+ journal articles and a few conference papers:

Disclaimer: The simulation code is licensed under the GPLv2 license and is delivered as it is. I encourage you to reuse the code in your research, but I cannot give any support. The readme file contains the instructions on how to run the code. As soon as you edit the code, you are on your own. My GitHub page is the only way that I am sharing simulation code, so there is no need to send me emails and ask for code related to other papers. The code is either openly available for everyone or it is not available at all.