Dear community,

I implemented C++ codes of the transmitter and receiver using UHD API, starting from example provided by Ettus.

Until now, I'm testing my codes using a coax cable for connecting the USRPs (a USRP used as transmitter and a USRP used as receiver).

In this setup, just before the beginning of data transmission, I found two spurious emissions (around correlated 10000 samples per times), which precede the data. I need to synchronize Tx and Rx, so this spurious emissions became a nightmare for me.

My transmitter code is very easy:
uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make("");

//Lock mboard clocks
//set the sample rate
//set the center frequency
uhd::tune_request_t tune_request;
tune_request = uhd::tune_request_t(2400000000.0, 100000.0);
//set the rf gain
//set the antenna

boost::this_thread::sleep(boost::posix_time::seconds(1)); //allow for some setup time

//Check Ref and LO Lock detect
std::vector<std::string> sensor_names;
sensor_names = usrp->get_tx_sensor_names(0);
if (std::find(sensor_names.begin(), sensor_names.end(), "lo_locked") != sensor_names.end()) {
    uhd::sensor_value_t lo_locked = usrp->get_tx_sensor("lo_locked",0);
    std::cout << boost::format("Checking TX: %s ...") % lo_locked.to_pp_string() << std::endl;
sensor_names = usrp->get_mboard_sensor_names(0);

//create a transmit streamer
uhd::stream_args_t stream_args("fc32", "sc16");
uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args);

uhd::tx_metadata_t md;
md.start_of_burst = true;
md.end_of_burst = false;

// Some operations for creating IQ samples stored in float tx_vec

for(n_real=0;n_real<1000;n_real++) tx_stream->send((const void**)&tx_vec[0], 80, md);

I'm receiving the dump using the executable script rx_samples_to_file.

Can anyone help me, please?

Thanks in advance,


USRP-users mailing list

Reply via email to