Hi @Zack ,
in the previous posts in this topic, there is a detailed description of the problem.
Anyway, it can be resumed with the following points, as stated @mleech:
a) at each “session restart”, the phase difference offset seems to be “quite random”. I say “quite” because it is not uniformly distributed. There is an amount of limited phase difference offsets that are repeated. (For example, 47 degrees or -110º, if we work with a signal freq close to central frequency).
A real MIMO system requires this offset is 0. Anyway, in case it is not zero but constant among sessions, it would be OK.
b) the phase difference offset is linearly dependent on frequency.
For example, if in the same “session” we use first a test tone close to central frequency, then a tone in another frequency, we observe different phase offset values.
In particular, the phase offsets difference is linearly proportional with the test signal frequency.
Also the slope of this linear proportionality changes among different “sessions”, so be careful with teh tests: it is needed to test always in the same session to observe correctly this secondo effect!
A real MIMO system would require a 0 (or close to 0) slope.
We observe all this things by using both LMS and SoapySDR API in C/C++.
If you need more infos, here we are.