I'm using DW1000 UWB radio transceiver and extract its channel impulse response (CIR). The CIR output by the transceiver is the complex baseband CIR. In a static environment, the CIR is a LTI filter expressed as
$$ h_b(\tau) = \sum\limits_{i} a_i^b \cdot \delta(\tau-\tau_i) $$
where
$$ a_i^b = a_ie^{-j2 {\pi} f_c \tau_i} $$
$ i $ is the index of (multi-) paths. $ a_i $ is the (complex) scaling factor including distance, antenna gains, etc. $ f_c$ is the carrier frequency. $ \tau_i $ is the time delay due of path $ i $.
What I'd like to have is the phase of the direct path. Let direct path have index $ i=0 $, the phase is then $ -2 {\pi} f_c \tau_0 $. Since the direct path is the shortest, i.e. $ \tau_0 < \tau_j, \forall j \ne 0$, if I take the phase of the first peak in the CIR, I would get the phase of direct path.
So I have two DW1000 transceivers, one Tx and one Rx (whose local oscillators are not synchronized), keep everything static, and take multiple CIR measurements from the Rx. However, the first peak CIR phase varies quite a bit from one measurement to another (it even seems changing randomly). I understand carrier frequency offset (CFO) might be causing this, and tried a technique to eliminate it but with no luck. So I'd like to ask if there's any other potential reason for the unstable phase?
Since I'm still learning about RF systems, an explanation from up/down-conversion and channel estimation point of view is greatly appreciated!
In the figure below, x-axis is the first peak phase of n-th CIR and y-axis is phase.
Thank you!