2026a

# dpskmod


差分相移键控调制

函数库: TyCommunication

# 语法

y = dpskmod(x, M)
y = dpskmod(x, M, phaserot)
y = dpskmod(x, M, phaserot, symorder)

# 说明

y = dpskmod(x, M) 用差分相移键控 (DPSK) 调制 M 阶输入信号。示例


y = dpskmod(x, M, phaserot) DPSK 调制的相位旋转。


y = dpskmod(x, M, phaserot, symorder) 指定符号顺序。

# 示例

对信号进行差分相移键控调制

将调制阶数设置为 4 来创建 DQPSK 调制。

using TyCommunication
using TyMath
rng = MT19937ar(1234)
M = 4

生成一个 4 元随机符号序列。

  x = randi(rng,[0 M - 1], 500, 1)

对输入符号应用 DQPSK 调制。

  y = dpskmod(x, M, pi / 8)
 y = 500×1 Matrix{ComplexF64}:
     0.9238795325112867 + 0.3826834323650898im
    -0.7071067811865477 - 0.7071067811865475im
     0.9238795325112865 - 0.3826834323650904im
 -4.286263797015736e-16 - 1.0im
    -0.9238795325112862 - 0.3826834323650912im
     0.7071067811865489 - 0.7071067811865461im
     0.3826834323650876 + 0.9238795325112876im
                        ⋮
     0.7071067811852875 + 0.7071067811878076im
    0.38268343236340524 + 0.9238795325119845im
                   -1.0 - 1.8023478246514573e-12im
   -0.38268343236683067 + 0.9238795325105656im
     0.7071067811851571 + 0.7071067811879379im
    0.38268343236323504 + 0.923879532512055im
 1.9243653555104583e-12 - 1.0im

# 输入参数

x - 输入信号
向量 | 矩阵

输入信号,指定为正整数的向量或矩阵。x 的元素值必须在 [0,M - 1] 的范围内。

数据类型: Float64

M - 调制阶数
2 的整数次幂

调制阶数,指定为 2 的整数次幂

示例: 2 | 4 | 16

数据类型: Float64

phaserot - 相位旋转角
0 (默认) | 标量 | [ ]

DPSK 调制的相位旋转角,以弧度作为实标量指定。每个符号的总相移是相位差和由差分调制产生的相位之和。

如果将 phaserot 指定为空,那么 dpskmod 使用 0 度的相位旋转角。

示例: pi/4

数据类型: Float64

symorder - 符号顺序
"bin" (默认) | "gray"

符号顺序,指定为 "bin" 或 "gray"。这个参数指定函数如何将二进制向量赋值给相应的整数。

  • 如果 symorder 为 "bin",则函数使用自然二进制编码顺序;

  • 如果 symorder 为"gray",则函数使用 gray 编码顺序。

数据类型: String

# 输出参数

y - dpsk 调制输出信号
向量 | 矩阵

dpsk 调制输出信号的复基带表示,作为复值的向量或矩阵返回。列表示独立的通道。

注:初始相位旋转为 0 用于确定输出 y 的第一个元素(如果是多行矩阵则为 y 的第一行),因为微分算法需要两个连续的元素。

# 另请参阅

pskmod | pskdemod