Engee documentation

Transmission of xQAM with additive white Gaussian noise

To simulate a transmission of QPSK // 16QAM // 64QAM // 256QAM other a white additive Gaussian noise and display the received constellation, the following code can be used

# ----------------------------------------------------
# --- Transmitter
# ----------------------------------------------------
using DigitalComm
using Plots
# --- Parameters
snr		  = 20;
mcs		  = 16;
nbBits	  = 1024* Int(log2(mcs));
# --- Binary sequence generation
bitSeq	  = genBitSequence(nbBits);
# --- QPSK mapping
qamSeq	  = bitMappingQAM(mcs,bitSeq);
# ----------------------------------------------------
# --- Channel
# ----------------------------------------------------
#  --- AWGN
# Theoretical power is 1 (normalized constellation)
qamNoise,  = addNoise(qamSeq,snr,1);
# ----------------------------------------------------
# --- Rx Stage: SRRC
# ----------------------------------------------------
# --- Binary demapper
bitDec	= bitDemappingQAM(mcs,qamNoise);
# --- BER measure
ber	  = sum(xor.(bitDec,bitSeq)) /length(bitSeq);
# --- Display constellation
plt	  = scatter(real(qamNoise),imag(qamNoise),label="Noisy");
scatter!(plt,real(qamSeq),imag(qamSeq),label="Ideal");
xlabel!("Real part");
ylabel!("Imag part");
display(plt);

It plots the received constellation impaired by noise (here a 20dB SNR is used)

Constellation