Packet transmission with libiio


I want to transmit data from MATLAB over radio in frames using libiio and ad9361 in non-cyclic mode and have no RF signals in the channel while there are no more frames to transmit.

There are three issues regarding this setup I've stumbled upon:

  • sine tone is transmitted automatically at startup.
  • ad9361 core repeats the last transmitted samples if there's no new data incoming.
  • if DMA buffers are released using tx.release(), then the board switches to DDS.

This is what I've found so far and what is left unsolved:

  • I can disable oscilloscope autostart as described here. But will matlab initialize all the required parameters of ad9361 and do the calibrations?
  • Second issue can be corrected by adding some zeros at the end of the buffer. But what is the minimal number necessary? Also there's LO leakage if I do it this way, which is significantly bad for me.
  • In this question I've read that writing 0 to the out_volatgeX_raw device attributes will solve it, but can I do it after release function in MATLAB? OR I can somehow change the default behavior?

Thank you in advance,