# gray2bin
将格雷编码转换为相应的二进制码
函数库: TyCommunication
# 语法
y = gray2bin(x, type, M)
y, map = gray2bin(x, type, M)
# 说明
y, =gray2bin(x, type, M) 将输入格雷码 x 转换为自然二进制码 y,其维度与其输入参数 x 相同。 x 可以是标量、向量、矩阵或 3-D 数组。 type 是调制类型,可以是 “qam”、“pam”、“fsk”、“dpsk” 或 “psk”。 M 是调制阶数,必须是 2 的整数次幂。
y, map=gray2bin(x, type, M) 输出格雷码对应的自然二进制码 y 及格雷码编码映射图 map。 示例
您可以使用格雷码映射图得到 0 到 M-1 范围内所有自然二进制数的格雷码。 请参阅下面自然二进制码与格雷码的映射示例。
提示
如果要将二进制编码数据转换为格雷码数据,然后立即对结果进行调制,则应使用具有 "gray" 符号排序选项的适当调制对象或函数,而不是 gray2bin。
# 示例
自然二进制码与格雷码的映射
此示例说明如何使用 bin2gray 和 gray2bin 函数把整数输入自然二进制码与格雷码互相转换,假设为 16-QAM 调制。 此外,还显示了格雷编码和二进制编码符号映射之间差异的视觉表示。 创建一个完整的 16-QAM 整数向量。 使用 bin2gray 将输入向量从自然二进制顺序转换为格雷码,然后使用 gray2bin 将格雷码 y 转换回自然二进制码。 验证原始数据 x 和最终输出向量 z 是否相同。
using TyCommunication
using TyBase
using TyPlot
M = 16
x = (0:(M - 1))
y, mapy = bin2gray(x, "qam", M)
z, = gray2bin(y, "qam", M)
isequal(x, z)
ans = ture
显示编码映射图。调用 qammod 函数,绘制IQ调制的星座图并使用格雷码 y 和二进制 z 对其进行标记。 格雷码以黑色显示,自然二进制码以红色显示。 设置轴缩放比例,以便显示所有点。
sym1 = qammod(x, M)
scatterplot(sym1, 1, 0, "b*") # scatterplot不能设置画出点的形状颜色
for k in 1:16
text(real(sym1[k]) - 0.3, imag(sym1[k]) + 0.3, dec2base(mapy[k], 2, 4); color="w")
text(real(sym1[k]) - 0.3, imag(sym1[k]) - 0.5, dec2base(z[k], 2, 4); color="r")
end
axis([-4 4 -4 4])

# 输入参数
x - 输入格雷码向量 | 矩阵
输入格雷码,指定为向量、矩阵。
数据类型: Int64
type - 调制方式"qam" | "pam" | "fsk" | "dpsk" | "psk"
调制方式,可以为 "qam","pam","fsk","dpsk","psk"。
M - 调制阶数向量
调制阶数,指定为 2 的幂次方。
数据类型: Int64
# 输出参数
y - 输出自然二进制码向量 | 矩阵
输出自然二进制码。
数据类型: Int64
map - 编码映射图向量
编码映射图,可以用来得到 0 到 M-1 范围类所有自然二进制码的格雷码。