Forum
Please or Register to create posts and topics.

Aaronia SDK. Support multichannel packet timesync.

Good morning,

I have been using the Aaronia C++ SDK to stream 2 channel data. All works fine. Many thanks for the great work.

The sample RawIQ2RX is a great help. It shows streaming of 2 channel data. But the 2 channels are not automatically time synced, but instead synced after packet reception in the user created sample code.

My understanding of the example, is as follows:

  1. Get packet samples using AARTSAAPI_GetPacket for Rx1 or Rx2:
    1. Alternating between packet 1 and packet 2 depending on which channel is behind in time.
  2. Then time align the packets based on the start of packet time stamps:
    1. Shift one of the packets by an offset number of samples.
    2. But I think this loses data samples from the start or end of packets. You can only use the matching data where they overlap in time.

This user code to time align the channel samples is a bit fiddly / error prone, and with the packet sample alignment / data loss means I can't use all the packet data for 2 channel direction finding of ESM pulses.

From my examples, the packets were misaligned by a small time / a small fraction of a packet. But I don't know what the worst case packet time slip could be? Could it be as bad as half a packet?

And scaling up to 4 channels would require updated user code which could get messy. Ideally I would like this to be handled in the SDK without needing user code.

Would it be possible to add a new SDK method called AARTSAAPI_GetPacketsAll (or something) which returns time aligned packet samples for all the channels: rather than calling for Rx1 and Rx2 separately and joining myself.

Do you not have to do this internally in the RTSA PRO to time align multiple streams in some of the blocks? Do you use the same approach as the SDK?

Out of interest, any reason why the 2 channel streams aren't aligned in Hardware - Firmware instead of software?

Feel free to ask for more information.

Cheers,

Brian