文档

bin2gray

将正整数转换为相应的灰编码整数

语法

y = bin2gray(x,调制,M)
[y,map] = bin2gray(x,调制,M)

描述

y = bin2gray(x,调制,M)生成一个灰色编码的矢量或矩阵输出y具有与其输入参数相同的维数xx可以是标量、向量、矩阵或3-D数组。调制是调制类型和必须是“qam”“帕姆”“移频键控”“dpsk”,或相移键控的是调制阶,可以是2的整数次幂。

[y,map] = bin2gray(x,调制,M)生成一个灰色编码的输出y以及各自的灰色编码星座图,地图

您可以使用映射输出来标记一个gray编码的星座。映射输出给出了对应调制的Gray编码标签。参见下面的示例。

请注意

如果要将二进制编码的数据转换为灰编码的数据,然后立即对结果进行调制,则应该使用适当的调制对象或函数“灰色”选项,而不是bin2gray

例子

全部折叠

的用法bin2gray而且gray2bin函数将整数输入从自然二进制序符号映射到Gray编码信号星座,反之亦然,假设16-QAM调制。此外,灰度和二进制编码符号映射之间的差异的可视化表示被显示出来。

创建一个16-QAM整数的完整向量。

X = (0:15)';

使用将输入向量从自然二进制顺序转换为格雷编码向量bin2gray

[y,map] = bin2gray(x,“qam”16);

转换格雷编码的符号,y,回到二进制排序使用gray2bin

Z = gray2bin(y,“qam”16);

验证原始数据,x,最后的输出向量,z都是相同的。

isequal (x, z)
ans =逻辑1

要创建显示不同符号映射的星座图,构造一个16-QAM调制器系统对象并使用其关联的星座函数来查找复杂符号值。

hMod = comm.RectangularQAMModulator;符号=星座(hMod);

绘制星座符号并用灰色标记它们,y,和二进制,z,输出向量。灰色编码符号的二进制表示用黑色表示,而自然有序符号的二进制表示用红色表示。设置坐标轴,以便显示所有点。

散点图(符号、1 0" b *’);k = 1:16文本(真正的(符号(k)) -0.3,图像放大(符号(k)) + 0.3,...dec2base (mapy (k)、2、4));文本(真正的(符号(k)) -0.3,图像放大(符号(k)) -0.3,...dec2base (z (k)、2、4),“颜色”,[10 0 0]);结束轴([-4 4 -4 4])

当使用格雷编码时,可以观察到相邻的星座点之间只有一个位不同。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

R2006a之前介绍过

这个话题有帮助吗?