文档

gmsk解调器系统对象

采用GMSK方法和Viterbi算法解调

描述

GMSKDemodulator对象使用维特比算法对使用高斯最小移位键控方法调制的信号进行解调。输入是调制信号的基带表示。

解调用高斯最小移位键控调制的信号:

  1. 定义并设置GMSK解调器对象。看到建设

  2. 调用一步解调根据的性质对信号进行解调GMSKDemodulator。的行为一步特定于工具箱中的每个对象。

请注意

从R2016b开始,而不是使用一步方法来执行System object™定义的操作,则可以带参数调用该对象,就好像它是一个函数一样。例如,Y = step(obj,x)Y = obj(x)执行等价操作。

建设

H = com . gmsk解调器创建一个解调器系统对象,H。该对象使用Viterbi算法解调输入高斯最小移位键控(GMSK)调制数据。

H = comm. gmsk解调器(名字价值创建GMSK解调器对象,H。此对象将每个指定属性设置为指定值。您可以以任意顺序指定附加的名称-值对参数,如(Name1Value1、……).

属性

BitOutput

以位为单位输出数据

指定输出是一组位还是整数值。默认值为

当你设置BitOutput财产,一步方法输出长度等于的列向量N/SamplesPerSymbolN是输入信号的长度,即输入基带调制符号的个数。输出向量的元素是11

当你设置BitOutput财产真正的,一步方法输出长度等于的二进制列向量N/SamplesPerSymbol位值为01

BandwidthTimeProduct

高斯脉冲的带宽与符号时间的乘积

指定高斯脉冲形状的带宽和符号时间的乘积为一个实的、正的标量。默认的0.3

PulseLength

脉冲持续时间

指定符号间隔内高斯脉冲形状的长度为实正整数。默认的4

SymbolPrehistory

史前象征

的第一次调用之前指定调制器使用的数据符号一步方法。默认值为1。此属性要求元素等于的标量或向量-11。方法中设置的值必须小于1PulseLength财产。

InitialPhaseOffset

初始相位偏移

指定以弧度为单位的输入调制波形的初始相位偏移为实数值标量值。默认值为0

SamplesPerSymbol

每个输入符号的样本数

将每个输入符号的期望样本数指定为正整数标量值。默认值为8

TracebackDepth

Viterbi算法的回溯深度

指定Viterbi算法用于将每个回溯路径构造为正整数标量值的网格分支的数量。此属性的值也是输出延迟,以及输出中第一个有意义的解调符号之前的零符号的数量。默认值为16

OutputDataType

输出数据类型

将输出数据类型指定为之一int8|int16|int32|,当你设置BitOutput财产

当你设置BitOutput财产真正的,将输出数据类型指定为逻辑|。默认值为

方法

重置 复位GMSK解调器对象的状态
一步 采用GMSK方法和Viterbi算法解调
所有系统对象通用
释放

允许更改系统对象属性值

例子

全部展开

%创建一个GMSK调制器、一个AWGN信道和一个GMSK解调器。使用pi/4的相位偏移。hMod = com . gmskmodulator (“BitInput”,真的,“InitialPhaseOffset”π/ 4);hAWGN = com . awgnchannel“NoiseMethod”信噪比(SNR)“信噪比”, 0);hDemod = com . gmsk解调器(“BitOutput”,真的,“InitialPhaseOffset”π/ 4);创建一个错误率计算器,计算由维特比算法引起的延迟error = com . errorrate (“ReceiveDelay”, hDemod.TracebackDepth);计数器= 1:100发送100个3位字数据= randi([0 1],300,1);modSignal = step(hMod, data);noisyssignal = step(hAWGN, modSignal);receivedData = step(hDemod, noissignal);errorStats = step(error, data, receivedData);结束流(错误率= %f\n错误数= %d\nerrorStats errorStats (1), (2))
错误率= 0.000133错误数= 4

这个例子说明了零和一二进制序列到GMSK调制器输出的映射。这种关系也适用于MSK调制。

创建一个接受二进制输入的GMSK调制器。指定脉冲长度和每个符号的采样值为1。

gmsk = com . gmskmodulator“BitInput”,真的,“PulseLength”, 1“SamplesPerSymbol”1);

创建一个全为零的输入序列。调制序列。

X = 0 (5,1);Y = gmsk(x)
y =5×1复杂1.000 + 0.0000i -1.000 -1.000 i -1.000 + 0.0000i

确定每个点的相位角。使用打开功能更好的显示趋势。

Theta = unwrap(angle(y))
θ=5×10 -1.5708 -3.1416 -4.7124 -6.2832

一个零序列导致相位在样本之间移动-π/2。

复位调制器。调制所有输入序列。

Reset (gmsk) x = ones(5,1);Y = gmsk(x)
y =5×1复杂1.000 + 0.0000i -1.000 -1.000 i 0.0000 -1.000 i 1.0000 + 0.0000i

确定每个点的相位角。使用打开功能更好的显示趋势。

Theta = unwrap(angle(y))
θ=5×10 1.5708 3.1416 4.7124 6.2832

一个1的序列使相位在样本之间移动+π/2。

算法

节点描述的算法、输入和输出GMSK解调器基带块引用页。对象属性对应于块参数。对于GMSK,每个符号的相移是π/2,这是0.5的调制指数。

扩展功能

在R2012a中引入

这个话题有帮助吗?