gray2bin

Преобразуйте положительные целые числа в коде Грэя в соответствующие целые числа

Синтаксис

y = gray2bin(x,modulation,M)
[y,map] = gray2bin(x,modulation,M)

Описание

y = gray2bin(x,modulation,M) генерирует серо-декодируемый выходной вектор или матричный y с теми же размерностями как его входной параметр xX может быть скаляр, вектор, матрица или трехмерный массив. modulation тип модуляции и должен быть 'qam', 'pam', 'fsk', 'dpsk', или 'psk'M порядок модуляции, который может быть целочисленной степенью 2.

[y,map] = gray2bin(x,modulation,M) генерирует серо-декодируемый выход y с его соответствующей серо-закодированной картой созвездия, map.

Можно использовать, сопоставляют выход, чтобы маркировать созвездие Gray-encoded. Карта, которую выход дает Грэю, закодировала метки для соответствующей модуляции. Смотрите пример ниже.

Примечание

Если вы преобразуете двоично-кодированные данные в серо-закодированные данные и модулируете результат сразу впоследствии, необходимо использовать соответствующий объект модуляции или функцию с the'Gray' опция, вместо BIN2GRAY.

Примеры

свернуть все

В этом примере показано, как использовать bin2gray и gray2bin функции, чтобы сопоставить целочисленные входные параметры от естественного бинарного отображения символа порядка до Грэя закодировали сигнальное созвездие и наоборот, приняв 16-QAM модуляцию. Кроме того, визуальное представление различия между Грэем и закодированными отображениями символа двоичного файла показывают.

Создайте полный вектор 16-QAM целых чисел.

M= 16;
x = (0:M-1)';

Преобразуйте входной вектор от естественного бинарного порядка до Грэя закодированный вектор с помощью bin2gray.

[y,mapy] = bin2gray(x,'qam',M);

Преобразуйте Серые закодированные символы, y, назад к двоичному упорядоченному расположению с помощью gray2bin.

z = gray2bin(y,'qam',M);

Проверьте что исходные данные, x, и вектор окончательного результата, z идентичны.

isequal(x,z)
ans = logical
   1

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

sym = qammod(x,M);

Постройте символы созвездия и пометьте их использующий Серый, y, и двоичный файл, z, выходные векторы. Бинарное представление закодированных символов Грэя отображают черным цветом, в то время как бинарное представление естественно упорядоченных символов отображают красным. Установите масштабирование осей так, чтобы все точки были отображены.

scatterplot(sym,1,0,'b*');
for k = 1:16
    text(real(sym(k))-0.3,imag(sym(k))+0.3,...
        dec2base(mapy(k),2,4));
    
    text(real(sym(k))-0.3,imag(sym(k))-0.3,...
        dec2base(z(k),2,4),'Color',[1 0 0]);
end
axis([-4 4 -4 4])

Заметьте, что только один бит отличается между смежными точками созвездия при использовании Грэя, кодирующего.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

Представлено до R2006a