LLR по сравнению с демодуляцией трудного решения в Simulink

Эта модель показывает улучшение эффективности BER при использовании отношения логарифмической правдоподобности (LLR) вместо демодуляции трудного решения в convolutionally закодированной линии связи.

Для версии MATLAB™ этого примера смотрите Демодуляцию Отношения логарифмической правдоподобности (LLR).

Системный Setup

Эта модель в качестве примера симулирует convolutionally закодированную систему связи, имеющую один передатчик, канал AWGN и три приемника. Сверточный энкодер имеет уровень кода 1/2. Система использует 16-QAM модуляцию. Модулируемый сигнал проходит через аддитивный канал белого Гауссова шума. Лучший приемник выполняет демодуляцию трудного решения в сочетании с Декодером Витерби, который настраивается, чтобы выполнить декодирование трудного решения. Второму приемнику сконфигурировали демодулятор, чтобы вычислить отношения логарифмической правдоподобности (LLRs), которые затем квантуются с помощью 3-битного квантизатора. Известно, что уровни квантования зависят от шумового отклонения для оптимальной эффективности [2]. Точные контуры квантизатора опытным путем определяются здесь. Декодер Витерби, который настраивается для мягкого декодирования решения, обрабатывает эти квантованные значения. Значения LLR, вычисленные демодулятором, умножаются на-1, чтобы сопоставить их с правильным индексом квантизатора для использования с Декодером Витерби. Чтобы вычислить LLR, демодулятору нужно дать отклонение шума, как замечено в его входе. Третий приемник включает демодулятор, который вычисляет LLRs, которые обрабатываются Декодером Витерби, который настраивается в неквантованном режиме. Эффективность BER каждого приемника вычислена и отображена.

modelName = 'commLLRvsHD';
open_system(modelName);

Системная симуляция и визуализация

Симулируйте эту систему в области значений информационного бита значения Eb/No. Настройте эти значения Eb/No для закодированных битов и многоразрядных символов, чтобы потребовать шумовых значений отклонения для блока AWGN и блока Rectangular QAM Baseband Demodulator. Соберите результаты BER для каждого значения Eb/No и визуализируйте результаты.

EbNo     = 2:0.5:8; % information rate Eb/No in dB
codeRate = 1/2;     % code rate of convolutional encoder
nBits    = 4;       % number of bits in a 16-QAM symbol
Pavg     = 10;      % average signal power of a 16-QAM modulated signal
snr      = EbNo - 10*log10(1/codeRate) + 10*log10(nBits); % SNR in dB
noiseVarVector = Pavg ./ (10.^(snr./10)); % noise variance

% Initialize variables for storing the BER results
ber_HD  = zeros(1,length(EbNo));
ber_SD  = zeros(1,length(EbNo));
ber_LLR = zeros(1, length(EbNo));

% Loop over all noiseVarVector values
for idx=1:length(noiseVarVector)
    noiseVar = noiseVarVector(idx); %#ok<NASGU>
    sim(modelName);
    % Collect BER results
    ber_HD(idx)  = BER_HD(1);
    ber_SD(idx)  = BER_SD(1);
    ber_LLR(idx) = BER_LLR(1);
end

% Perform curve fitting and plot the results
fitBER_HD  = real(berfit(EbNo,ber_HD));
fitBER_SD  = real(berfit(EbNo,ber_SD));
fitBER_LLR = real(berfit(EbNo,ber_LLR));
semilogy(EbNo,ber_HD,'r*', ...
    EbNo,ber_SD,'g*', ...
    EbNo,ber_LLR,'b*', ...
    EbNo,fitBER_HD,'r', ...
    EbNo,fitBER_SD,'g', ...
    EbNo,fitBER_LLR,'b');
legend('Hard Decision Decoding', ...
    'Soft Decision Decoding','Unquantized Decoding');
xlabel('Eb/No (dB)');
ylabel('BER');
title('LLR vs. Hard Decision Demodulation with Viterbi Decoding');
grid on;

Чтобы экспериментировать с этой системой далее, попробуйте различные типы модуляции. Эта система использует сопоставленную схему модуляции двоичного файла более быстрого ошибочного набора, но известно, что сопоставленное сигнальное созвездие Грэя обеспечивает лучшую эффективность BER. Экспериментируйте с различными опциями упорядоченного расположения созвездия в блоках демодулятора и модуляторе. Сконфигурируйте блок демодулятора, чтобы вычислить аппроксимированный LLR, чтобы видеть различие в эффективности BER по сравнению с демодуляцией трудного решения и LLR. Испытайте различную область значений значений Eb/No. Наконец, исследуйте различные контуры квантизатора для своей схемы модуляции и значений Eb/No.

Используя поток данных в Simulink

Можно сконфигурировать этот пример, чтобы использовать управляемое данными выполнение путем установки Доменного параметра на поток данных для Подсистемы Потока данных. С потоком данных, блоками в области, выполняются на основе доступности данных как, а не демонстрационная синхронизация в Simulink. Simulink автоматически делит систему в параллельные потоки. Это авторазделение ускоряет симуляцию и увеличивает пропускную способность. Чтобы узнать больше о потоке данных и как запустить этот пример с помощью нескольких потоков, смотрите Многожильную Симуляцию Сравнения Типов Демодуляции.

% Cleanup
close_system(modelName,0);
clear modelName EbNo codeRate nBits Pavg snr noiseVarVector ...
    ber_HD ber_SD ber_LLR idx noiseVar fitBER_HD fitBER_SD fitBER_LLR;

Выбранная библиография

[1] Дж. Л. Мэсси, "Кодируя и модуляция в цифровой связи", Proc. Международный Цюрихский семинар по цифровой связи, 1974

[2] Дж. А. Хеллер, я. М. Джейкобс, "Viterbi, Декодирующий для Спутника и Космической связи", IEEE® Trans. Comm. Tech. vol COM-19, октябрь 1971