首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unetstack - Python API -组合的Tx/Rx

Unetstack - Python API -组合的Tx/Rx
EN

Stack Overflow用户
提问于 2018-12-24 13:49:04
回答 1查看 92关注 0票数 2

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

EN

回答 1

Stack Overflow用户

发布于 2018-12-24 14:45:44

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

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

代码语言:javascript
复制
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以几乎相同的方式做同样的事情)

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

一定要记住,传输和记录的信号是载波频率为bb.carrierFrequency、采样率为bb.basebandRate的信号的复数基带表示。这种表示法比通带表示法更紧凑。但是,如果要在传输中使用通带表示,可以在TxBasebandSignalReq中设置fc: 0,并传入在4*bb.basebandRate处采样的通带信号,但必须将接收的信号转换为通带(上采样,乘以复指数并取实数部分)。如果你正在使用Python,这很容易使用像arlpy.signal.bb2pb()这样的东西来完成。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53909642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档