Серый закодированный 8-PSK

Эта модель, doc_gray_code, показывает линию связи с помощью серо-закодированной модуляции 8-PSK. Серое кодирование является методом, часто используемым в многоуровневых схемах модуляции минимизировать частоту ошибок по битам путем упорядоченного расположения символов модуляции так, чтобы бинарные представления смежных символов отличались только на один бит.

Структура примера

Модель в качестве примера включает эти блоки:

  • Блок Random Integer Generator служит источником, производя последовательность целых чисел.

  • Блок Integer to Bit Converter преобразует каждое целое число в соответствующее бинарное представление.

  • Блок AWGN Channel добавляет белый Гауссов шум в модулируемые данные.

  • Блок M-PSK Demodulator Baseband демодулирует поврежденные данные.

  • Блок Bit to Integer Converter преобразует каждое бинарное представление соответствующему целому числу.

  • Одна копия блока Error Rate Calculation (пометил Error Rate Calculation1 в этой модели), сравнивает демодулируемые целочисленные данные с данными о первоисточнике, давая к ошибочной статистике символа. Выход блока Error Rate Calculation является трехэлементным вектором, содержащим расчетный коэффициент ошибок, количество ошибок, наблюдаемых, и обработанный объем данных.

  • Другая копия библиотечного блока Error Rate Calculation (пометил Error Rate Calculation2 в этой модели), сравнивает демодулируемые двоичные данные с бинарными представлениями исходных данных, давая к статистике битовой ошибки.

Серо-закодированная модуляция M-PSK

В этой модели, блоке M-PSK Modulator Baseband:

  • Принимает входные параметры с бинарным знаком, которые представляют целые числа между 0 и M − 1, где M является размером алфавита

  • Двоичные представления карт точкам созвездия с помощью серо-закодированного упорядоченного расположения

  • Производит фазовращатель комплекса модульной величины выходные параметры, с равномерно расположенными с интервалами фазами между 0 и 2π (M − 1)/M

Таблица показывает, которому бинарные представления во входе соответствуют который фазовращатели в выходе. Второй столбец таблицы является промежуточным представлением, которое блок использует в его расчетах.

Вход модулятораСеро-закодированное упорядоченное расположениеМодулятор Выход
0000exp(0) = 1
0011exp(/4)
0103exp(j 3π/4)
0112exp(j 2π/4) = exp(/2)
1007exp(j 7π/4)
1016exp(j 6π/4) = exp(j 3π/2)
1104exp(j 4π/4) = exp()
1115exp(j 5π/4)

Таблица ниже видов первые два столбца приведенной выше таблицы, согласно выходным значениям. Эта сортировка делает его более ясным, что полный эффект этой подсистемы является отображением Кода Грея, как показано на рисунке ниже. Заметьте, что числа во втором столбце приведенной ниже таблицы появляются в против часовой стрелки порядке на рисунке.

Модулятор ВыходВход модулятора
exp(0)000
exp(j π/4)001
exp(j 2π/4) = exp(/2)011
exp(j 3π/4)010
exp(j 4π/4) = exp()110
exp(j 5π/4)111
exp(j 6π/4) = exp(j 3π/2)101
exp(j 7π/4)100

Исследование примера

Можно анализировать данные, которые пример производит, чтобы сравнить теоретическую эффективность с эффективностью симуляции.

Теоретическая вероятность появления ошибки символа MPSK

PE(M)=erfc(EsN0sin(πM))

где erfc дополнительная функция ошибок, Es/N0 является отношением энергии в символе к шумовой степени спектральная плотность, и M является количеством символов.

Чтобы определить вероятность битовой ошибки, вероятность появления ошибки символа, PE, должна быть преобразована в свою эквивалентную битовую ошибку. Нет никакой общей формулы для символа к преобразованию битовой ошибки. Верхний и нижние пределы, тем не менее, легки установить. Фактическая вероятность битовой ошибки, Pb, как могут показывать, ограничена

PE(M)log2MPbM/2M1PE(M)

Нижний предел соответствует случаю, где символы подверглись Грэю, кодирующему. Верхний предел соответствует случаю чистого двоичного кодирования.

Результаты симуляции

Чтобы протестировать схему модуляции Кода Грея в этой модели, симулируйте graycode модель для области значений значений Eb/N0. Если вы хотите изучить частоты ошибок по битам, но не коэффициенты ошибок символа, то можно использовать bertool графический интерфейс пользователя как описано в BERTool.

Остальная часть этого раздела изучает и бит и коэффициенты ошибок символа и следовательно не использует bertool.

Поскольку увеличение значения Eb/N0 понижает количество произведенных ошибок, продолжительность каждой симуляции должна быть увеличена, чтобы гарантировать, что статистические данные ошибок остаются устойчивыми.

Используя sim (Simulink) управляет, чтобы запустить симуляцию Simulink® из командного окна MATLAB®, следующий код генерирует данные для кривых коэффициента ошибок и частоты ошибок по битам символа. Это считает значения Eb/N0 в области значений от 0 дБ до 12 дБ, с шагом 2 дБ.

M       = 8;
Tsym    = 0.2;
BERVec  = [];
SERVec  = [];
EbNoVec = [0:2:12];
for n   = 1:length(EbNoVec);
    EbNo = EbNoVec(n);
    sim('doc_gray_code')  ;
    SERVec(n,:) = graySER;
    BERVec(n,:) = grayBER;
end;

После симуляции для полного набора значений Eb/N0 можно построить результаты с помощью этих команд:

semilogy( EbNoVec,SERVec(:,1), 'o', EbNoVec, BERVec(:,1), '*' );
legend  ( 'Symbol error rate', 'Bit error rate' );
xlabel  ( 'Eb/No (dB)' ); ylabel( 'Error Probability' );
title   ( 'Symbol and Bit Error Probability' );

Сравнение с чистым двоичным кодированием и теорией

Как дальнейшее осуществление, с помощью данных, полученных из berawgn, можно построить теоретические кривые на тех же осях с результатами симуляции. Можно также сравнить Грэя, кодирующего с чистым двоичным кодированием путем изменения M-PSK Modulator Baseband и блоков M-PSK Demodulator Baseband так, чтобы их параметрами Constellation ordering был Binary вместо Gray.