文档

qammod

正交调幅

描述

例子

y= qammod (x给定输入信号,返回一个基带正交调幅(QAM)信号x以及调制顺序

例子

y= qammod (xsymOrder返回一个调制信号并指定符号顺序。

例子

y= qammod (___名称,值指定调制行为,使用名称,值对和任何前面的语法。

输入参数

全部折叠

输入信号,指定为标量、矢量、矩阵或3-D数组。x的元素必须是二进制值或整数,范围从0到(- 1),其中是调制顺序。

请注意

若要将输入信号作为二进制元素处理,请设置InputType'名称-值对到“一点”.对于二进制输入,行数必须是的整数倍日志2.组日志2位被映射到一个符号上,第一位表示MSB,最后一位表示LSB。

数据类型:||fi|int8|int16|uint8|uint16

调制顺序,指定为2的幂标量整数。调制顺序指定信号星座中的点数。

例子:16

数据类型:

符号顺序,指定为“灰色”“本”,或者一个向量。

  • “灰色”——使用格雷码订购

  • “本”-使用自然二进制编码排序

  • 矢量-使用自定义符号排序

向量必须使用唯一的元素,其值范围为0到- 1。第一个元素对应于星座的左上点,随后的元素从左到右沿着列向下运行。

例子:[0 3 1 2]

数据类型:字符|

名称-值对实参

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

输入类型,指定为逗号分隔的对,由“InputType”,要么“整数”“一点”.如果你指定“整数”时,输入信号必须由0到的整数组成- 1。如果你指定“一点”,输入信号必须包含二进制值,行数必须是的整数倍日志2

数据类型:字符

单位平均功率标志,指定为由逗号分隔的对组成UnitAveragePower和一个逻辑标量。当这个标志是真正的,该功能将星座的平均功率缩放为1瓦(参考1欧姆)。当这个标志是,该函数缩放星座,使QAM星座点之间的最小距离为2。

数据类型:逻辑

输出数据类型,指定为由逗号分隔的对组成“OutputDataType”和一个数值类型对象。看到numerictype获取有关构造这些对象的更多信息。如果OutputDataType时,输出数据类型为或内置整数输入,和输入。

选项来绘制星座,指定为由逗号分隔的对组成“PlotConstellation”和一个逻辑标量。要绘制QAM星座,请设置PlotConstellation真正的

数据类型:逻辑

输出参数

全部折叠

调制信号,以复标量、矢量、矩阵或3-D数组的形式返回。对于整数输入,输出y与输入信号的尺寸相同x.对于位输入,为输入的行数y行数是多少x除以log2).

数据类型:|

例子

全部折叠

使用QAM调制数据并在散点图中显示结果。

将调制顺序设置为16,并创建一个包含每个可能符号的数据向量。

M = 16;x = (0:M-1)';

控件调制数据qammod函数。

y = qammod(x,M);

显示调制信号星座使用散点图函数。

散点图(y)

设置调制顺序为256,显示调制信号的散点图。

M = 256;x = (0:M-1)';y = qammod(x,M);散点图(y)

使用QAM调制随机数据符号。将调制器输出归一化,使其平均信号功率为1w。

设置调制顺序,生成随机数据。

M = 64;x = randi([0 M-1],1000,1);

调制数据。使用“UnitAveragePower”名称-值对设置输出信号的平均功率为1w。

y = qammod(x,M,“UnitAveragePower”,真正的);

确认信号具有单位平均功率。

avgPower = mean(abs(y).^2)
avgPower = 1.0070

绘制结果星座。

散点图(y)标题('64-QAM,平均功率= 1 W'

为灰色、二进制和自定义符号映射绘制QAM星座。

设置调制顺序,并创建一个随机数据序列。

M = 16;d = randi([0 M-1],1000,1);

调制数据,并绘制其星座。

y = qammod(d,M,“PlotConstellation”,真正的);

默认的符号映射使用灰色排序。点的顺序不是连续的。

用二进制符号映射重复调制过程。

z = qammod(d,M,“本”“PlotConstellation”,真正的);

符号映射遵循自然二进制顺序并且是连续的。

创建一个自定义符号映射。

Smap = randperm(16)-1;

调制和绘制星座。

w = qammod(d,M,smap,“PlotConstellation”,真正的);

使用64-QAM调制一个比特序列。把信号通过有噪声的信道传送。显示结果星座图。

设置调制顺序,并确定每个符号的比特数。

M = 64;k = log2(M);

创建二进制数据序列。当使用二进制输入时,输入中的行数必须是每个符号位数的整数倍。

数据= randi([0 1],1000*k,1);

使用位输入调制信号,并将其设置为具有单位平均功率。

txSig = qammod(data,M,“InputType”“一点”“UnitAveragePower”,真正的);

把信号通过有噪声的信道传送。

rxSig = awgn(txSig,25);

绘制星座图。

cd = com .星座图(“ShowReferenceConstellation”、假);步骤(cd, rxSig)

解调一个定点QAM信号,并验证数据恢复正确。

设置调制顺序,并确定每个符号的比特数。

M = 64;bitsPerSym = log2(M);

生成随机比特。在位模式下操作时,输入数据的长度必须是每个符号位数的整数倍。

x = randi([0 1],10*bitsPerSym,1);

使用二进制符号映射调制输入数据。将调制器设置为输出定点数据。数值型数据类型的符号为16位字长和10位分数长。

y = qammod(x,M,“本”“InputType”“一点”“OutputDataType”...numerictype(10) 1, 16日);

解调64-QAM信号。验证解调数据是否与输入数据匹配。

z = qamdemod(y,M,“本”“OutputType”“一点”);S = isequal(x,double(z))
s =逻辑1

更多关于

全部折叠

格雷码

一个格雷码,也称为反射二进制码,是相邻星座点的位模式仅相差一位的系统。

兼容性的考虑

全部展开

R2018b开始的错误

扩展功能

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

R2006a之前介绍