gray2bin

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

Синтаксис

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

Описание

y = gray2bin(x,modulation,M) генерирует серо-декодируемый выходной вектор или матричный y с теми же размерностями как его входной параметр x. x может быть скаляром, вектором, матрицей или трехмерным массивом. 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