首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从USRP接收数据

从USRP接收数据
EN

Stack Overflow用户
提问于 2021-11-16 14:11:53
回答 1查看 48关注 0票数 0

我已经写了一个小的c++程序,它接收来自USRP的数据。该程序可以接收I/Q数据并将其显示在频谱分析仪上。但是接收器LED并不总是绿色的。它就像是在闪烁和变暗。我怀疑计算机和USRP之间存在速率不匹配。会不会是这样呢?如何确保计算机以与USRP获取样本相同的速度消耗样本?下面是我用于I/Q信号采集的线程函数。

代码语言:javascript
复制
void
USRPDriver::RxEventLoop()
{
    uhd::rx_metadata_t md;
    uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE);
    stream_cmd.stream_now = true;
    stream_cmd.num_samps = 1024;
    //std::cout << "Maximum num samps = " << rx_stream->get_max_num_samps() << std::endl;
    std::vector<std::complex<float> > fcpxIQ;
    fcpxIQ.resize(1024);
    usrp->issue_stream_cmd(stream_cmd);
    while(true)
    {
        usrp->issue_stream_cmd(stream_cmd);
        size_t num_rx_samps = rx_stream->recv(&fcpxIQ[0], 1024, md);
        emit ReceiveIQ(fcpxIQ);
        //std::cout << "Rx rate = " << usrp->get_rx_rate(0) << std::endl;
        //fcpxIQ.clear();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2021-11-16 15:15:01

如果你想要连续流,你应该使用 NUM_SAMPS_AND_DONE。这不是它的用例:它告诉USRP一旦收到1024个样本就停止接收。

简单地说,不要使用该模式。

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

https://stackoverflow.com/questions/69990680

复制
相关文章

相似问题

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