chg0901 / scma

SCMA BER simulation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sparse Code Multiple Access (SCMA) scheme demonstration

Bit error rate (BER) simulation of SCMA scheme (based on presentation from 1st 5G Algorithm Innovation Competition) in Matlab/Octave.

Objectives

To provide implementations of SCMA encoding/decoding algorithms for use in the researches of new schemes for 5G telecommunication standard.

Description

This project demonstrates BER simulation of SCMA scheme.

The main features of project:

  • codebooks are from presentation

  • Log-MPA algorithm is used (for improve of performance Max-Log-MPA (branch max_log_mpa, but needs additional testing) is required, where calculation of exp and dynamic range correction at high SNR and/or number of iterations are not required)

  • current version is only demonstration and works with the next SCMA codebooks parameters: M = 4, d_f = 3 and the number of non-zero elements in codewords is equal 2 (notes from paper M. Taherzadeh, H. Nikopour, A. Bayesteh and Hadi Baligh. SCMA Codebook Design).

  • outer parfor loop for SCMA signals

  • MEX implemantation of the algorithm (C source)

The code is written in Matlab, but fully compatible with Octave (parfor loop in Octave needs endparfor instead of end; for Octave 4.2.2 I have no parallel work, parallel execution package may be helpful). Unfortunately, the program executions very slow in Octave.

The mex function generation in Matlab increases the speed of execution approximately in 15 times (for single thread case).

Channel models

  • AWGN channel: h = ones(K, V, N)

  • Uplink, Rayleigh channel without diversity: h = 1/sqrt(2)*(repmat(randn(1, V, N), K, 1)+1j*repmat(randn(1, V, N), K, 1))

  • Rayleigh channel with diversity: h = 1/sqrt(2)*(randn(K, V, N)+1j*randn(K, V, N))

  • Downlink, Rayleigh channel without diversity: h = 1/sqrt(2)*(repmat(repmat(randn(1, 1, N),K, 1), 1, V)+1j*(repmat(repmat(randn(1, 1, N), K, 1), 1, V)))

  • Downlink, Rayleigh channel with diversity: h = 1/sqrt(2)*(repmat(randn(K, 1, N), 1, V)+1j*repmat(randn(K, 1, N), 1, V))

Running

Run script simulation.m.

Future work

Implementation of decoder for arbitrary SCMA codebooks parameters.

Contact

Vyacheslav P. Klimentyev, vklimentyev@gmail.com

Contributions

Thanks to Alexander B. Sergienko, PhD, Saint Petersburg Electrotechnical University "LETI", Saint Petersburg, Russia.

Our publications (SCMA investigation)

About

SCMA BER simulation


Languages

Language:MATLAB 100.0%