2026b

# comm_MultibandCombiner


频移和组合信号

函数库: TyCommunication

# 说明

comm_MultibandCombiner 系统对象将输入信号插值、移位到指定的频段,然后组合成一个信号。

频移和组合信号:

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

  2. 使用 step 调用对象。

# 构造

# 语法

multibandcombiner = comm_MultibandCombiner()
multibandcombiner = comm_MultibandCombiner(; Name=Value)

# 说明

multibandcombiner = comm_MultibandCombiner() 创建一个多频段合路器系统对象,对输入信号进行频移和组合。


multibandcombiner = comm_MultibandCombiner(; Name=Value) 使用一个或多个名称-值参数设置属性。例如,InputSampleRate=2e6 指定输入信号采样率为 2 MHz。

# 属性

除非另有说明,否则属性是不可更改的,这意味着在调用对象后不能更改其值。对象在调用时锁定,可以使用 release 函数将其解锁。

如果属性是可调的,则可以随时更改其值。

InputSampleRate - 输入信号采样率
1e6(默认) | 正标量

以 Hz 为单位的输入信号采样率,指定为正标量。

FrequencyOffsets - 频移
[0 1e6](默认) | 标量 | 向量

以 Hz 为单位的频移,指定为这些选项之一:

  • 标量 - 输入信号的每个通道都按此标量值进行频移;

  • 长度为 的向量 - 输入信号的每个通道都按该向量中的相应值进行频移。 是输入信号 x 的通道数。

OutputSampleRateSource - 输出采样率的来源
"Auto"(默认) | "Property"

输出采样率的来源,指定为这些值之一:

  • "Auto" - 该对象对输入信号进行内插,以确保产生的信号采样率足以避免原始信号在频移以产生输出信号后频率内容失真。

  • "Property" - 使用 OutputSampleRate 属性指定输出采样率。

OutputSampleRate - 输出信号采样率
3e6(默认) | 正标量

以 Hz 为单位的输出信号采样率,指定为正标量。

说明

为避免失真,请将此值指定为大于或等于自动计算的输出采样率。要确定自动计算的输出采样率,首先运行将 OutputSampleRateSource 属性设置为 "Auto" 的对象。

依赖关系

要启用此属性,请将 OutputSampleRateSource 属性设置为 "Property"。

# 用法

# 语法

y = step(multibandcombiner, x) 

# 说明

y = step(multibandcombiner, x) 对输入信号进行内插、频移组合成一个输出信号。示例

# 输入参数

x - 输入信号
矩阵

输入信号,指定为 × 矩阵。 是每个通道的输入采样数, 是通道数。

# 输出参数

y - 输出信号
向量

输出信号,以长度为 向量的形式返回,其数据类型与输入信号 x 相同。

# 对象函数

所有系统对象通用
函数 说明
step 运行系统对象算法
release 释放资源,允许更改系统对象属性值和输入特征
reset 重置系统对象的内部状态

# 示例

组合 QPSK 和 GMSK 信号

组合两个相邻的 60 KHz 频段。

设置模拟参数。

using TyCommunication
using TyMath
rng = MT19937ar(1234)
M = 4      # QPSK modulation
N = 2000   # Frame length
Fs1 = 60e3 # Input sample rate

生成 QPSK 和 GMSK 信号。

data = randi(rng, [0, M - 1], N, 1)
modSig = pskmod(data, M, pi / 4, "gray")
qpskTxFilter = comm_RaisedCosineTransmitFilter(; OutputSamplesPerSymbol=2)
qpsksig = step(qpskTxFilter, modSig)

data = randi(rng, [0 1], N, 1)
gmskMod = comm_GMSKModulator(; BitInput=true, SamplesPerSymbol=2)
gmsksig = step(gmskMod, data)

创建一个多频段组合器系统对象。

mbc = comm_MultibandCombiner(;
    InputSampleRate=Fs1, FrequencyOffsets=[-30e3 30e3], OutputSampleRateSource="Auto"
)

使用多频段组合器对象对两个信号进行内插、频移和组合。

combinedsig = step(mbc, [qpsksig gmsksig])
combinedsig = 8000×1 Matrix{ComplexF64}:
                     0.0 + 0.0im
   1.7070336670788797e-6 - 0.00020278372275212705im
                     0.0 + 0.0im
 -0.00013438402482072464 - 0.0006396913884922386im
                     0.0 + 0.0im
                         ⋮
     -0.7378657459573799 - 0.5376101288818088im
    -0.42957306003164736 - 1.5249596505705254im
      0.2156317299181587 + 0.6625116871657816im
     -0.7579520497549272 + 1.4424626073800673im
     0.27658703479313257 - 0.5998054364580727im

# 另请参阅

dsp_Channelizer | dsp_ChannelSynthesizer