exponenta event banner

gray2bin

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

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

Описание

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

пример

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

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

Примечание

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

Примеры

свернуть все

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