bin2gray

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

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

Описание

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

Примечание

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

пример

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

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

Примеры

свернуть все

В этом примере показано, как использовать 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-кодированного созвездия, заданной в виде вектора с длиной, размером порядка модуляции M. Карта дает кодированные Серым метки для соответствующей модуляции.

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

расширить все

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

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

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

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