主要内容

qammod

正交调幅(QAM)

描述

例子

y= qammod (x调制输入信号x通过使用指定调制顺序的QAM.输出y是调制信号。

例子

y= qammod (xsymOrder指定符号顺序。

例子

y= qammod (___名称,值除使用以前语法中的任何输入参数组合外,还使用名称-值对参数指定选项。

例子

全部折叠

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

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

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

控件调制数据qammod函数。

y = qammod(x,M);

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

散点图(y)

图散点图包含一个轴对象。标题为Scatter plot的axes对象包含一个类型为line的对象。该对象表示通道1。

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

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

图散点图包含一个轴对象。标题为Scatter plot的axes对象包含一个类型为line的对象。该对象表示通道1。

使用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'

图散点图包含一个轴对象。标题为64-QAM,平均功率= 1w的axes对象包含一个line类型的对象。该对象表示通道1。

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

设置调制顺序,并创建包含调制方案的完整符号集的数据序列。

M = 16;d = [0:M-1];

调制数据,并绘制其星座。默认的符号映射使用灰色排序。点的顺序不是连续的。

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

图中包含一个轴对象。标题为16-QAM, Gray Mapping, UnitAveragePower=false的axis对象包含19个类型为line, text的对象。

用二进制符号映射重复调制过程。符号映射遵循自然二进制顺序并且是连续的。

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

图中包含一个轴对象。标题为16-QAM, Binary Mapping, UnitAveragePower=false的axis对象包含19个类型为line, text的对象。

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

smap = randperm(M)-1;

调制和绘制星座。

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

图中包含一个轴对象。标题为16-QAM, Custom Mapping, UnitAveragePower=false的axis对象包含19个类型为line, text的对象。

使用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信号,并验证数据恢复正确。

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

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

输入参数

全部折叠

输入信号,指定为标量、矢量、矩阵或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,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:y = qammod(x,M,symOrder,'InputType','bit')

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

数据类型:字符

单位平均功率标志,指定为由逗号分隔的对组成“UnitAveragePower”数字或逻辑0)或1真正的).当这个标志是1真正的),该功能将星座的平均功率按1欧姆的标准缩放为1瓦特。当这个标志是0),该函数缩放星座,使QAM星座点之间的最小距离为两个。

输出数据类型,指定为由逗号分隔的对组成“OutputDataType”和一个numerictype对象。

有关构造这些对象的详细信息,请参见numerictype(定点设计师).如果您没有指定“OutputDataType”,数据类型为如果输入是数据类型或内置整数和如果输入是数据类型

选项来绘制星座,指定为由逗号分隔的对组成“PlotConstellation”数字或逻辑0)或1真正的)绘制QAM星座,设置“PlotConstellation”真正的

输出参数

全部折叠

调制信号,以复数标量、矢量、矩阵或数值的三维数组形式返回。对于整数输入,输出y与输入信号的尺寸相同x.对于位输入,为输入的行数y行数是多少x除以日志2

数据类型:|

更多关于

全部折叠

格雷码

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

扩展功能

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

版本历史

R2006a之前介绍

全部展开

R2018b开始的错误