1. A method of Digital Pre Distortion (DPD) comprising the steps of: modeling the non linear behavior of a power amplifier by using Volterra Kernel series with memory effects: y [ n ] = ∑ l w l U l ( x [ n ] ) where: y[n] is the power amplifier output at sampling time n, x[n] is PA input at sampling time n; U l (x[n]) is general Volterra kernel with memory effects expressed in apolynomial form; and w l is a corresponding coefficient; searching for the dominant Volterra Kernel with the minimum residue error by letting x[n] be the first new build orthogonal base e 1 [n]=x[n] Step 1, calculating a residual error of using e 1 [n] to model y[n] as follows: y_error [ n ] 1 = y [ n ] - 〈 y [ n ] , e 1 [ n ] 〉 〈 e 1 [ n ] , e 1 [ n ] 〉 e 1 [ n ] where: <x,y> denotes x and y cross-correlation, Step 2, building an innovation base for each of the Volterra Kernels versus e 1 (n) as follows: { U l ( x [ n ] } innovation = U l ( x [ n ] ) - 〈 U l ( x [ n ] ) , e 1 [ N ] 〉  〈 e 1 [ N ] , e 1 [ N ] 〉 e 1 [ N ] , l = 2 , 3 , 4 … Step 3, calculating the residual error of using each innovation base and selecting an innovative base with the minimum residual error as the new orthogonal base e 2 [n], putting the corresponding Volterra kernel into a candidate list for the next update of the Volterra kernels set for the DPD engine as follows: y_error [ n ] 1 l = y_error [ n ] 1 - 〈 y_error [ n ] 1 , { U l ( x [ n ] } innovation 〉 〈 { U l ( x [ n ] } innovation , { U l ( x [ n ] } innovation 〉 { U l ( x [ n ] } innovation , l - 2 , 3 , 4 , 5 … e 2 [ n ] = { U k ( x [ n ] } innovation , k = min {  〈 y_error [ n ] 1 l , y_error [ n ] 1 l 〉 } y_error [ n ] 2 = y_error [ n ] 1 k where: Volterra Kernels Candidate is {U l , U k } and U k is removed from search candidate list, and repeating step 1, step 2 and step 3 to generate a new orthogonal base list [e 1 , e 2 , e 3. .. ] and a dominant Volterra Kernel candidates list [U l , U k. .. ]; and continuously updating the digital pre distortion process with the optimal Volterra Kernel set.