Nuand / bladeRF

bladeRF USB 3.0 Superspeed Software Defined Radio Source Code
http://nuand.com
Other
1.15k stars 459 forks source link

Micro phase coherence for four channel #964

Open venky0108 opened 7 months ago

venky0108 commented 7 months ago

i have added trigger functionality in python binding bladerf script. I have verified the trigger functionality by using bladerf functions

trigger_init() trigger_arm() trigger_fire() trigger_state()

trigger signal is J51-1

before Sync_RX() trigger signal is defined, trigger initialized and armed.

After Sync_RX() call , trigger is fired & data from four channels is collected. cross correlation is done with channel 1 data with rest 3 channels. index of correlation is collected & statistics such as mean,variance,standard deviation,min value, max value, total range is calculated for 1000 measurements.

setup: pure carrier signal is fed to power splitter input and four outputs of power splitter are fed four channels of SDR Boards ( 2 RX channels per board)

Observations:

1)Frequency offset of the four channels are measured and they are same

Channel Mean Standard Deviation Min value Max Value range Freq offset ch1 -478.7109375 38.80481412 -585.9375 -366.2109375 219.7265625 Freq offset ch2 -475.78125 38.89318775 -585.9375 -366.2109375 219.7265625 Freq offset ch3 -478.7109375 38.80481412 -585.9375 -366.2109375 219.7265625 Freq offset ch4 -475.78125 38.89318775 -585.9375 -366.2109375 219.7265625 Freq offset ch1 -476.953125 42.06525257 -585.9375 -366.2109375 219.7265625 Freq offset ch2 -472.8515625 38.76055174 -512.6953125 -366.2109375 146.484375 Freq offset ch3 -476.953125 42.06525257 -585.9375 -366.2109375 219.7265625 Freq offset ch4 -472.8515625 38.76055174 -512.6953125 -366.2109375 146.484375 Freq offset ch1 -472.8515625 39.8523658 -512.6953125 -366.2109375 146.484375 Freq offset ch2 -472.8515625 41.95083356 -512.6953125 -366.2109375 146.484375 Freq offset ch3 -472.8515625 39.8523658 -512.6953125 -366.2109375 146.484375 Freq offset ch4 -472.8515625 41.95083356 -512.6953125 -366.2109375 146.484375

2)Phase offset between channel 1 & 2, 1&3 , 1& 4, 3 & 4 are measured. Phase offset is not same with respect to channel .

Channel Mean Standard Deviation Min value Max Value range phase offset ch1 & ch2 -138.96 2.144388025 -141 -128 13 phase offset ch1 & ch3 145.888 891.5005617 -4040 4011 8051 phase offset ch1 & ch4 119.64 901.8573759 -4002 4049 8051 phase offset ch3 & ch4 33.856 1.129275874 25 34 9 phase offset ch1 & ch2 -138.392 2.18319399 -140 -128 12 phase offset ch1 & ch3 8.896 684.6637694 -3582 3904 7486 phase offset ch1 & ch4 74.288 682.0492629 -635 3944 4579 phase offset ch3 & ch4 34.016 0.85775521 25 35 10 phase offset ch1 & ch2 -136.304 3.427474872 -140 -127 13 phase offset ch1 & ch3 -70.096 791.8313702 -4096 4197 8293 phase offset ch1 & ch4 -149.824 774.8225094 -4192 603 4795 phase offset ch3 & ch4 34.096 0.294591242 34 35 1

as you can see frequency offset of 4 channels is almost same as clock is shared from board 1 to board

In the phase offset measurement, channel 1 & channel 2 and channel 3 & channel 4 ( i.e., two channels on the same board) has correlation index value std deviation is very low(index range is low). For channel 1 & channel 3 and Channel 1 & Channel 4 ( i.e., channel 1 of board 1 and two channels of board 2) correlation index std deviation is very high ( index range is large) indicating signals are completely uncorrelated.

Let me know , what i am missing

venky0108 commented 7 months ago

There will be phase offset between channels, but as per my understanding that phase offset should be fixed not random as between channel 1 & Channel 3 and channel 1 & Channel 4.