exponenta event banner

bin2gray

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

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

Описание

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

Примечание

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

пример

[y,map] = bin2gray(x,modulation,M) генерирует выходной сигнал, закодированный серым цветом 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.

Вывод карты для маркировки кодированной серым комбинации, заданной как вектор с длиной, равной размеру порядка модуляции. M. Карта дает метки в кодировке Грея для соответствующей модуляции.

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

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

Не рекомендуется начинать с R2020a

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

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