文档

cpmdemodulator系统对象

采用CPM方法和维特比算法进行解调

描述

CPMDemodulator对象解调使用连续相位调制调制的信号。输入是调制信号的基带表示。

解调:解调用连续相位调制调制的信号:

  1. 定义和设置你的CPM解调器对象。看到建设

  2. 调用一步的性质来解调信号comm.CPMDemodulator.的行为一步特定于工具箱中的每个对象。

请注意

从R2016b开始,而不是使用一步方法来执行由System对象™定义的操作,您可以调用带有参数的对象,就像调用函数一样。例如,Y = step(obj,x)而且Y = obj(x)执行等效操作。

建设

H = comm. cpm解调器创建一个解调器系统对象,H.该对象使用维特比算法解调输入的连续相位调制(CPM)数据。

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

H = com . cpm解调器(M,的名字价值创建一个CPM解调器对象,H,与ModulationOrder属性设置为,并将其他指定属性设置为指定的值。

属性

ModulationOrder

符号字母大小

指定符号字母的大小。此属性的值需要2的幂,实数整数标量。默认为4

BitOutput

以位形式输出数据

指定输出是由比特组还是整数值组组成。默认为

当您将此属性设置为,一步方法输出长度等于的列向量N/SamplesPerSymbol元素是-(之间的整数ModulationOrder1)和ModulationOrder1。在这里,N为输入信号的长度,表示输入基带调制符号的个数。

当您将此属性设置为真正的,一步方法输出长度等于的二进制列向量P × N/SamplesPerSymbol),Plog2ModulationOrder).输出包含length-P一些单词。在这种情况下,对象首先将每个解调符号映射为一个奇数整数值,K,介于- (ModulationOrder1)和ModulationOrder1。然后对象映射K非负整数(K+ModulationOrder1) / 2。最后,该对象将每个非负整数映射为长度为-的整数P中的指定的映射SymbolMapping财产。

SymbolMapping

符号编码

将解调符号的映射指定为之一二进制|灰色的.默认为二进制.此属性决定对象如何映射每个解调的整数符号值(在范围内)0而且ModulationOrder-1)到aP-length位字,其中Plog2ModulationOrder).

当您将此属性设置为二进制,该对象使用自然二进制编码顺序。

当您将此属性设置为灰色的,该对象使用gray编码的顺序。

属性时应用此属性BitOutput属性为true。

ModulationIndex

调制指数

指定调制索引。默认为0.5.这个属性的值可以是一个标量,h,或列向量[h0h1,……hh -

其中H-1表示列向量的长度。

h对象以多小时为单位进行操作。当对象以multi-h方式操作时,h一定是有理数。

FrequencyPulse

频率脉冲形状

指定调制器用于使输入调制信号的相变平滑的脉冲整形类型矩形|提出了余弦|谱凸起余弦|高斯|驯服调频.默认为矩形

MainLobeDuration

光谱上升余弦脉冲的主瓣时长

以符号间隔数指定光谱凸起余弦脉冲最大波瓣的持续时间。这个值是调制器用来脉冲化输入调制信号的值。默认为1.此属性需要一个实数、正整数标量。属性时应用此属性FrequencyPulse财产谱凸起余弦

RolloffFactor

光谱凸起余弦脉冲的Rolloff因子

指定光谱凸起余弦脉冲的滚离因子。这个值是调制器用来脉冲化输入调制信号的值。默认为0.2.这个属性需要一个实标量between0而且1.属性时应用此属性FrequencyPulse财产谱凸起余弦

BandwidthTimeProduct

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

指定高斯脉冲形状的带宽和符号时间的乘积。这个值是调制器用来脉冲化输入调制信号的值。默认为0.3.这个性质需要一个实数,正标量。属性时应用此属性FrequencyPulse财产高斯

PulseLength

脉冲持续时间

以符号间隔指定频率脉冲形状的长度。此属性的值必须为实正整数。默认为1

SymbolPrehistory

史前象征

控件的第一次调用之前,指定调制器使用的数据符号一步方法。默认为1.此属性要求在-(之间包含奇数整数元素的标量或向量ModulationOrder-1)和(ModulationOrder1)。如果值是一个向量,则其长度必须比PulseLength财产。

InitialPhaseOffset

初始相位偏移

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

SamplesPerSymbol

每个输入符号的样本数

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

TracebackDepth

维特比算法的回溯深度

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

OutputDataType

输出的数据类型

将输出数据类型指定为int8|int16|int32|,当您设置BitOutput属性为false。当你设置BitOutput财产真正的,将输出数据类型指定为逻辑|.默认为

方法

重置 重置CPM解调器对象的状态
一步 采用CPM方法和维特比算法进行解调
通用于所有系统对象
释放

允许系统对象属性值更改

例子

全部展开

创建一个CPM调制器、一个AWGN通道和一个CPM解调器。hMod = com . cpmmodulator (8,“BitInput”,真的,...“SymbolMapping”“灰色”);hAWGN = com . awgnchannel (“NoiseMethod”...信噪比(SNR)“信噪比”, 0);hDemod = comm. cpm解调器(8,“BitOutput”,真的,...“SymbolMapping”“灰色”);创建一个错误率计算器,说明维特比算法造成的延迟。delay = log2(hmod . modulationorder)* hmod . tracebackdepth;error = com . errorrate (“ReceiveDelay”、延迟);计数器= 1:100%传送100个3位字Data = randi([0 1],300,1);modSignal =步骤(hMod, data);噪声信号=步骤(hAWGN, modSignal);receivedData = step(hDemod, noissignal);errorStats = step(error, data, receivedData);结束流('错误率= %f\n错误数= %d\n'...errorStats errorStats (1), (2))
错误率= 0.004006错误数= 120

使用comm.CPMModulator而且comm.CPMDemodulator系统对象对随机位数据进行GFSK调制和解调。

创建一个GFSK调制器和解调器对象对。

gfskMod = com . cpmmodulator (“ModulationOrder”2,“FrequencyPulse”“高斯”...“BandwidthTimeProduct”, 0.5,“ModulationIndex”, 1...“BitInput”,真正的);gfskDemod = comm. cpmdemomodulator (“ModulationOrder”2,“FrequencyPulse”“高斯”...“BandwidthTimeProduct”, 0.5,“ModulationIndex”, 1...“BitOutput”,真正的);

生成随机位数据并应用GFSK调制。使用散点图来查看星座。

numSym = 100;x = randi([0 1],numSym*gfskMod.SamplesPerSymbol,1);y = gfskMod(x);eyediagram (y, 16)

解调GFSK调制数据。为了验证解调信号数据与原始数据相等,必须考虑GFSK调制解调处理中高斯滤波引入的延迟。

z = gfskDemod(y);Delay = finddelay(x,z);isequal (x (1: end-delay)、z(延迟+ 1:结束)
ans =逻辑1

算法

类中描述的算法、输入和输出CPM解调器基带阻塞引用页面。对象属性对应于块参数。对于CPM,每个符号的相移是π ×h,在那里h为调制指数。

扩展功能

在R2012a中介绍

这个话题有帮助吗?