## 2 NN Models for HPA Pre-Distortion
### NN Pre-Distorter Architecture  
The main idea behind the concept of pre-distortion is the aim of introducing inverse nonlinearities that can compensate the AM/AM and AM/PM distortion of the HPA. In order to ease the design of the predistorter and to accelerate the identification, two MLP NN are proposed for \(AM^{-1}(|x(t)|)\) and \(PM^{-1}(|x(t)|)\). The first one synthesizes  
Figure 2: HPA non-linear response for amplitude (**left**) and phase (**right**). TWTA1: \(\alpha_{||}=2\), \(\beta_{||}=1\), \(\alpha_{PM}=4\), \(\beta_{PM}=9\), TWTA2: \(\alpha_{||}=3\), \(\beta_{||}=2\), \(\alpha_{PM}=2\), \(\beta_{PM}=7\), SSPA: NEC GaAs [10]. the AM/AM pre-distortion function while the second one synthesizes the AM/PM pre-distortion function. Each MLP NN is off-line trained using the levenberg-marquardt algorithm [28]. Once it is already trained, it is ready for the continuous and real-time operation. The maximum number of epochs = 1000, and the mean squared error (MSE) is fixed to be less than or equal to 1E-6. The off-line training process is depicted in Figure 3 and is processed according to the following steps:  
1. Decompose the original signal \(x(t)\) into magnitude \(|x(t)|\) and phase angle \(\phi(x(t))\). 2. Apply the HPA AM/AM conversion function to the original magnitude \(|x(t)|\) to obtain HPA magnitude \(AM(|x(t)|)\). 3. Apply the HPA AM/PM conversion function to the original magnitude \(|x(t)|\) to obtain HPA phase angle \(PM(|x(t)|)\). 4. Train the NN AM/AM pre-distorter model using magnitudes \([|x(t)|,AM(|x(t)|)]\) to synthesize the \(AM^{-1}\) pre-distorter function. 5. Calculate the difference between the HPA AM/PM output and original phase angle \((PM(|x(t)|)-\phi(x(t)))\). 6. Train the NN AM/PM pre-distorter model using the original magnitude \((|x(t)|)\) and \(PM(|x(t)|)-\phi(x(t))\). 7. Finally, using NN models, the pre-distorters magnitude \((AM^{-1}(|x(t)|))\) and phase angle \((PM^{-1}(|x(t)|))\) signals are generated. Following off-line training, both NN models are used before the high-power amplifier, as shown in Figure 4. We would like to highlight that the examples of amplifiers used in this paper are only meant to obtain results and validate the performance of the proposed pre-distorter scheme. Once trained with the specific amplifier response, the NN models are able to pre-distort the input signal adequately. It is worth noting that the amplifier's response can vary during the time. However, if the NNs have been trained with enough data and possibilities,  
Figure 4: Pre-distorter architecture. Figure 3: Pre-distorter training phase. follow these changes real time even if the amplifier changes its behavior. Obviously, there is a limitation on the possible changes, but it is robust enough for normal operation. Going deep into the NN architecture of each MLP pre-distorter used, in Figures 3 and 4 consists in 3 layers as illustrated in Figure 5.  
* The input layer: receives the input signal of the system. * The hidden layer includes:
* \(n=4\) neurons adopting triangular basis (**tribas**) function in case of TWTA. * \(n=2\) neurons with radial basis (**radbas**) function in case of SSPA. * The output layer: with a single neuron using a linear activation function. Mathematically each neuron output can be expressed as  
\[y=f(u),\;u=\sum_{i=1}^{L}W_{i}P_{i}+b \tag{10}\]  
where \(P\) is an input vector \(P=(P_{1},P_{2},P_{3,\ldots},P_{i})^{T}\), \(W\) is set of synaptic connections also known as the set of weights \(W=(W_{1},W_{2},W_{3,\ldots},W_{i})^{T}\) these weights multiply the input to get \(WP\) and \(b\) is the added bias to \(WP\). For the MLP NN hidden layer, \(L=1\) is the number of inputs of each neuron, \(f(u)=\textbf{tribas}(u)\) is a **tribas** function (TWTA) and \(f(u)=e^{(-u^{2})}\) is a radial basis function (SSPA) while for the MLP NN output layer \(L=4\) in case of TWTA, \(L=2\) in case of SSPA and \(f(u)=u\) is a linear function.