主要内容

comm.OQPSKModulator

采用OQPSK方法调制

描述

com . oqpskmodulator对象使用偏置正交相移键控(OQPSK)方法调制输入信号,并对输出波形应用脉冲形状滤波。有关更多信息,请参见脉冲整形滤波器.输出是调制信号的基带表示。

有关调制器-解调器对处理引起的延迟的信息,请参见调制的延迟

用偏置正交相移键控调制信号:

  1. 创建comm.OQPSKModulator对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

oqpskmod= comm.OQPSKModulator创建调制器系统对象™。该对象对输入信号应用偏置正交相移键控(OQPSK)调制和脉冲形状滤波。

例子

oqpskmod= comm.OQPSKModulator (解调创建与OQPSK解调器对象具有对称配置的调制器系统对象,解调

例子

oqpskmod= comm.OQPSKModulator (的名字价值使用一个或多个名称-值对设置属性。将每个属性名用单引号括起来。

例子:comm.OQPSKModulator ('BitInput”,真的)

oqpskmod= comm.OQPSKModulator (阶段的名字价值设置PhaseOffset属性阶段并设置其他指定的的名字价值对。

例子:comm.OQPSKModulator(0.5 *π,SymbolMapping”、“二进制”)

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

从π/4开始的相位偏移,用弧度表示。相位偏移在正交分量延迟前施加于信号星座的零点。OQPSK虚分量延时后,对信号进行单位功率归一化处理。

例子:PhaseOffset,π/ 4将QPSK信号星座点的零点对准轴{(1,0),(0,j), (-1,0), (0,-j)}。

数据类型:

选项提供以位为单位的输入,指定为真正的

  • 当此属性设置为,输入值必须是二进制输入段的整数表示形式,取值范围为0 ~ 3。

  • 当此属性设置为真正的,输入必须是偶数长度的二进制向量。元素对是整数的二进制表示形式。

数据类型:逻辑

信号星座位映射,指定为“灰色”“二元”,或自定义4元素整数向量,其值从0到3。

设置 整数的星座映射 位的星座映射 评论

灰色的

信号星座映射采用灰色编码。

二进制

输入整数的信号星座映射(0≤≤3)为复值e(j * (PhaseOffset+π/4) + j*2*π*m/4)

自定义4元素整数向量,值从0到3

元素[a b c d]必须由值[0,1,2,3]以任意顺序组成。

数据类型:字符|

滤波脉冲形状,指定为半正弦正常上升余弦根上余弦,或“自定义”

数据类型:字符

提高余弦滤波器滚转系数,指定为标量从01

依赖关系

PulseShape正常上升余弦根上余弦

数据类型:

以符号表示的过滤器长度,指定为标量。理想的凸起余弦滤波器具有无限的脉冲响应。然而,为了实现该滤波器的实际实现,对象截断脉冲响应FilterSpanInSymbols符号。

依赖关系

PulseShape正常上升余弦根上余弦

数据类型:

过滤器分子,指定为行向量。

依赖关系

PulseShape“自定义”

数据类型:
复数支持:万博1manbetx是的

每个符号的抽样数,指定为正偶数。

数据类型:

分配给输出的数据类型,指定为“双”“单一”

数据类型:字符

使用

描述

例子

波形= oqpskmod (insignal返回基带调制输出。输出波形是根据配置属性的脉冲形状PulseShape而且SamplesPerSymbol

输入参数

全部展开

输入信号,指定为N年代-element整数或比特列向量,其中N年代是样本的数量。

的设置BitInput属性决定输入向量的解释。

数据类型:

输出参数

全部展开

输出波形,作为矢量返回。输出波形根据配置特性呈脉冲状PulseShape而且SamplesPerSymbol

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

创建一个OQPSK调制器和解调器对。创建一个AWGN通道对象,每个符号有两个比特。

oqpskmod = com . oqpskmodulator (“BitInput”,真正的);oqpskdemod = com . oqpsk解调器(“BitOutput”,真正的);通道= com . awgnchannel (“EbNo”4“BitsPerSymbol”2);

创建一个错误率计算器。要考虑到调制器和解调器之间的延迟,请设置ReceiveDelay财产2

errorRate = com . errorRate (“ReceiveDelay”2);

通过这些步骤处理300帧数据循环。

  • 生成100个随机二进制数据元素的向量。

  • oqpsk -调制数据。数据帧被处理为50个2位二进制数据样本帧。

  • 将调制后的数据通过AWGN通道传递。

  • oqpsk -解调数据。

  • 对数据帧进行错误统计。

counter = 1:300 txData = randi([0 1],100,1);modSig = oqpskmod(txData);rxSig = channel(modSig);rxData = oqpskdemod(rxSig);errorStats = errorRate(txData,rxData);结束

显示错误统计信息。

ber = errorStats(1)
Ber = 3.3336e-05
numErrors = errorStats(2)
numErrors = 1
numBits = errorStats(3)
numBits = 29998

在创建OQPSK调制器对象时,使用OQPSK解调器对象初始化OQPSK调制器对象。

创建一个OQPSK解调器,分配它的相位偏移 1 2 π

相位= 0.5*pi;oqpsk解调器(相位)
oqpskdemod = com . oqpskdemoator with properties:调制相位偏移:1.5708 SymbolMapping: 'Gray' BitOutput: false Filtering PulseShape: 'Half sine' SamplesPerSymbol: 4 OutputDataType: 'double'

在创建OQPSK调制器时,使用解调器对象初始化它。

oqpskmod = com . oqpskmodulator (oqpskdemod)
oqpskmod = com . oqpskmodulator with properties:调制相位偏移:1.5708 SymbolMapping: 'Gray' BitInput: false Filtering PulseShape: 'Half sine' SamplesPerSymbol: 4 OutputDataType: 'double'

执行OQPSK调制和解调,并对波形应用根凸起余弦滤波。

系统初始化

定义OQPSK调制和解调的仿真参数和创建对象。

SPS = 12;每个符号的样本百分比比特= randi([0,1], 800, 1);%传输数据调制器= com . oqpskmodulator (“BitInput”,真的,“SamplesPerSymbol”sps,“PulseShape”根上余弦);解调器= com . oqpsk解调器(调制器);

波形传输与接收

使用调制器对象应用OQPSK调制并传输滤波到输入数据。

oqpsk波形=调制器(位);

通过一个通道传递波形。

信噪比= 0;rx波形= awgn(oqpsk波形,信噪比);

使用解调器对象对波形应用接收滤波和OQPSK解调。

demodData =解调器(rx波形);

通过计算误码率来确认数据恢复的质量。

delay = (1+modulator.BitInput)*modulator.FilterSpanInSymbols;[~, ber] = biterr(bits(1:end-delay), demodData(delay+1:end))
Ber = 0

使用qamdemod函数模拟oqpsk调制信号的软决策输出。

生成OQPSK调制信号。

SPS = 4;MSG = randi([0 1],1000,1);oqpskMod = com . oqpskmodulator (“SamplesPerSymbol”sps,“BitInput”,真正的);oqpskSig = oqpskMod(msg);

向生成的信号中添加噪声。

impairedSig = awgn(oqpskSig,15);

执行软决策解调

创建QPSK等效信号对准相位和正交。

impairedQPSK = complex(real(impairedSig(1+sps/2:end-sps/2)), imag(impairedSig(sps+1:end)));

对接收到的OQPSK信号应用匹配滤波。

halfsinpulse = sin(0:pi/sps:(sps)*pi/sps);matchedFilter = dsp。FIRDecimator (sps halfSinePulse,“DecimationOffset”、sps / 2);filteredQPSK =匹配过滤器(受损的qpsk);

对滤波后的OQPSK信号进行软解调qamdemod函数。的对齐符号映射qamdemod类所使用的符号映射comm.OQPSKModulator,然后解调信号。

oqpskModSymbolMapping = [1 3 0 2];demodulated = qamdemod(filteredQPSK,4,oqpskModSymbolMapping,“OutputType”“llr”);

更多关于

全部展开

扩展功能

在R2012a中引入