Документация Engee

Передача xQAM с аддитивным белым гауссовским шумом

Чтобы смоделировать передачу QPSK // 16QAM // 64QAM // 256QAM с белым аддитивным гауссовским шумом и вывести полученную диаграмму созвездия, можно использовать следующий код

# ----------------------------------------------------
# --- Передатчик
# ----------------------------------------------------
using DigitalComm
using Plots
# --- Параметры
snr		  = 20;
mcs		  = 16;
nbBits	  = 1024* Int(log2(mcs));
# --- Генерация двоичной последовательности
bitSeq	  = genBitSequence(nbBits);
# --- QPSK-сопоставление
qamSeq	  = bitMappingQAM(mcs,bitSeq);
# ----------------------------------------------------
# --- Канал
# ----------------------------------------------------
#  --- AWGN
# Теоретическая мощность равна 1 (нормализованное созвездие)
qamNoise,  = addNoise(qamSeq,snr,1);
# ----------------------------------------------------
# --- Этап Rx: SRRC
# ----------------------------------------------------
# --- Двоичный блок распаковки
bitDec	= bitDemappingQAM(mcs,qamNoise);
# --- Измерение BER
ber	  = sum(xor.(bitDec,bitSeq)) /length(bitSeq);
# --- Отображение созвездия
plt	  = scatter(real(qamNoise),imag(qamNoise),label="Noisy"); scatter!(plt,real(qamSeq),imag(qamSeq),label="Ideal");
xlabel!("Real part");
ylabel!("Imag part");
display(plt);

Строит диаграмму принятого созвездия, подвергнутого воздействию шума (здесь используется SNR 20 дБ)

Constellation