/SphereDecoding

Sphere decoding : (SDIRS algorithm) and using Deep Neural Network to improve

Primary LanguageJupyter Notebook

Sphere Decoding

In this project, I have implemented the sphere decoding algorithm based on this paper(SDIRS algorithm), and after creating about 10,000 Test data, I have used the Deep Deural Network to learn the radius of the algorithm(DLbased_SD).

Technology

Python and using Keras for Deep Neural Net. also, I have used Jupyter notebook in DNN codes to a better visual understanding

Results

Part I) sphere decoding algorihtm:

Note : the base of Logarithm at y-axis is M for all results

number of operation for sphere decoding in infinite lattice case with noise variance = 0.01,0.1,1 over 2 <= M <= 10:

number of operation for sphere decoding in infinite lattice case with noise variance = 0.01, over 2<= M <= 200(number of antennas):infinite.py

finite lattice case for 16-QAM symbols at snr = 20dB :finite16QAM.py

Comparing 4-QAM and 16-QAM symbols at snr = 20dB:16QAM_4QAM.py

Comparing (4,16,64,256)-QAM through 10dB-40dB:10dB_to_40dB.py

Part II) Deep Learning part (Comparing DLbased_SD and SDIRS):

source codes:

1)Deep neural network for learning: DNN/DNN.ipynb

2)Comparing the DLbased_SD and SDIRS: Compare_DNN_SDIRS/comp_DNNandSDIRS.py

Comparing the average of runnig time :( Time average of DLbased_SD / Time average of SDIRS):

Comparing number of lattice points inside the sphere as important parameter for complexity: