JuliaComputing / xtrx_julia

XTRX LiteX/LitePCIe based design for Julia Computing
BSD 2-Clause "Simplified" License
1 stars 0 forks source link

Transfer 12-bit IQ samples as 24-bit `ComplexInt12` #90

Open staticfloat opened 2 years ago

staticfloat commented 2 years ago

Transferring @sjkelly's issue: https://github.com/JuliaComputing/DARPA-TRIAD/issues/29

The native resolution of the LMS7002M is 12 bits. However we currently represent this as a Complex{Int16} for convenience. Once the IQ and channel interlacing and ordering is verified, bitpacking to a ComplexInt12 should provide more efficient use of bandwidth. Of course this adds some processing on the GPU or CPU, but it may provide a nice opportunity for multiple dispatch to shine.

I think transferring raw 12-bit samples as 24-bit (3-byte) ComplexInt12 complexes should be relatively straightforward. It should give us a cool 25% transfer and storage savings.