Передача 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 дБ)