## Complete Communications Engineering

Joint distributed transmit beamforming and nullforming is a spatial filtering technique where $N$ cooperative nodes transmit a common message signal to $M_1$ receivers whiles at the same time forming nulls at $M_2$ receivers, making a total of $M=M_1+M_2$ receivers. All the $M$ receiver nodes cooperates with the $N$ transmits by broadcasting a feedback message containing the received signal (RS) strength for the previous epoch. The $k^{th}$ sample at the $m^{th}$ receiver node is as follows:

$r_m[k] = m[k] \sum\limits_{i=1}^{N} h_{i,m}e^{j \theta_i[k]} +w_m[k]$

where $h_{i,m}$ is the channel gain from the $i^{th}$ sensor to the $m^{th}$ receiver, $\theta_i[k]$ is the received phase from sensor $i$ at the $k^{th}$ epoch, $w_m[k]$ is a zero mean complex Gaussian additive noise and $m[k]$ is a prearranged signal from all transmitters at epoch $k$. Precisely, given $N$ transmitters and $M$ receivers, determine in a scalable and distributed manner, appropriate complex weights such that beams are formed at $M_1$ receivers and nulls are formed at $M_2$ receivers. The receivers making up the two subsets, $M_1$ and $M_2$, receivers are known apriori and each receiver send a broadcast feedback signal which contains information on the RS received at the previous epoch. The setup is as illustrated in Figure 1 below:

Figure 1: Joint distributed transmit beamforming and nullforming.

Suppose $s_m,m \in \{1,\cdots,M\}$ is the target signal strength gain, with $s_m =0$ for nullforming receivers, and $s_m =1$ for beamforming receivers, then we can define a minimizing cost function:

$J(\theta) = m^2[k]\sum\limits_{m=1}^{M} \left |s_m -\sum\limits_{i=1}^{N} h_{i,m} e^{j\theta_i[k]}\right |^2$

The algorithmic solution to minimizing the above cost function is a distributed implementation where each transmit sensor implements the following:

$\theta_i[k+1] = \theta_i[k] +2\mu m[k](\cos{(\theta_i[k])}Im\{X_i[k]\} -\sin{(\theta_i[k])}Re\{X_i[k]\})$

$X_i[k] = \sum\limits_{m=1}^{M} \left (r_m[k]- m[k] s_m \hat{h}_{i,m}\right)$

where $Im\{.\}$ and $Re\{.\}$ denote the imaginary and real parts of a complex number respectively and $\hat{.}$ denotes estimated value. The scalability of the algorithm is evident since each node independently implements the algorithm by estimating its channel impulse response to the $k^{th}$ sensor and uses the common feedback signal from all receiver nodes.