Brevet FR3036901A1 — publié le 20161202

Dispositif de prédistorsion et procédé de calcul de prédistorsion associé La présente invention concerne un dispositif de prédistorsion adapté pour recevoir en entrée un signal complexe échantillonné (z(n)) et des coefficients complexes de prédistorsion définissant un polynôme, ledit dispositif de prédistorsion étant adapté pour calculer un signal complexe traité z_pred(n) compensant une distorsion apportée au signal en aval du dispositif de prédistorsion sur la base du polynôme ayant pour coefficients lesdits coefficients complexes de prédistorsion, tel que : K'--1-1 Mi, z_pred(n) =E Eamz(n -1).1z(n - z(n -1).1z(n -1 - m)lk k=0 1=0 k=1 1=0 m=1 K. M, c k z(n- 1).1z(n -1 + ni)lk , -FEEE k=1 1=0 m=1 où z_pred(n) est l'échantillon de rang n du signal traité z_pred, z(n) étant l'échantillon de rang n du signal z reçu en entrée et a k , ' Ckl ik=la K, ,1=O Lc-1,,n=lo sont lesdits coefficients. Un tel dispositif de prédistorsion est par exemple un élément d'un circuit imprimé de type réseau de portes programmables, dit encore FPGA (en anglais « field- programmable gate array »), ou d'un circuit intégré spécialisé, dit encore ASIC (en anglais « Application-Specific Integrated Circuit »). La prédistorsion numérique a pour objet d'ajouter une non-linéarité sur un signal à émettre par la chaîne d'émission, de manière à ce qu'en sortie de cette chaîne d'émission, le signal soit linéaire (la non-linéarité est estimée de façon à compenser les non-linéarités d'un module tel qu'un amplificateur de puissance et situé, dans la chaîne d'émission, i.e. en aval du dispositif de prédistorsion, vers l'antenne d'émission). La valeur des coefficients complexes de prédistorison est estimée par exemple via un étalonnage initial ; dans des modes de réalisation, elle est estimée et mise à jour régulièrement par l'intermédiaire d'une voie de retour. La qualité du traitement de prédistorsion est liée à la rapidité de prise en compte des évolutions des valeurs des coefficients de prédistorsion. Or les ressources des circuits imprimés, de type cellules logiques, cellules mémoires, processeurs de signal numériques, dits DSP, sont limitées. Pour réduire le nombre de calculs à effectuer en temps réel, des résultats intermédiaires de calcul, fonction des coefficients mis à jour, sont pré-calculés et ces résultats intermédiaires sont stockés dans des tables de correspondances, dites LUT (en anglais « Look-Up Table »). 3036901 2 Par conséquent, la mise à jour des coefficients de prédistorsion comprend la redéfinition des tables de correspondance correspondant à ces coefficients mis à jour, ainsi que la mise à jour de ces tables ainsi redéfinies, ce qui est consommateur de temps et de ressources de mémoire et de calcul. 5 On connaît le document W02010/136114 Al qui décrit un module de prédistorsion utilisant des tables LUT. A cet effet, suivant un premier aspect, l'invention propose un dispositif de prédistorsion du type précité caractérisé en ce que le dispositif de prédistorsion comprend : 10 un bloc de calcul de modules ; un bloc de détermination du vecteur de puissance ; un bloc de calcul de prédistorsion ; et en ce que ledit bloc de calcul de modules est adapté pour calculer les valeurs des 15 modules des signaux reçus en entrée et les valeurs I z(n) I k de ces modules élevées à des puissances entières k et pour transmettre lesdites valeurs calculées au bloc de détermination du vecteur de puissance ; le bloc de détermination du vecteur de puissance est adapté pour, dans un cycle temporel 20 de calcul du vecteur de puissance Vectp(n) associé au polynôme pour l'échantillon z_pred(n) et ayant pour composantes z(n-I). I z(n1) I k11 = 0 à La-1, k = 0 à Ka-1, z(n-l-m). I z(n-ln1)1 kl1=0àLb-1,k=1àKb,m=1àMb et z(n-l+m). I z(n-l+m)I ki =0 à Lc-1, k= 1 à Kc, m= 1 à Mc, déterminer et stocker la valeur desdites composantes dudit vecteur de puissance Vectp(n) et pour fournir, à l'issue dudit cycle temporel, ledit vecteur de puissance Vectp(n) déterminé au 25 bloc de calcul de prédistorsion, ledit bloc de détermination du vecteur de puissance étant adapté pour ré-utiliser comme composantes du vecteur Vectp(n) des composantes du vecteur Vectp(n-1) précédemment déterminées et stockées ; le bloc de calcul de prédistorsion est adapté pour, dans un cycle temporel de calcul de 30 z_pred(n), recevoir ledit vecteur de puissance Vectp(n) et les coefficients complexes de prédistorsion, et pour calculer z_pred(n) en effectuant les multiplications desdites composantes du vecteur de puissance par les coefficients complexes de prédistorsion et la sommation desdites multiplications effectuées. L'invention permet ainsi de calculer directement la prédistorsion à partir des échantillons I et Q et des coefficients de prédistorsion, sans passer par des tables de 3036901 3 correspondance LUT, en exploitant les caractéristiques des modèles polynomiaux et en réorganisant le calcul de polynôme de manière à supprimer des redondances de calcul. Le taux de précision du traitement de prédistorsion par rapport aux ressources de mémoire et de calcul utilisées est amélioré. 5 Dans des modes de réalisation, le dispositif de prédistorsion suivant l'invention comporte en outre une ou plusieurs des caractéristiques suivantes : le bloc de détermination de vecteur de puissance comporte au moins un registre à décalage (Ra_k) comprenant au moins L-1 cellules mémoires en série, L=La ou Lb OU Lc, et il existe un couple fixé (k, m), associé au registre avec m =0 et k [0, Ka-1] si L= La et, 10 m E [1, Mb] et k [1, Kb] si L= Lb et m E [-Me, -1] et k E [1, Kc] si L= Lc tel que ledit bloc de détermination du vecteur de puissance est adapté pour, pour tout n, dans le cycle temporel de calcul du vecteur de puissance Vectp(n) : - calculer z(n). I z(n-m) I k et pour le fournir en entrée de la première cellule du registre à décalage ; - déterminer la valeur de la composante z(n-I). I z(n-l-m) I k de Vectp(n), pour tout I entre 1 et L-1, comme égale au contenu de la Mme cellule dudit registre à décalage, ledit contenu ayant été fourni audit registre de décalage dans le cycle temporel de calcul du vecteur de puissance Vectp(n-l) ; - le bloc de détermination de vecteur de puissance comporte Ka premiers registres (Ra_k) comprenant chacun au moins La-1 cellules en série et associé chacun à une valeur respective de k dans [0, Ka-1] et ledit bloc de détermination du vecteur de puissance est adapté pour, pour tout n, dans le cycle temporel de calcul du vecteur de puissance Vectp(n) et pour tout k C [0, Ka-1] : - calculer z(n). I z(n) I k et pour le fournir en entrée de la première cellule du premier registre à décalage (Ra_k) associé à k; - déterminer la valeur de la composante z(n-I). I z(n-i) I k de Vectp(n), pour tout I entre 1 et La-1, comme égale au contenu de la I ième cellule dudit premier registre à décalage associé à k; et/ou le bloc de détermination de vecteur de puissance comporte pour chaque k C [1, Kb], Mb deuxièmes registres (Rb (k,m-i)) comprenant chacun au moins Lb-1 cellules en série et associé chacun à k et à une valeur respective de m C [1, Mb] et ledit bloc de détermination du vecteur de puissance est adapté pour, pour tout n, dans le cycle temporel de calcul du vecteur de puissance Vectp(n) et pour tout k C [1, Kb] : - calculer z(n). I z(n-m) I k et le fournir en entrée de la première cellule du deuxième registre à décalage (Rb2k,m..)) associé à k et m ; 3036901 4 - déterminer la valeur de la composante z(n-I). I z(n-l-m) I k de Vectp(n), pour tout I entre 1 et Lb-1, comme égale au contenu de la I lème cellule dudit deuxième registre à décalage (Rb_ (k,,,_)) associé à k et m ; et/ou le bloc de détermination de vecteur de puissance comporte, pour chaque k E [1, Ke], Me troisièmes registres (R, (k,,,+)) comprenant chacun au moins Le-1 cellules en série et associé à k et à une valeur respective de m C [1, Mc] et ledit bloc de détermination du vecteur de puissance est adapté pour, pour tout n, dans le cycle temporel de calcul du vecteur de puissance Vectp(n) et pour tout k C [1, Ke] : - calculer z(n). I z(n+m)I k et le fournir en entrée de la première cellule du troisième registre à décalage (Rb jk,m+)) associé à k et m; - déterminer la valeur de la composante z(n-I). J z(n-l+m)I k de Vectp(n), pour tout I entre 1 et Le-1, comme égale au contenu de la lième cellule dudit troisième registre à décalage (Rb(k,,,)) associé à k et m; le dispositif de prédistorsion est adapté pour être implémenté dans un circuit imprimé (1) de type FPGA ou ASIC. Suivant un deuxième aspect, la présente invention propose un procédé de calcul de prédistorsion adapté pour recevoir en entrée un signal complexe échantillonné et des coefficients complexes de prédistorsion définissant un polynôme, ledit procédé comprenant l'étape consistant à calculer un signal complexe traité z_pred(n) compensant 5 une distorsion apportée au signal en aval du dispositif de prédistorsion sur la base du polynôme ayant pour coefficients lesdits coefficients complexes de prédistorsion, tel que : Kr, -1 Lc, -1 Kb 4-1 Mb z_pred(n) = Eak,,z(n - l).1z(n - +E bo,', z(n - 1) .1z(n - - m) k=0 1=0 k=1 1=0 m=1 K, M i Ck,l,m z(n -1).1z(n + In)1k k=1 1=0 m=1 où z_pred(n) est l'échantillon de rang n du signal traité z_pred, z(n) étant l'échantillon de 10 rang n du signal z reçu en entrée et bk,111 REVENDICATIONS1.- Dispositif de prédistorsion (2) adapté pour recevoir en entrée un signal complexe échantillonné (z(n)) et des coefficients complexes de prédistorsion définissant un polynôme, ledit dispositif de prédistorsion étant adapté pour calculer un signal complexe traité z_pred(n) compensant une distorsion apportée au signal en aval du dispositif de prédistorsion sur la base du polynôme ayant pour coefficients lesdits coefficients complexes de prédistorsion, tel que : Kb Lb-1 Mb z_pred(n) = a k iz(n - 1). lz(n - 1)Ik '± EEE b z(n - 1) .1z(n - 1 - m)Ik k=0 1=0 k=1 1=0 m=1 icc L -1 Ad, +I E cki z(n - 1),Iz(n - 1 + m)lk, k=1 1=0 m=1 où z_pred(n) est l'échantillon de rang n du signal traité z_pred, z(n) étant l'échantillon de rang n du signal z reçu en entrée et ak,,, bk,l,mik=làKb,1--Oer4-1..=làMb â Lb-1' c, , ', sont lesdits coefficients, ledit dispositif étant caractérisé en ce que le dispositif de prédistorsion (2) comprend : un bloc (21) de calcul de modules ; un bloc (22) de détermination du vecteur de puissance ; un bloc (23) de calcul de prédistorsion ; et en ce que ledit bloc (21) de calcul de modules est adapté pour calculer les valeurs des modules des signaux reçus en entrée et les valeurs I z(n) I k de ces modules élevées à des puissances entières k et pour transmettre lesdites valeurs calculées au bloc de détermination du vecteur de puissance ; le bloc (22) de détermination du vecteur de puissance est adapté pour, dans un cycle temporel de calcul du vecteur de puissance Vectp(n) associé au polynôme pour l'échantillon z_pred(n) et ayant pour composantes z(n-I). I z(n-I) I k11=0àLa-1,k=0àKa-1, z(n-l- m). j z(n-l-m) I k11= 0 à Lb-1, k = 1 à Kb, m = 1 à Mb et z(n-l+m). I z(n-l+m) j k11 = o à Lc-1, k = 1 à Kc, m = 1 à Mc, déterminer et stocker la valeur desdites composantes dudit vecteur de puissance Vectp(n) et pour fournir, à l'issue dudit cycle temporel, ledit vecteur de puissance Vectp(n) déterminé au bloc de calcul de prédistorsion, ledit bloc de détermination du vecteur de 3036901 14 puissance étant adapté pour ré-utiliser comme composantes du vecteur VectP(n) des composantes du vecteur VectP(n-1) précédemment déterminées et stockées ; le bloc (23) de calcul de prédistorsion est adapté pour, dans un cycle temporel de calcul de z_pred(n), recevoir ledit vecteur de puissance VectP(n) et les coefficients complexes de prédistorsion, et pour calculer z_pred(n) en effectuant les multiplications desdites composantes du vecteur de puissance par les coefficients complexes de prédistorsion et la sommation desdites multiplications effectuées. 10 2.- Dispositif de prédistorsion (2) selon la revendication 1, dans lequel le bloc (22) de détermination de vecteur de puissance comporte au moins un registre à décalage (Ra_k) comprenant au moins L-1 cellules mémoires en série, L=La ou Lb ou Lc, et il existe un couple fixé (k, m), associé au registre avec m =0 et k C [0, Ka-1] si L= La et, m C [1, Mb] et k C [1, Kb] si L= Lb et m C [-Mc, -1] et k C [1, Kc] si L= Lc tel que ledit bloc 15 (22) de détermination du vecteur de puissance est adapté pour, pour tout n, dans le cycle temporel de calcul du vecteur de puissance VectP(n) : - calculer z(n). I z(n-m) I k et pour le fournir en entrée de la première cellule du registre à décalage ; - déterminer la valeur de la composante z(n-I). J z(n-l-m) J k de VectP(n), pour tout 20 I entre 1 et L-1, comme égale au contenu de la lième cellule dudit registre à décalage, ledit contenu ayant été fourni audit registre de décalage dans le cycle temporel de calcul du vecteur de puissance VectP(n-I) . 3.- Dispositif de prédistorsion (2) selon la revendication 1 ou 2, dans lequel : 25 i. le bloc (22) de détermination de vecteur de puissance comporte Ka premiers registres (Ra_k) comprenant chacun au moins La-1 cellules en série et associé chacun à une valeur respective de k dans [0, Ka-1] et ledit bloc de détermination du vecteur de puissance est adapté pour, pour tout n, dans le cycle temporel de calcul du vecteur de puissance VectP(n) et pour tout k C [0, Ka-1] : 30 - calculer z(n). I z(n) J k et pour le fournir en entrée de la première cellule du premier registre à décalage (Ra_k) associé à k; - déterminer la valeur de la composante z(n-I). I z(n-I) J k de VectP(n), pour tout I entre 1 et La-1, comme égale au contenu de la I ième cellule dudit premier registre à décalage associé à k; et/ou 3036901 15 ii. le bloc (22) de détermination de vecteur de puissance comporte pour chaque k C [1, Kb], Mb deuxièmes registres (Rb_(k,m-=1)) comprenant chacun au moins Lb-1 cellules en série et associé chacun à k et à une valeur respective de m C [1, Mb] et ledit bloc de détermination du vecteur de puissance est adapté pour, pour tout n, dans le cycle 5 temporel de calcul du vecteur de puissance VectP(n) et pour tout k C [1, Kb] : - calculer z(n). I z(n-m)I k et le fournir en entrée de la première cellule du deuxième registre à décalage (Rb_(k,m-)) associé à k et m ; - déterminer la valeur de la composante z(n-I). I z(n-l-m) J k de VectP(n), pour tout I entre 1 et Lb-1, comme égale au contenu de la I ième cellule dudit deuxième registre à 10 décalage (Rb_(k,m-)) associé à k et m ; et/ou iii. le bloc de détermination de vecteur de puissance comporte, pour chaque k C [1, Kc], Mc troisièmes registres (Rc_(k,m+)) comprenant chacun au moins Lc-1 cellules en série et associé à k et à une valeur respective de m [1, Mc] et ledit bloc de détermination 15 du vecteur de puissance est adapté pour, pour tout n, dans le cycle temporel de calcul du vecteur de puissance VectP(n) et pour tout k C [1, Kc] : - calculer z(n). J z(n+m) J k et le fournir en entrée de la première cellule du troisième registre à décalage (Rb_(k,m+)) associé à k et m; - déterminer la valeur de la composante z(n-I). J z(n-l+m) J k de VectP(n), pour 20 tout I entre 1 et Lc-1, comme égale au contenu de la lième cellule dudit troisième registre à décalage (Rb_(k,m)) associé à k et m. 4.- Dispositif de prédistorsion (2) selon l'une quelconques des revendications 1 à 3 adapté pour être implémenté dans un circuit imprimé (1) de type FPGA ou ASIC. 25 5.- Procédé de calcul de prédistorsion dans un dispositif de prédistorsion (2) adapté pour recevoir en entrée un signal complexe échantillonné et des coefficients complexes de prédistorsion définissant un polynôme, ledit procédé comprenant l'étape consistant à calculer un signal complexe traité z_pred(n) compensant une distorsion 30 apportée au signal en aval du dispositif de prédistorsion sur la base du polynôme ayant pour coefficients lesdits coefficients complexes de prédistorsion, tel que : K'-1 Kb 4-1 Mb Ea k z(n 1)- lz(n Olk -FE II bv,', z(n - 1) .1z(n -1 - ni)1 z_pred(n) = k=0 1=0 k=1 1=0 m=1 K, Le-1 M, Eck,mz(n-1).1z(n - 1+ m)1 k=1 1=0 m=1 3036901 16 où z_pred(n) est l'échantillon de rang n du signal traité z_pred, z(n) étant ak11=0 , bk1 l'échantillon de rang n du signal z reçu en entrée et ,1cà 4-1,1,084H ,,mik=i,,Kb,i=0,,b-1.--1âmb' sont lesdits coefficients, 5 ledit procédé étant caractérisé en ce qu'il comprend les étapes consistant à: calculer les valeurs des modules des signaux reçus en entrée et les valeurs z(n)I k de ces modules élevées à des puissances entières k et pour transmettre lesdites valeurs calculées au bloc de détermination du vecteur de puissance ; dans un cycle temporel de calcul du vecteur de puissance VectP(n) associé au 10 polynôme pour l'échantillon z_pred(n) et ayant pour composantes z(n-l).Iz(n-l) IkIl= 0 à La-1, k = 0 à Ka-1, z(n-l-m). I z(n-l-m) IkIl = 0 à Lb-1, k = 1 à Kb, m = 1 à Mb et z(nl+m).1z(n-l+m) I kll = 0 à Lc-1, k = 1 à Kc, m = 1 à Mc, déterminer et stocker la valeur desdites composantes dudit vecteur de puissance VectP(n), pour ré-utiliser comme composantes du vecteur VectP(n) des composantes du vecteur VectP(n-1) 15 précédemment déterminées et stockées et fournir, à l'issue dudit cycle temporel, ledit vecteur de puissance VectP(n) déterminé ; dans un cycle temporel de calcul de z_pred(n), recevoir ledit vecteur de puissance VectP(n) et les coefficients complexes de prédistorsion, et pour calculer z_pred(n) en effectuant les multiplications desdites composantes du vecteur de puissance par les 20 coefficients complexes de prédistorsion et la sommation desdites multiplications effectuées. 6.- Procédé de calcul de prédistorsion (2) selon la revendication 5, le dispositif de prédistorsion (2) comportant au moins un registre à décalage (Ra_k) comprenant au 25 moins L-1 cellules mémoires en série, L=La ou Lb ou Lc, et il existe un couple fixé (k, m), associé au registre avec m =0 et k E [0, Ka-1] si L= La et, m E [1, Mb] et k C [1, Kb] si L= Lb et m E [-Mc, -1] et k C [1, Kc] si L= Lc, ledit procédé comprenant les étapes suivantes pour tout n, dans le cycle temporel de calcul du vecteur de puissance VectP(n) : - calculer z(n). I z(n-m) k et pour le fournir en entrée de la première cellule du 30 registre à décalage ; - déterminer la valeur de la composante z(n-l).1z(n-l-m) k de VectP(n), pour tout I entre 1 et L-1, comme égale au contenu de la lième cellule dudit registre à décalage, ledit contenu ayant été fourni audit registre de décalage dans le cycle temporel de calcul du vecteur de puissance VectP(n-l) . 3036901 17 7.- Procédé de calcul de prédistorsion (2) selon la revendication 5 ou 6, selon lequel : i. le dispositif de prédistorsion (2) comportant Ka premiers registres (Ra_k) comprenant chacun au moins La-1 cellules en série et associé chacun à une valeur 5 respective de k dans [0, Ka-1], pour tout n, dans le cycle temporel de calcul du vecteur de puissance VectP(n) et pour tout k C [0, Ka-1], les étapes suivantes sont mises en oeuvre : - calculer z(n). I z(n)lk et pour le fournir en entrée de la première cellule du premier registre à décalage (Ra_k) associé à k; - déterminer la valeur de la composante z(n-I). I z(n-I) I k de VectP(n), pour tout I 10 entre 1 et La-1, comme égale au contenu de la I ième cellule dudit premier registre à décalage associé à k; et/ou ii. le dispositif de prédistorsion (2) comportant pour chaque k C [1, Kb], Mb deuxièmes registres (Rb_(k,m-=1)) comprenant chacun au moins Lb-1 cellules en série et 15 associé chacun à k et à une valeur respective de m C [1, Mb], pour tout n, dans le cycle temporel de calcul du vecteur de puissance VectP(n) et pour tout k C [1, Kb], les étapes suivantes sont mises en oeuvre : - calculer z(n).1z(n-m)lk et le fournir en entrée de la première cellule du deuxième registre à décalage (Rb_(k,m-)) associé à k et m ; 20 - déterminer la valeur de la composante z(n-I). I z(n-l-m) J k de VectP(n), pour tout I entre 1 et Lb-1, comme égale au contenu de la I ième cellule dudit deuxième registre à décalage (Rb_(k,m-)) associé à k et m ; et/ou iii. le dispositif de prédistorsion (2) comportant, pour chaque k C [1, Kc], Mc 25 troisièmes registres (Rc_(k,m+)) comprenant chacun au moins Lc-1 cellules en série et associé à k et à une valeur respective de m C [1, Mc], pour tout n, dans le cycle temporel de calcul du vecteur de puissance VectP(n) et pour tout k C [1, Kc], les étapes suivantes sont mises en oeuvre : - calculer z(n). J z(n+m) J k et le fournir en entrée de la première cellule du 30 troisième registre à décalage (Rb_(k,m+)) associé à k et m; - déterminer la valeur de la composante z(n-I). J z(n-l+m) J k de VectP(n), pour tout I entre 1 et Lc-1, comme égale au contenu de la lième cellule dudit troisième registre à décalage (Rb_(k,m)) associé à k et m. 35 8.- Procédé de calcul de de prédistorsion (2) selon l'une des revendications 5 à 7, implémenté dans un circuit imprimé (1) de type FPGA ou ASIC.