2

传输信号然后立即切换到 RX 模式并记录反射的最有效方法是什么?

4

1 回答 1

2

您可以使用TxBasebandSignalReq消息传输信号,等待TxFrameNtf表示信号已成功传输,然后使用 请求录音RecordBasebandSignalReq。为了避免传输和录制之间的间隙,您可以使用 的txTime属性TxFrameNtf来触发录制(recTime属性)。大多数使用 UnetStack 的调制解调器将允许在过去开始记录,只要数据在缓冲区中(通常是几秒钟)。

上面的想法在下面的 Groovy 代码片段中表达出来(没有任何错误检查):

import org.arl.unet.*
import org.arl.unet.phy.*

def bb = agentForService(Services.BASEBAND)
bb << new TxBasebandSignalReq(signal: mySignal)
def ntf = receive(TxFrameNtf)
bb << new RecordBasebandSignalReq(recTime: ntf.txTime, recLen: nSamples)

mySignal是您要发送的信号(复杂基带表示),nSamples是您要记录的基带样本数。

(你可以用几乎相同的方式使用 Python 做同样的事情)

记录将在传输开始时开始,并将包含传输的信号(很可能被削波),然后是任何回声/返回。如果您想在传输结束时开始录制,您可以通过设置信号长度(以微秒为单位)来实现recTimentf.txTime + mySignalDurationmySignalDuration

还要记住,传输和记录的信号是信号的复杂基带表示,其载波频率为bb.carrierFrequency,采样率为bb.basebandRate。这种表示比通带表示更紧凑。但是,如果您想在传输中使用通带表示,您可以fc: 0在部分)。如果您使用的是 Python,使用类似.TxBasebandSignalReq4*bb.basebandRatearlpy.signal.bb2pb()

于 2018-12-24T06:45:43.747 回答