主要内容

genqammod

通用正交调幅(QAM)

语法

描述

例子

y= genqammod (x常量返回消息信号的QAM的复包络x.输入常量指定调制的信号映射。

例子

全部折叠

在存在高斯噪声的情况下,使用非矩形16元星座传输和接收数据。显示噪声星座的散点图,并估计两种不同信噪比的符号错误率(SER)。

创建一个基于电话线路调制解调器V.29标准的16-QAM星座。

C = [-5 -5i 5 5i -3-3 -3i 3-3i 3 3+3i 3i -3+3i -1 -1i 1 1i];Sigpower = pow2db(平均值(abs(c).^2));M =长度(c);

生成随机符号。

data = randi([0 M-1],2000,1);

控件调制数据genqammod函数。一般的QAM调制是必要的,因为自定义星座不是矩形的。

modData = genqammod(数据,c);

将信号通过信噪比为20 dB的AWGN信道传递。

rxSig = awgn(modData,20,sigpower);

显示接收信号和参考星座的散点图c

h = scatterplot(rxSig);持有散点图(c [] [],的r *,h)网格hold

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

对接收到的信号进行解调genqamdemod函数。确定符号错误数和SER。

demodData = genqamdemod(rxSig,c);[numErrors,ser] = symerr(data,demodData)
numErrors = 1
Ser = 5.0000e-04

使用信噪比为10 dB的AWGN信道重复传输和解调过程。确定降低信噪比的SER值。正如预期的那样,当信噪比降低时,性能会下降。

rxSig = awgn(modData,10,sigpower);demodData = genqamdemod(rxSig,c);[numErrors,ser] = symerr(data,demodData)
numErrors = 461
Ser = 0.2305

创建描述六边形星座的点。

Inphase = [1/2 1 1 1/2 1 2 5/2];Quadr = [0 1 -1 2 -2 1 -1 0];Inphase = [Inphase;-inphase];Inphase = Inphase (:);Quadr =[四角;四角];Quadr = Quadr (:);Const = inphase + 1i*quadr;

绘制星座图。

H =散点图(const);

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

生成输入数据符号。使用这个星座调制符号。

X = [3 8 5 10 7];Y = genqammod(x,const);

解调调制信号,y

Z = genqamdemod(y,const);

将调制信号绘制在同一图中。

持有;散点图(y, 1 0“罗”、h);传奇(“星座”调制信号的);

图散点图包含一个轴对象。标题为Scatter plot的坐标轴对象包含2个类型为line的对象。这些对象代表星座,调制信号。

确定解调数据与原始序列之间的符号误差数。

数= symerr(x,z)
numErrs = 0

输入参数

全部折叠

消息信号,指定为标量、矢量、矩阵或数值的3-D数组。消息信号必须由0和的整数组成长度常量) 1。如果x是一个多行矩阵,函数独立处理列。

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

信号映射,指定为复向量。

数据类型:||fi|int8|int16|uint8|uint16
复数支持:是的

输出参数

全部折叠

复杂信封,返回为标量、矢量、矩阵或数值的3-D数组。的长度y和输入的长度一样吗x

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

扩展功能

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

版本历史

R2006a之前介绍

Baidu
map