Skip to content

These repository contains BPSK, BFSK, QPSK, MPSK, and (4,8,16)-QAM in cpp. For plotting the BER vs SNR plot use gnuplot.

License

Notifications You must be signed in to change notification settings

mkmishra2000/Communication_System_in_CPP

Repository files navigation

Communication_System_in_CPP

These repository contains BPSK, BFSK, QPSK, MPSK, (4,8,16)-QAM, hamming distance based decoder, syndrome based decoder, rayleigh fadding, diversity approaches for improving SNR in wireless communication and alamouti code in cpp. For plotting the BER vs SNR plot use gnuplot.

Why this repositary exist?

C++ is faster and efficient than matlab and python. Many a times, students uses python and MATLAB for analysis of communication systems. Without knowing what is going on inside the black box (a inbuilt function). In this repository, a try has been made to design every thing from scratch.

Through this repo, anybody can understand all basic communication system analysis and algorithms in c++. It requires only fundamentals of communication system design as prerequisite.

I personally believe that this repo will be help for c++ lover and communication engineers as well as students. Any further optimazation and improvement is highly appreciable. Any addition of new algorithms and techniques are weclome.

Table of contents

  1. BPSK
  2. BFSK
  3. QPSK
  4. MPSK
  5. MQAM (4,8,16)
  6. Hamming distance based decoder
  7. Syndrome based decoder
  8. Rayleigh fadding channel
  9. Selection gain Diversity
  10. Equal gain Diversity
  11. Maximum gain Diversity
  12. Alamouti code

Few points to be noted

In each content, data is stored in the .dat file format. After that, one can use any platform like MATLAB, OCTAVE or gnuplot for plotting the data or generating the plots. In this repo, gnuplot has been choosen as plotting tool.

plotting demo in gnuplot

Gnuplot demo After this, output is following plot

Demo result

License

MIT

About

These repository contains BPSK, BFSK, QPSK, MPSK, and (4,8,16)-QAM in cpp. For plotting the BER vs SNR plot use gnuplot.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages