## 4 Factor Graph  
We consider a scenario where a maximum of \(N\) potential paths are considered during each time epoch, with \(N-1\) of these paths susceptible to interference to the successive symbol. Additionally, we account for a maximum of \(N^{\prime}\) discretization levels for attenuation coefficients. To illustrate, let us examine a channel model with \(N=2\). Here, at each time epoch, three paths emerge: the potential interfering path from the preceding symbol; the delayed version of the current symbol, encompassing segments of both the current and preceding symbols; and the direct line-of-sight (LOS) signal. Each of these paths undergoes processing via the receiver-matched filter to calculate the conditional Gaussian observation mean. To facilitate this, we conduct offline computations of the receiver-matched filter for all possible paths, constructing a LOT to simplify the message-passing algorithm. Consequently, four values, denoted as \(\beta_{k}\), \(\gamma_{k}\), \(\zeta_{k}\), and \(\psi_{k}\), where \(k\) denotes the current time epoch, are acquired at the output of the receiver-matched filter. From the system model, the observation at time \(k\) can be determined by  
\[r_{k}=\beta_{k}+\gamma_{k}+\zeta_{k}+\psi k+n_{k},\ (k=0,1,...,K-1) \tag{3}\]  
The value \(r_{k}\) is acquired post receiver-matched filtering. The sequence \(\{n_{k}\}\) comprises independent and identically distributed (i.i.d.) Gaussian noise components, denoted as \(n_{k}\sim\mathcal{N}(n_{k};0,\sigma^{2})\). \(\psi_{k}\) results from matched filtering of the LOS component. \(\beta_{k}\) arises from matched filtering a segment of the preceding symbol at time \(k-1\), representing the delayed version of the symbol at time \(k-1\). \(\gamma_{k}\) stems from matched filtering a segment of the preceding symbol at time \(k\). \(\zeta_{k}\) is obtained through matched filtering a segment of the current symbol at time epoch \(k\). The computation of these signals, considering Equation (2), is summarized as  
\[\psi_{k}=[\zeta_{k}p(n)]_{n=0}^{NT_{N}}*p^{*}(-n)|_{n=NT_{N}} \tag{4}\]  
in which \(p(n)\) is the pulse shaping filter (here it is the root-raised cosine one). \(NT_{N}\) is the symbol duration.  
\[\beta_{k}=\exp\Bigl{(}-lT_{N}l^{{}^{\prime}}a^{{}^{\prime}}(N^{{}^{\prime}}) \Bigr{)}[c_{k-1}p(n)]_{n=NT_{N}-lT_{N}}^{NT_{N}}*p^{*}(-n)|_{n=NT_{N}} \tag{5}\]  
where \(l\) and \(l^{{}^{\prime}}\) are detected channel parameters for the non-LOS path at time epoch \(k-1\).  
\[\gamma_{k}=\exp\Bigl{(}-l^{{}^{\prime\prime}}T_{N}l^{{}^{\prime\prime}}a^{{ }^{\prime}}(N^{{}^{\prime}})\Bigr{)}[c_{k-1}p(n)]_{n=0}^{NT_{N}-l^{{}^{\prime \prime}}T_{N}}*p^{*}(-n)|_{n=NT_{N}} \tag{6}\]  
\[\zeta_{k}=\exp\Bigl{(}-l^{{}^{\prime\prime}}T_{N}l^{{}^{\prime\prime}}a^{{}^{ \prime}}(N^{{}^{\prime}})\Bigr{)}[c_{k}p(n)]_{n=NT_{N}-l^{{}^{\prime\prime}}T_ {N}}^{NT_{N}}*p^{*}(-n)|_{n=NT_{N}} \tag{7}\]  
where \(l^{{}^{\prime\prime}}\) and \(l^{{}^{\prime\prime}}\) are the detected channel parameters for the non-LOS path at time epoch \(k\).  
The receiver can be implemented through factorizing the joint posterior distribution of data bits and channel parameters, given the observation samples after the matched filter and applying the SPA to the corresponding factor graph.  
\[p(\mathbf{b},\mathbf{PE},\mathbf{AE}|\mathbf{r}) \propto P(\mathbf{b})\mathbf{P}(\mathbf{PE})\mathbf{P}(\mathbf{AE })(\mathbf{r}|\mathbf{b},\mathbf{PE},\mathbf{AE})\propto\] (8) \[\prod_{k=0}^{K-1}p\Bigl{(}r_{k}|c_{k},c_{k-1},\mathbf{PE}^{ \mathbf{k}},\mathbf{PE}^{\mathbf{k-1}},\mathbf{AE}^{\mathbf{k}},\mathbf{AE}^{ \mathbf{k-1}}\Bigr{)}\prod_{k^{{}^{\prime}}=0}^{N-  
further explained in the following section. The corresponding factor graph is depicted in Figure 1. One can conclude by considering the mentioned example.  
\[p\Big{(}r_{k}|c_{k},c_{k-1},\mathbf{PE^{k}},\mathbf{PE^{k-1}},\mathbf{AE^{k}}, \mathbf{AE^{k-1}}\Big{)}\propto\exp\Bigg{\{}-\frac{(r_{k}-(\beta_{k}+\gamma_{k }+\zeta_{k}))^{2}}{2\sigma^{2}}\Bigg{\}} \tag{9}\]