## 3 Blind Demodulation of CDS-SS Signals Based on Particle Filters  
### Particle Filter  
To begin with, a brief review of the PF is described first [22; 23; 24]. Let us consider a dynamic system represented by:  
\[\mathbf{x}_{k+1}=f(\mathbf{x}_{k})+\mathbf{w}_{k} \tag{17}\]  
\[\mathbf{z}_{k+1}=h(\mathbf{x}_{k+1})+\mathbf{v}_{k+1} \tag{18}\]  
where \(\mathbf{x}_{k}\) is the state vector, \(\mathbf{z}_{k}\) is the measurement vector, \(f(\cdot)\) and \(h(\cdot)\) are system and measurement equations, respectively, and \(\mathbf{w}_{k}\) and \(\mathbf{v}_{k}\) are process and measurement noises, respectively. Unlike the conventional analytical approximation methods, PFs are commonly used for the approximation of intractable integrals and rely on the ability to draw random samples (or particles) from a probability distribution. The main idea is to represent the posterior probability density function of the target state by a set of random particles \(\{\mathbf{x}_{k}^{j}\}_{j=1}^{M}\) with their associated weights \(\{\lambda_{k}^{j}\}_{j=1}^{M},\) where \(k\) is the time step, \(j\) is the particle index, and \(M\) is the particle number, _i.e._:\[p(\textbf{x}_{k}\,|\textbf{z}_{{}_{1k}})\,{=}\,\frac{1}{\bar{\lambda}_{k}}\sum_{j =1}^{M}\lambda_{k}^{j}\delta(\textbf{x}_{k}-\textbf{x}_{k}^{j}) \tag{19}\]  
operations where \(\bar{\lambda}_{k}\,{=}\,{\sum}_{j=1}^{M}\lambda_{k}^{j}\), \(\delta(\cdot)\) is the Dirac delta function, \(\textbf{z}_{{}_{1k}}\,{=}\,\{\textbf{z}_{{}_{1}},\textbf{z}_{{}_{2}},\ldots, \textbf{z}_{k}\}\) is the set of accumulated measurements up to the \(k\)th time step. Then, one can compute an optimal estimate based on these particles and weights. In the processing of PFs, generally there are six important steps:  
(i) Initialization  
Begin by generating \(M\) particles \(\{\textbf{x}_{0}^{j}\}_{j=1}^{M}\) from \(p(\textbf{x}_{0})\) which is the initial probability for the state;  
(ii) Prediction/sampling  
Sample new particles \(\textbf{x}_{{}_{k+1}}^{j}\,{\sim}\,\pi(\textbf{x}_{{}_{k+1}}\,|\,\textbf{x}_{{} _{k}^{j}},\textbf{z}_{{}_{1k+1}})\)\(j\,{=}\,1,\ldots,M\), where \(\pi(\textbf{x}_{{}_{k+1}}\big{|}\textbf{x}_{{}_{k}^{j}},\textbf{z}_{{}_{1k+1}})\) is the proposed distribution. The most popular choice of the proposed distribution is the prior transition \(\pi(\textbf{x}_{{}_{k+1}}\big{|}\textbf{x}_{{}_{k}^{j}},\textbf{z}_{{}_{1k+1} })=p(\textbf{x}_{{}_{k+1}}\big{|}\textbf{x}_{{}_{k}^{j}})\,\)due to its simplicity;  
(iii) Measurement update  
For \(j\,{=}\,1,2,\cdots,M\), update the weights by the likelihood:  
\[\begin{array}{c}\lambda_{k+1}^{j}=\lambda_{k}^{j}\,p(\textbf{z}_{{}_{k+1}} \big{|}\textbf{x}_{{}_{k+1}^{j}})\\ =\lambda_{k}^{j}\,p_{\textbf{v}}(\textbf{z}_{{}_{k+1}}-h(\textbf{x}_{{}_{k+1}} ))\end{array} \tag{20}\]  
where \(p_{\textbf{v}}()\) denotes the distribution of the measurement noise \(\textbf{v}\).  
Followed by normalization \(\bar{\lambda}_{k+1}^{j}=\lambda_{k+1}^{j}\,/\,{\sum}_{j=1}^{M}\lambda_{k+1}^{j}\) ;  
(iv) State estimation  
\[\hat{\textbf{x}}_{{}_{k+1}}=E[\textbf{x}_{{}_{k+1}}\,|\,\textbf{z}_{{}_{1k+1 }}]\,{=}\,{\sum}_{j=1}^{M}\bar{\lambda}_{k+1}^{j}\textbf{x}_{{}_{k+1}^{j}} \tag{21}\]  
(v) Resampling  
The basic idea of resampling is to eliminate particles which have small weights, and to replicate particles with large weights. Draw new particles from the above set of particles \(\{\textbf{x}_{{}_{k+1}^{j}}\}_{j=1}^{M}\) based on the particle weights \(\{\bar{\lambda}_{k+1}^{j}\}_{j=1}^{M}\) according to a resampling algorithm. Then the particles with different weights are replaced with new ones having equal weights (\(1/M\));  
(vi) Iteration  
Let \(k\,{=}\,k+1\) and iterate to item (ii).