USRP'DEN veri alan küçük bir c++ programı yazdım. Program I / Q verilerini alabilir ve bir spektrum analizöründe gösterebilir. Alıcı LED'i her zaman yeşil değildir. Yanıp sönüyor ve kararıyor. Bilgisayar ve USRP arasında bir oran uyuşmazlığı olduğundan şüpheleniyorum. Durum bu olabilir mi? Bilgisayarın örnekleri USRP'NİN aldığı oranda tükettiğinden nasıl emin olunur? Aşağıda, I/Q sinyal alımı için kullandığım bir iş parçacığı işlevi bulunmaktadır.
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();
}
}