bin2gray

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

bin2gray будет удален в будущем релизе. Используйте соответствующий объект модуляции или функцию, чтобы повторно сопоставить точки созвездия вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Описание

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

Примечание

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

пример

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

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

Примеры

свернуть все

В этом примере показано, как использовать 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])

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains 33 objects of type line, text. This object represents Channel 1.

Входные параметры

свернуть все

Введите закодированные двоичным файлом данные в виде вектора или матрицы.

Типы данных: double

Тип модуляции в виде, 'qam', 'pam', 'fsk', 'dpsk', или 'psk'

Порядок модуляции в виде целочисленной степени 2.

Типы данных: double

Выходные аргументы

свернуть все

Серо-закодированные данные с тем же размером и входом x размерностей.

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

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2020a

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

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

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