Predistorsión digital en sistemas MIMO 2x2
Abstract
Este trabajo intenta linealizar un sistema de tipo MIMO 2x2. Para ello, será necesario hacer un modelado del sistema, para luego aplicarle predistorsión digital. La predistorsión digital es un bloque de aprendizaje que consigue hacer el efecto inverso a un amplificador de potencia, cuyo comportamiento es no lineal. Así pues, al sumar los efectos del amplificador y del bloque de predistorsión se obtiene un sistema lineal. Los resultados experimentales se han logrado para dos amplificadores tipo AB, cuya tarea ha sido amplificar una señal MIMO 2x2 a 2 GHz.
Full text
i UEquation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Predistorsión digital en sistemas MIMO 2x2 Dpto. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Autor: María Vázquez de Górgolas Tutor: María José Madero Ayora Sevilla, 20 22
iii Trabajo Fin de Grado Grado en Ingeniería de Tecnologías de Telecomunicación Predistorsión digital en sistemas MIMO 2x2 Autor: María Vázquez de Górgolas Tutor: María José Madero Ayora Dpto. de Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2022
v Trabajo Fin de Grado: Predistorsión digital en sistemas MIMO 2x2 Autor: María Vázquez de Górgolas Tutor: María José Madero Ayora El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2022 El Secretario del Tribunal
vii A mi familia A mis maestros
ix Agradecimientos En primer lugar, agradecer a María José por su tiempo, su dedicación y su disponibilidad como tutora de este trabajo, y por las ganas de enseñar que transmite como profesora. Gracias igualmente a todos los profesores que me han transmitido todos sus conocimientos y, con ello, han hecho posible que hoy me encuentre terminando mis estudios. Gracias a mis abuelos, en especial a Lala, que siempre me dijo que llegaría a dónde me propusiese y me quiso incondicionalmente toda su vida. Sé que estáis muy orgullosos de mí. Agradecer también a mis padres por el cariño, la paciencia y todos los consejos; y a mi hermana Sonia, por ser ejemplo de valentía, constancia y dedicación. Gracias a mis amigos de la carrera, los P.U., por los cafés, los bocatas de Carlos y Jose, las horas de clase, las de estudio y las de prácticas, las fiestas y los días interminables en la ETSI. Y también gracias a mis amigos de fuera, por verme crecer y acompañarme siempre. Por último, gracias a Dani, por darme toda la paz que mi mente necesita cuando está a punto de colapsar. María Vázquez Sevilla, 2022
6.2. Predistorsión digital ....................................................................................................................................... 32 7. Conclusiones y líneas futuras ............................................................................................................... 43 Anexo A: Datashet ...................................................................................................................................... 45 Anexo B: Código de Matlab empleado en el trabajo ................................................................................... 51 Anexo C: Resultados adicionales ................................................................................................................. 65 Bibliografía .................................................................................................................................................. 69
xvii ÍNDICE DE TABLAS Tabla 2.1: Ancho de banda y número de PRBs según separación ∆f y canalización. 5 Tabla 5.1: Orden no lineal y profundidad de memoria de los diferentes modelos en la prueba con LS. 24 Tabla 5.2: NMSE para los distintos modelos y acoplamiento de 30 dB con LS. 24 Tabla 5.3: ACEPR para los distintos modelos y acoplamiento de 30 dB con LS. 24 Tabla 5.4: NMSE para los distintos modelos y acoplamiento de 10 dB con LS. 25 Tabla 5.5: ACEPR para los distintos modelos y acoplamiento de 10 dB con LS. 25 Tabla 5.6: Orden no lineal y profundidad de memoria de los diferentes modelos en la prueba con DOMP. 26 Tabla 5.7: NMSE, en dB, para los distintos modelos y acoplamiento de 30 dB con DOMP. 26 Tabla 5.8: ACEPR para los distintos modelos y acoplamiento de 30 dB con DOMP. 26 Tabla 6.1: NMSE, en dB, para niveles de potencia en el generador de -35 y -37 dBm. 32 Tabla 6.2: Configuración del modelo para la prueba 4 en predistorsión. 33 Tabla 6.3: Tabla de regresores más importantes para los cuatro modelos. 41
xix ÍNDICE DE FIGURAS Figura 2.1: Señal OFDM. 3 Figura 2.2: Definición de recurso tiempo-frecuencia (PRB). 4 Figura 2.3: Implementación de una modulación OFDM. 5 Figura 2.4: Esquema de un sistema MIMO Nt x Nr. 6 Figura 2.5: Tipos de CA. 7 Figura 3.1: Sistema de múltiples entradas u(t) y salidas y(t). 9 Figura 3.3: Sistema lineal. 9 Figura 3.3: Potencia de salida frente a potencia de entrada para diferentes ganancias. 10 Figura 3.4: Símbolos transmitidos y recibidos, respectivamente. 12 Figura 3.5: Esquema de predistorsión digital. 15 Figura 3.6: Técnica de DLA. 16 Figura 3.7: Técnica de aprendizaje directo para sistema MIMO 2x2. 16 Figura 4.1: Espectro de una señal de doble banda concurrente 17 Figura 4.2: Esquema de utilización de un transmisor MIMO 19 Figura 5.1: NMSE de x1 para distintas velocidades de aprendizaje. 27 Figura 5.2: NMSE de x2 para distintas velocidades de aprendizaje. 28 Figura 5.3: ACPR de x1 para distintas velocidades de aprendizaje. 28 Figura 5.4: ACPR de x2 para distintas velocidades de aprendizaje. 29 Figura 5.5: Ganancia en la primera y última iteración. 29 Figura 5.6: Característica AM/PM en la primera y última iteración. 30 Figura 6.1: Set-up de laboratorio. 31 Figura 6.2: NMSE de la señal x1 para los distintos modelos GMPNLC y EGMPNLC. 34 Figura 6.3: NMSE de la señal x2 para los modelos GMPNLC y EGMPNLC 34 Figura 6.4: Peor valor de ACPR de la señal x1 para los modelos GMPNLC y EGMPNLC 35 Figura 6.5: Peor valor de ACPR de la señal x2 para los modelos GMPNLC y EGMPNLC. 35 Figura 6.6: NMSE de la señal x1. 36 Figura 6.7: NMSE de la señal x2. 36 Figura 6.8: ACPR de la señal x1. 37 Figura 6.9: ACPR de la señal x2. 37 Figura 6.10: Constelación. 38 Figura 6.11: Espectro. 38
1 1 INTRODUCCIÓN La comunicación es esencial para el ser humano, por lo que siempre se han intentado buscar técnicas de mejora o facilidades para que ésta se pueda desarrollar. Uno de los grandes avances para la comunicación es la posibilidad de comunicarse a distancia, que nace con la primera generación de comunicaciones móviles (1G). Sin embargo, es a partir de 2G cuando aparecen las comunicaciones digitales, y, con ello, mejoras en la comunicación como la mensajería instantánea SMS. Esto supuso sobre todo un aumento de la demanda de comunicaciones móviles, que suponen la creación de las generaciones 3G y 4G y de sus prestaciones nuevas, como la posibilidad de tener conectividad constante, poder usar todo tipo de aplicaciones y ver videos in streaming. A día de hoy, las comunicaciones móviles han adquirido un papel tan fundamental en nuestra vida que se busca un escenario de conectividad total, donde todos nuestros dispositivos estén conectados entre ellos. Esto es lo que se conoce como Internet Of Things (IoT). Si bien LTE, el estándar 4G, ha evolucionado favorablemente a lo largo del tiempo, no es capaz de gestionar el tráfico de datos tan heterogéneo y continuo que se espera. Por ello, nace la quinta generación de comunicaciones móviles (5G), que pretende proporcionar conectividad de banda ancha extrema, baja latencia y ultra robusta. Una de las grandes investigaciones para intentar mejorar la eficiencia de las comunicaciones móviles se trata de estudiar el comportamiento del amplificador de potencia. Este dispositivo tiene un comportamiento no lineal, por lo que se dedican grandes esfuerzos a intentar linealizar el sistema. Además, si se trabaja con potencias de entrada en el amplificador cercanas a su punto de saturación, debido a las características de la señal modulada, el amplificador termina por saturar. Por último, otro inconveniente de los amplificadores de potencia se trata de su baja eficiencia energética, ya que gran parte de la potencia que entra en el amplificador se disipa en forma de calor. Este trabajo se centra en una de las soluciones propuestas para los problemas que supone trabajar con un amplificador de potencia: la predistorsión digital. Este método consiste en diseñar un bloque no lineal que realice el comportamiento inverso a un amplificador de potencia, para que así la salida final del sistema sea lineal. La incorporación de este bloque requiere conocer el comportamiento del amplificador, y para ello existen técnicas como las series de Volterra. Por tanto, el objetivo de este trabajo es modelar un bloque de predistorsión digital para linealizar un sistema MIMO 2x2, lo que supone un reto mayor pues se tendrán dos señales de entrada mezcladas mediante acopladores en cada amplificador. Para saber si el sistema se ha linealizado correctamente, se recurrirá a los conceptos de NMSE, ACEPR y ACPR, conocidas como figuras de mérito. De manera que en el Capítulo 2 de este proyecto se explicarán los conceptos básicos necesarios para entender la capa física de 5G, 5G-NR; y en el Capítulo 3 se definirán las distintas figuras de mérito, se explicarán las series de Volterra y el concepto de predistorsión digital. Por otro lado, el Capítulo 4 estará dedicado a los modelos de múltiples entradas, donde cobra importancia el modelado de una señal MIMO 2x2; y los Capítulos 5 y 6 explican los resultados obtenidos mediante simulación en MATLAB y en laboratorio, respectivamente. Por último, el Capítulo 7 presenta las conclusiones obtenidas.
Introducción 2
3 2 5G-NEW RADIO e entiende por 5G-New Radio (5G-NR) la capa física de la tecnología de quinta generación de comunicaciones móviles, 5G. Dicha tecnología nace por el crecimiento exponencial de la demanda de requisitos de aumento de ancho de banda y disminución de la latencia dado por el alto número de dispositivos conectados a Internet. Este crecimiento del ancho de banda ha hecho que sea necesario también la utilización de antenas de tecnología MIMO (del inglés Multiple Input Multiple Output), de la cual se hablará en el apartado 2.2. 5G-NR emplea un sistema de acceso múltiple que combina OFDMA (acceso múltiple por división en frecuencias ortogonales, del inglés Orthogonal Frequency-Division Multiple Access), TDMA (acceso múltiple por división en tiempo, del inglés Time-Division Multiple Access) y SDMA (acceso múltiple por división en espacio, del inglés Space-Division Multiple Access). El despliegue de 5G se lleva a cabo mediante releases o actualizaciones del 3GPP. La primera especificación de 5G es la Release 15, que comenzó a finales de 2017 y quedó paralizada en junio de 2019. Es lo que se conoce como 5G Phase 1. La Release 16 se terminó en diciembre de 2019 y quedó congelada en junio de 2020, y se le conoce como 5G Phase 2. Actualmente se trabaja en la Release 17 y se planifica la Release 18. 2.1 OFDM OFDM (multiplexación por division en frecuencia orthogonal, del inglés Orthogonal Frequency Division Multiplexing) es una técnica de transmisión de información que se basa en la division del canal de comunicación en varias bandas de frecuencia igualmente espaciadas, que constituyen subcanales de banda estrecha paralelos. Todas las subportadoras son ortogonales unas a otras en el dominio de la frecuencia, es decir, los ceros de una subportadora se producen en los máximos de sus adyacentes, tal como se muestra en la figura 2.1. Figura 2.1: Señal OFDM. Las señales que se emplean en 5G-NR son OFDM con prefijo cíclico (CP), esto es, se añade al principio de un símbolo OFDM una copia del final del mismo símbolo. El objetivo de esta copia es eliminar la interferencia entre portadoras (ICI), ya que si la longitud del CP es adecuada, la señal transmitida siempre es periódica y se garantiza la ortogonalidad de los símbolos OFDM después de propagarse por el canal. Hay dos tipos de prefijos cíclicos: CP normal o CP extendido. El primero de ellos es el que se utiliza por defecto, para escenarios en los que el margen de retraso es corto. Sin embargo, el CP extendido es más robusto, mejora la resistencia a la propagación del retardo, y, por tanto, se utiliza en escenarios en los que el margen de retraso es largo. Un avance de 5G se halla en la duración de los símbolos OFDM. En LTE (4G), se emplea CP-OFDM, con una separación fija entre portadoras de 15 kHz. Para mantener la compatibilidad con LTE y a la vez tener S
5G-New Radio 4 mayor flexibilidad, en 5G se introduce el concepto de numerología, que permite posibles valores de separación entre portadoras en función de un parámetro 𝜇: ∆𝑓=2∙ 15 𝑘𝐻𝑧, 𝜇=0,1,2,3,4,5. Además, en esta modulación las tramas y subtramas tienen siempre la misma duración, y solo varía según se use CP extendido o normal. Sin embargo, la duración de los slots sí varía según la numerología, al igual que el número de slots que hay en cada trama. Por otro lado, en LTE aparece el concepto de physical resource block (PRB), que se mantiene en 5G-NR. Este es el módulo básico de asignación de recursos, y está formado por 12 subportadoras consecutivas por cada símbolo OFDM en el dominio de la frecuencia. Además, cada PRB tiene la duración de un slot y está formado por 14 símbolos en CP normal o por 12 en CP extendido. Figura 2.2: Definición de recurso tiempo-frecuencia (PRB). El ancho de banda de transmisión ocupado dependerá del número de PRBs activos, de la canalización disponible y de la separación entre subportadoras. Las canalizaciones posibles en 5G son 5, 10, 15, 20, 25, 30, 40, 50, 60, 80 o 100 MHz para la franja FR1 (de 410 MHz a 7.125 GHz) y 50, 100, 200 o 400 MHz para la franja FR2 (de 24.25 a 52.60 GHz). En la Tabla 2.1. se muestra el número de PRBs para cada separación entre subportadoras que da lugar a esas canalizaciones y el ancho de banda ocupado por la señal transmitida.
5 Predistorsión digital en sistemas MIMO 2x2 Tabla 2.1: Ancho de banda y número de PRBs según separación ∆𝑓 y canalización. Las ventajas de usar OFDM son claras, sin embargo, presenta un gran inconveniente, pues la diferencia de amplitud entre el máximo y el promedio de la señal es muy grande. Esto viene dado por la relación potencia pico a potencia promedio (PAPR), que se define como: 𝑃𝐴𝑃𝑅(𝑑𝐵)=20log ⎝ ⎛ 𝑚á𝑥[𝑥[𝑘]] 1 𝑁∑ |𝑥[𝑘]| ⎠ ⎞ Al ser muy grande este parámetro, habrá momentos en los que el amplificador tenga que trabajar con potencias muy altas, cercanas a la saturación. Esto hace que el amplificador trabaje en la zona de saturación también, lo que nos empeorará la calidad de la señal. Con el fin de conseguir la ortogonalidad entre las señales, en el transmisor y receptor de un sistema con OFDM se utiliza la Transformada Inversa de Fourier, quedando el diagrama de bloques de un sistema OFDM como en la figura 2.2. Figura 2.3: Implementación de una modulación OFDM.
Amplificador de potencia como sistema no lineal 12 EVM será una medida de la distorsión en banda de la señal. Su expresión será, para N símbolos transmitidos y recibidos 𝐸𝑉𝑀[%]=∑ |𝒙 𝒊𝒙𝒊| ∑ |𝒙𝒊| 𝑥 100 (3.8) En la práctica, se intentará que el EVM sea lo más cercano a cero posible, ya que cuánto más pequeño es el EVM más cercanos son los símbolos transmitidos y recibidos. Figura 3.4: Símbolos transmitidos y recibidos, respectivamente. NMSE Con esta medida se pretende calcular la diferencia entre la señal real que se obtiene a la salida con la que se obtendría si el sistema fuese ideal y, por consiguiente, lineal. Esta medida no diferencia, como las anteriores, entre distorsión fuera de banda y distorsión en banda, sino que pretende medir la calidad de la señal en términos absolutos. Su expresión es, para N muestras 𝑁𝑀𝑆𝐸[𝑑𝐵]=20log∑ |()()| ∑ |()| (3.9) 3.3 Series de Volterra Para entender las series de Volterra, es conveniente primero hablar de las aproximaciones de Taylor, cuyo objetivo es descomponer una salida no lineal de un sistema y(t) como suma de polinomios de la entrada escalados por unos coeficientes 𝑎. Así, la función de Taylor de una entrada x(t) se desarrollaría: 𝑦(𝑡)=𝑓𝑥(𝑡)=∑𝑎∙𝑥(𝑡) =𝑎+𝑎𝑥(𝑡)+ ⋯+ 𝑎𝑥(𝑡) (3.10) Si además, para hacer el modelo más realista, contamos con que existen unos ciertos retrasos τ en la función, es decir, que la salida del sistema depende de la entrada con un retraso τ, la salida del sistema quedaría como: 𝑦(𝑡)=𝑓𝑥(𝑡)=∑𝑎∙𝑥(𝑡−τ) =𝑎+𝑎𝑥(𝑡−τ)+ ⋯+ 𝑎𝑥(𝑡−τ) (3.11) Sin embargo, en el caso de un amplificador de potencia, este modelo no es realista pues el amplificador presenta memoria, es decir, que en un instante t1 la salida del sistema no solo depende de x(t1), sino también de muestras pasadas, y esto no es abordable con una aproximación de Taylor.
13 Predistorsión digital en sistemas MIMO 2x2 Por ello nacen las series de Volterra, que, partiendo de las series de Taylor, muestran la salida de un sistema como: 𝑦(𝑡)=∑𝑦(𝑡), (3.12) donde cada término p sigue la siguiente forma: 𝑦(𝑡)= … ℎ(τ,τ,…,τ )∙𝑥(𝑡−τ)∙𝜕τ (3.13) De esta forma, los efectos de memoria se quedan contemplados en los retrasos τ. La expresión (3.13) contiene infinitas combinaciones entre las versiones retrasadas de la señal de entrada x(t), llamados regresores. Sin embargo, a nivel de computación, para que este sistema sea útil y realizable es necesario que las variables sean discretas, y, como la memoria de un ordenador no es infinita, también es imprescindible truncar la serie. Así, definiendo N como el orden máximo del sistema no lineal y Q como la longitud de la memoria o profundidad, es decir, la cantidad de retrasos de la señal a tener en cuenta, se reescribe la serie de Volterra como: 𝑦[𝑘]=…ℎ (𝑞,…,𝑞)∙𝑥(𝑘−𝑞) (3.14) Esta aproximación a tiempo discreto sirve para señales reales, por lo que se denomina comúnmente serie de Volterra en RF (radiofrecuencia). Sin embargo, para trabajar es más útil hacerlo con muestras de la envolvente compleja de la señal en banda base, por lo que es deseable reescribir la ecuación (3.14) como: 𝑦[𝑘]= … ℎ(𝑞 ,…,𝑞)∙𝑥 [𝑘−𝑞]∙ 𝑥∗ [𝑘−𝑞], (3.15) donde n=2p+1 es el orden n-ésimo de no linealidad. Este modelo se denomina Full Volterra (FV), ya que incorpora todos los coeficientes posibles, con las únicas aproximaciones de que la señal es discreta y truncada. En la práctica, trabajar con este modelo se hace muy arduo ya que la carga computacional que conlleva la cantidad de coeficientes a tener en cuenta es excesiva. De manera que, a lo largo del tiempo, se han ido obteniendo simplificaciones de este modelo, más útiles para aplicarlos a sistemas no lineales. 3.3.1. Memory Polinomial (MP) Esta simplificación omite la contribución de los términos cruzados a la señal de salida y(t), es decir, supone que todas las versiones retrasadas de la entrada tienen un retraso común q. Esto supone que el vector de memorias propio del modelo FV quede reducido a un único valor [q]. Así, esta aproximación quedaría de la siguiente forma: 𝑦[𝑘]=ℎ[𝑞]𝑥[𝑘−𝑞]|𝑥[𝑘−𝑞]| , (3.16) donde se ha omitido la notación 𝑦[𝑘] o 𝑥[𝑘] para las envolventes complejas por simplicidad, de igual manera que se hará para el caso siguiente. 3.3.2. Generalized Memory Polinomial (GMP) Este modelo es una ampliación del MP, pero teniendo también en cuenta los términos cruzados. Podemos dividir este modelo en tres partes, donde la primera quedará igual que el MP, y la segunda y la tercera son combinaciones de la envolvente retrasada y adelantada, respectivamente, m muestras con respecto a la señal. El modelo GMP quedará entonces como:
Amplificador de potencia como sistema no lineal 14 𝑦[𝑘]=ℎ[𝑞]𝑥[𝑘−𝑞]|𝑥[𝑘−𝑞]| + ℎ[𝑞,𝑚]𝑥[𝑘−𝑞]|𝑥[𝑘−𝑞−𝑚]| +ℎ[𝑞,𝑚]𝑥[𝑘−𝑞]|𝑥[𝑘−𝑞+𝑚]| (3.17) 3.4 Expresión en forma matricial A nivel computacional, es más conveniente la definición de los modelos anteriores mediante matrices. Además, de esta forma no se pierden las propiedades algebraicas de las ecuaciones que explican el modelo. Como ejemplo, se va a reescribir en forma matricial el modelo GMP de la ecuación (3.17), que es el que se utiliza en el modelaje de MIMO posteriormente. Lo primero que se necesita para ello es definir P, Q y M, y para que no quede demasiado amplio, se tomará P=2, Q=1 y M=1. Así, la ecuación (3.17) quedaría como: 𝑦[𝑘]= ℎ[0]𝑥[𝑘]|𝑥[𝑘]|+ ℎ[1]𝑥[𝑘−1]|𝑥[𝑘−1]|+ ℎ[0]𝑥[𝑘]|𝑥[𝑘]|+ ℎ[1]𝑥[𝑘−1]|𝑥[𝑘−1]|+ ℎ[0,0]𝑥[𝑘]|𝑥[𝑘]|+ℎ[0,1]𝑥[𝑘]|𝑥[𝑘−1]|+ℎ[1,0]𝑥[𝑘]|𝑥[𝑘−1]|+ℎ[1,1]𝑥[𝑘−1]|𝑥[𝑘−2]| +ℎ[0,0]𝑥[𝑘]|𝑥[𝑘]|+ℎ[0,1]𝑥[𝑘]|𝑥[𝑘−1]|+ℎ[1,0]𝑥[𝑘]|𝑥[𝑘−1]| +ℎ[1,1]𝑥[𝑘−1]|𝑥[𝑘−2]|+ ℎ[0,0]𝑥[𝑘]|𝑥[𝑘]|+ℎ[0,1]𝑥[𝑘]|𝑥[𝑘−1]|+ℎ[1,0]𝑥[𝑘]|𝑥[𝑘−1]|+ℎ[1,1]𝑥[𝑘−1]|𝑥[𝑘]| +ℎ[0,0]𝑥[𝑘]|𝑥[𝑘]|+ℎ[0,1]𝑥[𝑘]|𝑥[𝑘−1]|+ℎ[1,0]𝑥[𝑘]|𝑥[𝑘−1]| +ℎ[1,1]𝑥[𝑘−1]|𝑥[𝑘]| (3.18) Se puede observar que hay regresores repetidos aún utilizando unos límites P, Q y M bastante bajos. Además, como puede verse en el ejemplo, la operación tiene forma de producto escalar. Así, se define el vector de coeficientes 𝒉 como: 𝒉=[ℎ[0],…,ℎ[𝑄],ℎ[0],…,ℎ[𝑄],…ℎ[0,0],ℎ[0,𝑄],ℎ[0,0],…ℎ[𝑄,𝑀]] (3.19) Además, para que se vea más claramente en el código qué coeficiente le corresponde a cada regresor se han dividido los coeficientes en tres partes: los coeficientes ‘a’ corresponden al primer sumando de la ecuación (3.17), lo coeficientes ‘b’ al segundo sumando y los coeficientes ‘c’ al tercero. Por otro lado, los límites P del modelo GMP pasarán a llamarse K con el subíndice del sumando al que corresponden. Por ejemplo, los límites P del primer sumando pasarán a ser 𝐾. Lo mismo ocurre con los límites Q, que pasarán a llamarse L. así, el vector de coeficientes quedará como: 𝒉=[𝑎[𝐾,𝐿],𝑏[𝐾,𝐿,𝑀],𝑐[𝐾,𝐿,𝑀]] (3.20) Por otro lado, la matriz de regresores X se define como:
15 Predistorsión digital en sistemas MIMO 2x2 𝐗= ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ 𝑥[0] 𝑥[1] 𝑥[2] 𝑥[−1] 𝑥[0] 𝑥[1] …𝑥[−𝑄] ⋮ 𝑥[−1] 𝑥[0]|𝑥[0]| 𝑥[1]|𝑥[1]| 𝑥[2]|𝑥[2]|… … … 𝑥[−𝑄]|𝑥[−𝑄]| ⋮ 𝑥[−1]|𝑥[−1]|… …. … … … … 𝑥[𝑁] … … … 𝑥[𝑁−1] ……. … …. 𝑥[𝑁]|𝑥[𝑁]|… …. ⋮⋮⋮ 𝑥[𝑁−𝑄]|𝑥[𝑁−𝑄]|… ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ (3.21) Cabe destacar que los índices negativos corresponden a las muestras tomadas antes del instante que se ha considerado como inicio, para así contemplar los efectos de la memoria. También es importante señalar que N corresponde al número de muestras que se han tomado. 3.5 Predistorsión digital La predistorsión digital es una técnica que pretende contrarrestar los efectos no lineales de un amplificador de potencia, modificando a cada iteración la señal de entrada para que así la salida conjunta del sistema sea equivalente a la de un sistema lineal. Un predistorsionador digital aplica distorsión inversa a la señal de entrada del amplificador para disminuir la distorsión generada por el amplificador. Una idea gráfica de lo que ocurre se puede observar en la figura 3.5. Figura 3.5: Esquema de predistorsión digital. Hay varias formas de llevar a cabo la predistorsión, pero este trabajo se centra en una de ellas: la arquitectura de aprendizaje directo (DLA). La idea consiste en minimizar el vector error, teniendo en cuenta que, si el sistema fuese lineal, la única diferencia entre la señal de entrada y la de salida sería la ganancia del amplificador. Por ello, lo que se pretende en cada iteración es eliminar el error mediante la función de costes. La estimación del error en cada iteración, 𝑒=𝑈𝑤, se resta a la señal de entrada para conseguir un sistema conjunto lo más lineal posible, tal como se observa en la figura 3.6.
Amplificador de potencia como sistema no lineal 16 Figura 3.6: Técnica de DLA. En el caso de un sistema MIMO 2x2, todos los bloques de la figura 3.6 tendrán dos señales, ya que en este caso tendremos dos señales de entrada y dos de salida. Esta idea se muestra en la figura 3.7. Figura 3.7: Técnica de aprendizaje directo para sistema MIMO 2x2. Donde el bloque NL MIMO 2x2 se refiere al bloque no lineal propio de un sistema MIMO 2x2, que se explica en la sección 4.2. de este trabajo y se ilustra en la figura 4.2.
17 4 MODELOS DE MÚLTIPLES ENTRADAS Este capítulo está centrado en el artículo de investigación titulado Behavioral Modeling and Linearization of Crosstalk and Memory Effects in RF MIMO Transmitters, publicado por Shoaib Amin en 2014. En este artículo se presentan los cuatro modelos que se utilizan posteriormente en el proyecto, que son cuatro alternativas a las Series de Volterra explicadas en el capítulo anterior, ya que estas solo son capaces de explicar los efectos de acoplamiento en sistemas SISO, de una única entrada y una salida. Estos modelos parten del Generalized Memory Polinomial (GMP) de la Serie de Volterra, adaptándolo según el tipo de acoplamiento que haya. Además, en este artículo también se detalla el montaje experimental que se ha utilizado en este proyecto. 4.1 Modelos bidimensionales para el caso de doble banda concurrente Para entender mejor el código de este trabajo, es necesario hablar de modelos de doble banda concurrente, ya que se utiliza parte de sus expresiones. En primer lugar, cabe destacar que una señal en doble banda concurrente es aquella en la que hay dos tonos distanciados en frecuencia y con distinto ancho de banda dentro del mismo espectro, tal como se muestra en la figura 4.1. Figura 4.1: Espectro de una señal de doble banda concurrente Por tanto, la idea es modificar el modelo GMP de la sección 3.3, teniendo en cuenta dos señales de entrada separadas en frecuencia. El resultado obtenido se denomina 2D-GMP y se formula como: 𝑦[𝑛]= 𝑎 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙]| ∈ ∈ + 𝑏 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙−𝑚]| ∈ ∈ ∈ + 𝑐 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙+𝑚]|+ ∈ ∈ ∈ 𝑎 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙]| ∈ ∈ + 𝑏 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙−𝑚]|+ ∈ ∈ ∈
Modelos de múltiples entradas 18 𝑐 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙+𝑚]| ∈ ∈ ∈ + 𝑎 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙]||𝑥[𝑛−𝑙]| ∈ ∈ ∈ (4.1) 𝑦[𝑛]= 𝑎 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙]| ∈ ∈ + 𝑏 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙−𝑚]| ∈ ∈ ∈ + 𝑐 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙+𝑚]|+ ∈ ∈ ∈ 𝑎 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙]| ∈ ∈ + 𝑏 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙−𝑚]|+ ∈ ∈ ∈ 𝑐 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙+𝑚]| ∈ ∈ ∈ + 𝑎 𝑥[𝑛−𝑙]|𝑥[𝑛−𝑙]||𝑥[𝑛−𝑙]| ∈ ∈ ∈ donde IB significa distorsión intra banda, es decir, la distorsión de la señal consigo misma, por lo que no aparecen términos cruzados; CB significa distorsión de banda cruzada, es decir, los términos de una banda que afectan a la otra; y MX es banda mixta, una mezcla entre los efectos de IB y CB. 4.2 Montaje experimental Como ya se ha citado anteriormente, en este trabajo se utiliza una señal tipo MIMO 2x2. Por tanto, se trata de dos señales independientes, 𝑥(𝑡) y 𝑥(𝑡), que se transmiten al mismo tiempo. Esto hace necesario la utilización de dos amplificadores de potencia (PA), que amplificarán una señal de entrada cada uno, y además una pequeña diafonía o interferencia de la otra señal de entrada. Este acoplamiento se conoce como acoplamiento no lineal. Por otro lado, una vez las señales son amplificadas volverán a acoplarse antes de llegar al receptor. Este acoplamiento será lineal. En la figura 4.1 se representa más claramente lo explicado anteriormente, donde α, β, ϐ y ϒ son las respuestas al impulso de los filtros lineales antes y después del PA, que indican la cantidad de acoplamiento representada entre 0 y 1, y LO es el oscilador local que fuerza que las dos señales Sig 1 y Sig 2 estén a la misma frecuencia.
19 Predistorsión digital en sistemas MIMO 2x2 Figura 4.2: Esquema de utilización de un transmisor MIMO 4.3 GMP para transmisores MIMO propuesto por S. Amin Los modelos que se van a utilizar como base en este proyecto se describen a continuación. 4.3.1 Generalized Memory Polinomial for Linear Crosstalk (GMPLC) En el modelo GMPLC, como su propio nombre indica, solo se tiene en cuenta el acoplamiento lineal, es decir, si seguimos el esquema de la figura 4.1, α=0 y β=0. A nivel de ecuaciones, esto supone que las funciones de transferencia no lineales de los PA solo amplifican 𝑥(𝑡) y 𝑥(𝑡), respectivamente. Sin embargo, lo que los diferencia de un sistema SISO, es que las señales una vez que son amplificadas se combinan linealmente entre ellas con unos pesos ϐ y ϒ. Cuanto más cercanos a uno sean estos parámetros más acoplada estará la señal, y, por tanto, presentará mayor no linealidad. Para un sistema MIMO 2x2, la señal de salida 𝑦 se puede modelar como: 𝑦[𝑘]=𝑔,[𝑞,𝑚]𝑥[𝑘−𝑞]|𝑥[𝑘−𝑞−𝑚]|() +𝑔,[𝑞,𝑚]𝑥[𝑘−𝑞]|𝑥[𝑘−𝑞−𝑚]|() (4.2) donde P está relacionado con el orden de no linealidad, Q y M los pesos de memoria y en los parámetros ‘g’ están incluidos los acoplamientos lineales. Se puede observar en este caso que la señal de salida es una combinación lineal de los modelos GMP de las Series de Volterra de dos señales de entrada 𝑥(𝑡) y 𝑥(𝑡). Es decir, el modelo GMPLC solo contiene términos no lineales SISO provenientes de un amplificador combinados linealmente con términos no lineales SISO provenientes del otro amplificador. 4.3.2 Generalized Memory Polinomial for NonLinear Crosstalk (GMPNLC) En el caso del modelo GMPNLC, las señales 𝑥 y 𝑥 se combinan antes del amplificador. Esto supone que la señal que pasa por la función de transferencia no lineal del PA está ya acoplada, por lo que el modelo GMPLC se vuelve insuficiente. Para compensar los efectos del acoplamiento no lineal es necesario que el modelo incluya términos cruzados entre las señales de entrada 𝑥 y 𝑥, además de la combinación lineal de las funciones de transferencia de
Modelos de múltiples entradas 20 ambos amplificadores. Para un sistema MIMO2x2, la señal de salida 𝑦 se puede modelar como: 𝑦[𝑘]= 𝑔,,[𝑞,𝑚]𝑥[𝑘−𝑞]|𝑥[𝑘−𝑞−𝑚]|()|𝑥[𝑘−𝑞−𝑚]|() + 𝑔,,[𝑞,𝑚]𝑥[𝑘−𝑞]|𝑥[𝑘−𝑞−𝑚]|()|𝑥[𝑘−𝑞−𝑚]|() (4.3) Los acoplamientos lineales y no lineales están incluidos en los términos ‘g’. 4.3.3 Extended Generalized Memory Polinomial for NonLinear Crosstalk (EGMPNLC) Este modelo es una extensión del modelo anterior. La única diferencia entre ambos modelos es que el EGMPNLC incluye muchos más términos cruzados que el GMPNLC. Para un orden de no linealidad p, las funciones base del modelo EGMPNLC se muestran en a continuación, donde 𝐿=[𝑘−𝑞] y 𝐿=[𝑘−𝑞−𝑚] 𝑥(𝐿)|𝑥(𝐿)|() 𝑥(𝐿)|𝑥(𝐿)|() 𝑥(𝐿)|𝑥(𝐿)|() 𝑥(𝐿)|𝑥(𝐿)|() 𝑥(𝐿)|𝑥(𝐿)|()𝑥(𝐿)𝑥∗(𝐿) 𝑥(𝐿)|𝑥(𝐿)|()𝑥∗(𝐿)𝑥(𝐿) 𝑥(𝐿)|𝑥(𝐿)|()𝑥(𝐿)𝑥∗(𝐿) 𝑥(𝐿)|𝑥(𝐿)|()𝑥∗(𝐿)𝑥(𝐿) 𝑥(𝐿)|𝑥(𝐿)|()/|𝑥(𝐿)|()/ 𝑥(𝐿)|𝑥(𝐿)|()/|𝑥(𝐿)|()/ 𝑥(𝐿)|𝑥(𝐿)|()𝑥(𝐿)𝑥∗(𝐿) 𝑥(𝐿)|𝑥(𝐿)|()𝑥∗(𝐿)𝑥(𝐿) 𝑥(𝐿)|𝑥(𝐿)|()𝑥(𝐿)𝑥∗(𝐿) 𝑥(𝐿)|𝑥(𝐿)|()𝑥∗(𝐿)𝑥(𝐿) (4.4) 4.3.4 Parallel Hammerstein for a MIMO Transmitter 2x2 (PH2x2) Este modelo es el más sencillo, pues se trata de una extensión del modelo SISO PH, para adaptarlo a una situación MIMO 2x2. Las ecuaciones que lo modelan se muestran a continuación:
21 Predistorsión digital en sistemas MIMO 2x2 𝑦= 𝑔,,,[𝑞,𝑚]𝑥[𝑘−𝑚]|𝑥[𝑘−𝑚]|()|𝑥(𝑛−𝑚)|() + 𝑔,,,[𝑞,𝑚]𝑥[𝑘−𝑚]|𝑥[𝑘−𝑚]|()|𝑥(𝑛−𝑚)|() (4.5) Este modelo también tiene términos cruzados, y su principal diferencia con el modelo GMPNLC es que solo existe un peso de memoria, igual para las dos señales 𝑥 y 𝑥. 4.3.5 Mejoras en la implementación del modelo En este trabajo se utiliza la expresión matricial de los cuatro modelos propuestos por S. Amin pero con la diferencia de que en los modelos GMPLC y GMPNLC también se incluye la parte ‘c’ de IB y CB del modelo 2D-GMP de la sección 4.1. Además, como se explicará en el capítulo 6 de este trabajo, en una de las propuestas de mejora del modelo inicial se incluirán términos que dependen de la señal imagen, es decir, 𝑥∗(k) y 𝑥∗(k). Esto se explicará con más detalle en la sección 6.2., concretamente en las pruebas 2 y 3. 4.4 Procedimiento para identificar el modelo: la regresión En un sistema MIMO 2x2, las señales de salida 𝑦 y 𝑦 se pueden escribir en forma matricial como: 𝑦 𝑦=𝑋0 0 𝑋ℎ ℎ+𝑒 𝑒 donde 𝑋 y 𝑋 son las matrices de regresión para los canales 1 y 2 respectivamente, y ℎ y ℎ son los coeficientes del modelo. Las señales 𝑒 y 𝑒 son señales de ruido que se asumen incorreladas y de media cero, además de errores de modelaje, ya que las predicciones del modelo pueden contener algún error a tener en cuenta. De esta forma se consigue que 𝑦 e 𝑦 puedan ser estimadas independientemente, ya que solo dependen del comportamiento de su propio canal. Con la regresión lo que se pretende es estimar la relación entre las variables 𝑦 e 𝑦, y las variables ℎ y ℎ. Como se trata de una estimación, se emplea la siguiente notación: 𝒚 =𝑿𝒉 (4.6) donde 𝒚 =𝒚+𝒆. Por tanto, lo que se pretende con la regresión es encontrar un vector de coeficientes 𝒉 que minimice el vector error. Lo más utilizado en este caso es aplicar mínimos cuadrados (LS), es decir, minimizar la suma residual de cuadrados. La aplicación queda como: 𝒉 𝑳𝑺=𝑿𝒚 (4.7) donde 𝑋 es la pseudo-inversa de Moore-Penrose, que se define como: 𝑿=(𝑿𝑯𝑿)𝑿𝑯 (4.8) donde el superíndice H denota la matriz hermítica.
Resultados con amplificador sintético 28 Figura 5.2: NMSE de 𝑥 para distintas velocidades de aprendizaje. Figura 5.3: ACPR de 𝑥 para distintas velocidades de aprendizaje.
29 Predistorsión digital en sistemas MIMO 2x2 Figura 5.4: ACPR de 𝑥 para distintas velocidades de aprendizaje. Cabe destacar de estos resultados que tanto el NMSE como el ACPR son iguales para las dos señales de entrada 𝑥 y 𝑥, y que en el ACPR los resultados a la derecha de la señal, que se muestran en línea continua, y a la izquierda de la señal, que se muestran en línea discontinua, son idénticos. Esto se debe a que el amplificador se ha programado y por tanto su comportamiento es ideal. Los datos obtenidos, para ambas velocidades de aprendizaje, son buenos, con un NMSE de -53 dB y un ACPR de -62 dB. Además, para observar cómo se va linealizando la señal de salida a cada iteración, se muestran a continuación las gráficas de la característica AM/PM y de la ganancia de la primera y la última iteración. Figura 5.5: Ganancia en la primera y última iteración.
Resultados con amplificador sintético 30 Figura 5.6: Característica AM/PM en la primera y última iteración. Se puede observar claramente en ambas gráficas que el comportamiento a la salida del amplificador se linealiza, ya que en la primera iteración los resultados son no lineales, y en la última tanto la ganancia como la característica AM/PM se asemejan bastante a una línea recta. Con esto se cierra el capítulo de resultados del amplificador sintético, ya que se han obtenido una buena cantidad de resultados que demuestran que lo implementado teóricamente funciona. El siguiente capítulo se centrará en el montaje de laboratorio y su comportamiento.
31 6 RESULTADOS DE LABORATORIO Para realizar el set-up de este proyecto se ha imitado el del artículo de Shoaib Amin explicado en el Capítulo 4 de este trabajo. Para el montaje, se necesitarán dos amplificadores, cuatro acopladores, un generador de señal (VSG) con dos puertos de salida independientes, dos preamplificadores, un RF switch, un analizador vectorial de señal (VSA) y todos los cables coaxiales que los unen. Las hojas de especificaciones de los amplificadores y acopladores se muestran en el Anexo A. En la siguiente imagen se puede observar dicho montaje, que se ha realizado en el laboratorio de Teoría de la Señal y Comunicaciones, situado en la primera planta del bloque L-3 de la Escuela Técnica Superior de Ingeniería (ETSI). Figura 6.1: Set-up de laboratorio. En la imagen se han numerado los distintos dispositivos utilizados. El número 1 corresponde a las dos fuentes de alimentación, el número 2 al generador de señal, el número 3 y el número 5 son los cuatro acopladores, el número 4 los dos amplificadores de potencia, el número 6 el RF switch, el número 7 un atenuador para que la cantidad de señal que entre en el receptor no sea demasiado grande, y el número 8 el receptor. Una de las diferencias entre los datos que se obtienen en laboratorio en comparación con el amplificador sintético es que en este caso no se puede diferenciar entre cuatro casos para distintos tipos de acoplamiento, sino que el acoplamiento es fijo y no se conoce a priori. Por tanto, todos los datos que se muestran en este apartado son para el caso más genérico, el de acoplamiento lineal y no lineal, ya que no se puede cancelar el efecto de ninguno de los acopladores. Al igual que en el caso del amplificador sintético, se mostrarán separados los datos obtenidos para modelado y para predistorsión digital. 6.1. Modelado En lo que al modelado se refiere, se probó el set-up con los cuatro modelos y para dos niveles de potencia promedio distintos: para una potencia en el generador de -35 dBm y para una potencia de -37 dBm. Los datos obtenidos se muestran a continuación, donde el primer dato mostrado es el NMSE para la salida 𝑦 y el
Resultados de laboratorio 32 segundo el NMSE para la salida 𝑦, ambos en dB. IDENTIFICACIÓN VALIDACIÓN Pgen = -35 dBm Pgen = -37 dBm Pgen = -35 dBm Pgen = -37 dBm GMPLC -38.01 / -37.76 -39.38 / -37.98 -28.77 / -37.51 -37.55 / -37.59 PH 2x2 -37.06 / -37.56 -39.04 / -37.89 -28.60 / -37.32 -37.28 / -37.58 GMPNLC -36.61 / -36.26 -39.30 / -38.00 -28.12 / -35.18 -38.55 / -37.62 EGMPNLC -36.98 / -37.43 -38.96/ -37.49 -28.06 / -36.92 -37.00 / -37.04 Tabla 6.1: NMSE, en dB, para niveles de potencia en el generador de -35 y -37 dBm. Como es lógico, los datos obtenidos para un nivel de potencia de -35 dBm son peores que los obtenidos para un nivel de potencia de -37 dBm para todos los modelos. Esto se debe a que aplicar un nivel de potencia mayor a la entrada del amplificador supone hacerlo operar en condiciones de mayor no linealidad, y por tanto la señal a su salida está más fuertemente distorsionada y es más difícil de modelar. Por ello, en los siguientes apartados solo se utiliza un nivel de potencia de -37 dBm, para obtener los mejores resultados posibles con los distintos modelos. También cabe destacar que los resultados obtenidos en validación, para la mayoría de los modelos, son mejores para la salida 𝑦 que para la salida 𝑦. No hay una razón clara de por qué esto ocurre, sino que forma parte de la propia aleatoriedad del comportamiento de los elementos del set-up, principalmente el amplificador, y muestra la dificultad de linealizarlo y modelarlo. Por otro lado, se puede observar que en este caso, y a diferencia de los resultados obtenidos en el Capítulo 5 de este trabajo, el modelo que mejores resultados aporta en validación es el GMPNLC, y el que peores el EGMPNLC, pero con poca diferencia entre el mejor caso y el peor, por lo que se puede concluir que los cuatro modelos aportan una predicción del comportamiento parecida. En el siguiente apartado, con técnicas de predistorsión digital, se va a intentar linealizar la salida mediante los cuatro modelos minimizando el vector error como se hizo con el amplificador sintético. 6.2. Predistorsión digital En este apartado del trabajo se hicieron cuatro pruebas diferentes, de las cuales dos se presentarán en este capítulo y las otras dos se mostrarán en los Anexos C.1 y C.2. La primera de ellas consiste en utilizar los modelos propuestos por S. Amin con una única mejora consistente en incluir también los términos con la envolvente adelantada con respecto a la señal (tercer y sexto sumatorios del modelo 2D-GMP), de la misma forma que se han utilizado para el amplificador sintético, con la misma configuración para los cuatro modelos, la que se muestra en la Tabla 5.6. En cuanto a la segunda prueba, se añadieron a los cuatro modelos los siguientes términos: 𝑥∗(𝑛−𝑙) y 𝑥∗(𝑛−𝑙) donde el asterisco * significa el término conjugado de ambas señales 𝑥 y 𝑥. En la tercera prueba se modificó la segunda añadiendo términos cruzados para los modelos no lineales, es decir, el GMPNLC y EGMPNLC, siendo estos: 𝑥∗(𝑛−𝑙)×|𝑥(𝑛−𝑙)| y 𝑥∗(𝑛−𝑙)×|𝑥(𝑛−𝑙)| Sin embargo, para los modelos lineales, el GMPLC y el PH2x2, se añadieron los siguientes términos:
33 Predistorsión digital en sistemas MIMO 2x2 𝑥∗(𝑛−𝑙)×|𝑥(𝑛−𝑙)| y 𝑥∗(𝑛−𝑙)×|𝑥(𝑛−𝑙)| Por último, en la cuarta prueba se mantuvieron los términos cruzados de la tercera, pero además se modificó la configuración de no linealidad y de memoria de los cuatro modelos a la que se muestra a continuación: Conjunto GMPLC PH 2x2 GMPNLC EGMPNLC Ka [0 1 2 3 4 5 6 7 8 9 10] [0 1 2 3 4 5 6 7 8 9 10] [0 1 2 3 4 5 6 7 8 9 10] [ ] La [10 5 3 1 1 1 1 1 1 1 1] [10 5 3 1 1 1 1 1 1 1 1] [10 5 3 1 1 1 1 1 1 1 1] [ ] Kb [1 2 3 4 5] [1 2 3 4 5] [1 2 3 4 5] [0 1 2 3 4 5 6 7 8 9 10] Lb [2 2 2 2 2] [2 2 2 2 2] [2 2 2 2 2] [10 5 3 1 1 1 1 1 1 1 1] Mb [1 1 1 1 1] [1 1 1 1 1] [1 1 1 1 1] [1 1 1 1 1 1 1 1 1 1 1] Kc [1 2 3 4 5] [1 2 3 4 5] [1 2 3 4 5] [0 1 2 3 4 5 6 7 8 9 10] Lc [2 2 2 2 2] [2 2 2 2 2] [2 2 2 2 2] [10 5 3 1 1 1 1 1 1 1 1] Mc [1 1 1 1 1] [1 1 1 1 1] [1 1 1 1 1 1 1] [1 1 1 1 1 1 1 1 1 1 1] Tabla 6.2: Configuración del modelo para la prueba 4 en predistorsión. Las pruebas que se mostrarán en este capítulo son la primera y la última, quedando la segunda y tercera en los Anexos C.1 y C.2. En cuanto a la primera prueba, se muestran a continuación los resultados obtenidos para los modelos EGMPNLC y GMPNLC, ya que son los que incluyen más no linealidad y son más adecuados para el comportamiento real esperado de los amplificadores.
Resultados de laboratorio 34 Figura 6.2: NMSE de la señal 𝑥 para los distintos modelos GMPNLC y EGMPNLC. Figura 6.3: NMSE de la señal 𝑥 para los modelos GMPNLC y EGMPNLC
35 Predistorsión digital en sistemas MIMO 2x2 Figura 6.4: Peor valor de ACPR de la señal 𝑥 para los modelos GMPNLC y EGMPNLC Figura 6.5: Peor valor de ACPR de la señal 𝑥 para los modelos GMPNLC y EGMPNLC. Cabe destacar que en todos los casos el modelo GMPNLC ofrece mejores prestaciones que el modelo EGMPNLC, y que la señal 𝑥 tiene, tanto para los resultados de ACPR como para los de NMSE, un comportamiento más lineal que la señal 𝑥. También es importante señalar que en el NMSE de la señal 𝑥, el modelo GMPNLC rebosa en la iteración 13 y empieza a obtener muy malas prestaciones, pero esto se va mejorando en las siguientes iteraciones hasta casi llegar a estabilizarse. Esto puede deberse a algún problema de tipo numérico en la regresión que el método DOMP realiza para que afecta principalmente en banda, ya que se puede observar también que en el ACPR de esta misma señal no ocurre, más bien al contrario, se ofrece una ACPR de -46.5 dB, que es un dato bastante
Resultados de laboratorio 36 bueno. Los datos obtenidos son buenos pero mejorables, ya que por ejemplo la señal 𝑥 no llega en ningún momento a un ACPR de -45 dB, que es el mínimo que exigen los estándares de comunicaciones móviles para la señal a transmitir. Por ello, en las siguientes pruebas se intenta mejorar estos datos, y además se prueba con los cuatro modelos. Los resultados de ACPR y NMSE de la última prueba se muestran a continuación, donde además hay una iteración 16 señalada con un círculo, que muestra los resultados de validación de cada modelo. Figura 6.6: NMSE de la señal 𝑥. Figura 6.7: NMSE de la señal 𝑥.
37 Predistorsión digital en sistemas MIMO 2x2 Figura 6.8: ACPR de la señal 𝑥. Figura 6.9: ACPR de la señal 𝑥. Los resultados obtenidos para esta prueba no ofrecen grandes mejoras respecto a la primera, por lo que se concluyó que este era el límite que el modelo ofrecía. Además, para esta configuración también se ha salvado el espectro y la constelación de la primera iteración y de la última, para ver si se observan mejoras entre ambas. Como el caso de los cuatro modelos es similar, se va a tomar como ejemplo el modelo PH 2x2, cuyos resultados se muestran a continuación.
45 ANEXO A: DATASHET En este primer anexo se muestra la hoja de especificaciones de los dos amplificadores modelo ZHL-42 y los cuatro acopladores modelo ZFBDC16-63HP+ utilizados en el set-up de laboratorio de este proyecto. Anexo A.1. Datasheet de amplificador ZHL-42
Anexo A: Datashet 46
47 Predistorsión digital en sistemas MIMO 2x2 Anexo A.2. Datasheet del acoplador ZFBDC16-63HP+
Anexo A: Datashet 48
49 Predistorsión digital en sistemas MIMO 2x2
51 ANEXO B: CÓDIGO DE MATLAB EMPLEADO EN EL TRABAJO Anexo B.1. Código principal para modelado. Este código se utiliza para la generación de la señal 5G-NR, su paso por el amplificador sintético, para posteriormente pasar a su identificación y validación. clear all, close all; clc; % Load static configuration configurationMIMO; % Amplificador sintético alpha = 15; gamma = [1,0.1,0.1]; SNR = 65; RMSin = -24.5; fc = 2e9; % a = 0.03162; % b = 0.03162; % d = 0.03162; % g = 0.03162; d=0; g=0; a=0; b=0; %% Generacion señal (5GNR 20MHz) en +40 y -40 Foff =0; fsmed = 1024*30e3*5; %153.6MHz fsint = 80e6; [xid1, xs1, xteor_cp1, dataxid1] = genera_5GNR_multicarrier_v4(50, 30e3 ,20e6, Foff, fsmed, 8, 1024); [xid2, xs2, xteor_cp2, dataxid2] = genera_5GNR_multicarrier_v4(50, 30e3, 20e6, Foff, fsmed, 8, 2048); %% Hard-clipping % xid = xid - mean(xid); % xid = xid / max(abs(xid)); % % PAPRxid = 20*log10(max(abs(xid))/rms(xid)); % fprintf('PAPR antes de clipping: %4.2f dB\n', PAPRxid); % % PAPRd = 10; % clip = 10^((PAPRd-PAPRxid)/20); % fprintf('Muestras a las que se le aplica clipping: %d (%4.8f %% de %d)\n', sum(abs(xid) > clip), sum(abs(xid) > clip)/length(xid),length(xid)); % xid(abs(xid) > clip) = clip*exp(1i*angle(xid(abs(xid) > clip))); % % PAPRxid = 20*log10(max(abs(xid))/rms(xid)); % fprintf('PAPR despu?s de clipping: %4.2f dB\n', PAPRxid); xid1 = scale_dBm(xid1,RMSin); %espectro(xid1-mean(xid1),fsmed, fc);xlabel('Frequency (MHz)'); ylabel('PSD (dB/Hz)'); title(sprintf('Señal de entrada al amplificador 1')); xid2 = scale_dBm(xid2,RMSin); %espectro(xid2-mean(xid2),fsmed, fc);xlabel('Frequency (MHz)'); ylabel('PSD (dB/Hz)'); title(sprintf('Señal de entrada al amplificador 2'));
Anexo B: Código de Matlab empleado en el trabajo 52 %% Medida x1 = xid1; x2 = xid2; y1_int = syntheticPA(x1 + a.*x2, alpha, gamma, SNR); y2_int= syntheticPA(x2 + b.*x1, alpha, gamma, SNR); y1 = y1_int+d.*y2_int; y2 = y2_int+g.*y1_int; yid1 = y1; yid2 = y2; % espectro(yid1-mean(yid1),fsmed,fc);xlabel('Frequency (MHz)'); ylabel('PSD (dB/Hz)'); title(sprintf('Salida del amplificador 1')); % espectro(yid2-mean(yid2),fsmed,fc);xlabel('Frequency (MHz)'); ylabel('PSD (dB/Hz)'); title(sprintf('Salida del amplificador 2')); Py1 = dBm(yid1); Px1 = dBm(xid1); N = length(xid1); %% Modelado %[xid1, xid2] = separate_bands(xid,fsmed,fsint, Foff); %[yid1, yid2] = separate_bands(yid,fsmed,fsint, Foff); model.indices1 = sel_indices(xid1,yid1,0.015); model.indices2 = sel_indices(xid2,yid2,0.015); %% Identificacion fprintf('\n->Identificación del modelo:\n') model = model_2Dgmp_domp_omp_v2(yid1,yid2, xid1,xid2, model); fprintf('NMSE modelado: %4.2f dB / %4.2f dB\n', model.nmse1,model.nmse2); model.indices1 = 1:length(xid1); model.indices2 = 1:length(xid2); %% Validacion fprintf('\n->Validación del modelo:\n') modelval = model_2Dgmp_domp_omp_v2(yid1,yid2, xid1,xid2, model); fprintf('NMSE validacion: %4.2f dB / %4.2f dB\n', modelval.nmse1,modelval.nmse2); [ACEPR1, ~, Pinband1]= ACEPR_5GNR(y1, modelval.ymod1, dataxid1, fc,400); [ACEPR2, ~, Pinband2]= ACEPR_5GNR(y2, modelval.ymod2, dataxid2, fc,401); fprintf('ACEPR: %4.2f dB / %4.2f dB\n', ACEPR1(1),ACEPR2(1)); Anexo B.2. Amplificador sintético. Este código se utiliza para la simulación del comportamiento de un amplificador. function y = syntheticPA(x, alpha, gamma, SNR) % function y = syntheticPA(x, alpha) % Emulates the behavior of a power amplifier device in a real measurement % setup for simulation purposes. % Memory effects and AWGN with SNR = 65 dB are included. % Inputs: % x - input complex envelope signal % alpha - parameter (0<=alpha<=1) controling the degree of nonlineary % gamma - weights for the inclusion of memory effects. % SNR - desired signal-to-noise ratio (dB). % Output: % y - output complex envelope signal
53 Predistorsión digital en sistemas MIMO 2x2 if nargin == 2, gamma0 = 1; % Weights for the inclusion of memory effects. gamma1 = 0.1; gamma2 = 0.1; SNR = 65; else gamma0 = gamma(1); % Weights for the inclusion of memory effects. gamma1 = gamma(2); gamma2 = gamma(3); if nargin == 3, SNR = 65; end end %% Useful auxiliary functions dBm = @(x) 10*log10(rms(x).^2/100)+30; scale_dBm = @(x,P) x*10^((P-dBm(x))/20); Gampl = 15; % Considered average gain of the power amplifier (dB). %% Synthetic PA with memory effects g = tanh(alpha*abs(x))./(alpha*abs(x)); y = gamma0*g.*x+gamma1*circshift(g.*x,1)+gamma2*(circshift(g.*x,2)); %% AWGN inclusion for certain SNR value n = randn(size(y))+1i*randn(size(y)); y = scale_dBm(y,dBm(x)+Gampl); n = scale_dBm(n,dBm(y)-SNR); y = y+n; end Anexo B.3. Técnica de aprendizaje directo. Este código se utiliza para la generación de la señal MIMO 2x2, su posterior paso por el amplificador y la aplicación a la señal de las técnicas DLA. clear all, close all nmse = @(ymod,y) 20*log10(norm(ymod-y)/norm(y)); dBm = @(x) 10*log10(rms(x).^2/100)+30; scale_dBm = @(x,P) x*10^((P-dBm(x))/20); PAPR = @(x) 20*log10(max(abs(x))/rms(x)); dBminst = @(x) 10*log10(abs(x).^2/100)+30; alpha = 15; gamma = [1,0.1,0.1]; SNR = 65; RMSin = -24.5; fc = 2e9; a = 0.0316; b = 0.0316; d = 0.0316; g = 0.0316; configurationMIMO; mu = 1/3; Nmeas = 1; % Number of measurements Nave = 10; Niter = 20; % Interation Nval = 3; Foff =0; fsmed = 1024*30e3*5; %153.6MHz
Anexo B: Código de Matlab empleado en el trabajo 60 end indk = 0; for k1 = 1:length(x2_limits.GMPNLC.Kc) for k2 = 1:length(x2_limits.GMPNLC.Kc) for l = 0:x2_limits.GMPNLC.Lc(k1) for m = 1:x2_limits.GMPNLC.Mc(k1) indk = indk + 1; Xc2_GMPNLC(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmaxl+m:end-Qnmax-l+m))).^(x2_limits.GMPNLC.Kc(k1))).*(abs(x1(n(1+Qpmax-l+m:end-Qnmax- l+m))).^(x2_limits.GMPNLC.Kc(k2))); Regrc2_GMPNLC{indk} = sprintf('x2(n-%d)*|x2(n-%d)|^{%d}*|x1(n- %d)|^{%d}',l,l-m,x2_limits.GMPNLC.Kc(k1),l-m,x2_limits.GMPNLC.Kc(k2)); end end end end Xmat = [Xa1_GMPNLC, Xb1_GMPNLC, Xc1_GMPNLC, Xa2_GMPNLC, Xb2_GMPNLC, Xc2_GMPNLC]; Rmat = [Regra1_GMPNLC, Regrb1_GMPNLC, Regrc1_GMPNLC, Regra2_GMPNLC, Regrb2_GMPNLC, Regrc2_GMPNLC]'; function [Xmat, Rmat] = buildW_EGMPNLC(x1, x2, n, Qpmax, Qnmax, x1_limits, x2_limits) Xb=[]; Rb=[]; Xc=[]; Rc=[]; indk = 0; for k = 1:length(x1_limits.EGMPNLC.Kb) for l = 0:x1_limits.EGMPNLC.Lb(k) for m = 1:x1_limits.EGMPNLC.Mb(k) indk=indk+1; %indice 1 Xb(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x1_limits.EGMPNLC.Kb(k))); Rb{indk} = sprintf('x1(n-%d)*|x1(n-%d)|^{%d}',l,lm,x1_limits.EGMPNLC.Kb(k)); indk=indk+1; %indice 2 Xb(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x2_limits.EGMPNLC.Kb(k))); Rb{indk} = sprintf('x1(n-%d)*|x2(n-%d)|^{%d}',l,lm,x2_limits.EGMPNLC.Kb(k)); indk=indk+1; %indice 3 Xb(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x1_limits.EGMPNLC.Kb(k))); Rb{indk} = sprintf('x2(n-%d)*|x1(n-%d)|^{%d}',l,lm,x1_limits.EGMPNLC.Kb(k)); indk=indk+1; %indice 4 Xb(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x2_limits.EGMPNLC.Kb(k))); Rb{indk} = sprintf('x2(n-%d)*|x2(n-%d)|^{%d}',l,lm,x2_limits.EGMPNLC.Kb(k)); if x1_limits.EGMPNLC.Kb(k)-2>=0 indk=indk+1; %indice 5 Xb(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x1_limits.EGMPNLC.Kb(k)-2).*x1(n(1+Qpmax-l+m:end-Qnmax- l+m)).*conj(x2(n(1+Qpmax-l+m:end-Qnmax-l+m)))); Rb{indk} = sprintf('x1(n-%d)*|x1(n-%d)|^{%d}*x1(n-%d)*x2*(n-%d)',l,lm,x1_limits.EGMPNLC.Kb(k)-2, l-m, l-m); indk=indk+1; %indice 6 Xb(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x1_limits.EGMPNLC.Kb(k)-2).*conj(x1(n(1+Qpmax-l+m:end-Qnmax- l+m))).*x2(n(1+Qpmax-l+m:end-Qnmax-l+m)));
61 Predistorsión digital en sistemas MIMO 2x2 Rb{indk} = sprintf('x1(n-%d)*|x1(n-%d)|^{%d}*x1*(n-%d)*x2(n-%d)',l,lm,x1_limits.EGMPNLC.Kb(k)-2, l-m, l-m); indk=indk+1; %indice 7 Xb(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x2_limits.EGMPNLC.Kb(k)-2).*x1(n(1+Qpmax-l+m:end-Qnmax- l+m)).*conj(x2(n(1+Qpmax-l+m:end-Qnmax-l+m)))); Rb{indk} = sprintf('x1(n-%d)*|x2(n-%d)|^{%d}*x1(n-%d)*x2*(n-%d)',l,lm,x2_limits.EGMPNLC.Kb(k)-2, l-m, l-m); indk=indk+1; %indice 8 Xb(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x2_limits.EGMPNLC.Kb(k)-2).*conj(x1(n(1+Qpmax-l+m:end-Qnmax- l+m))).*x2(n(1+Qpmax-l+m:end-Qnmax-l+m))); Rb{indk} = sprintf('x1(n-%d)*|x2(n-%d)|^{%d}*x1*(n-%d)*x2(n-%d)',l,lm,x2_limits.EGMPNLC.Kb(k)-2, l-m, l-m); if rem(x1_limits.EGMPNLC.Kb(k),2)==0 indk=indk+1; %indice 9 Xb(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l- m:end-Qnmax-l-m))).^(x1_limits.EGMPNLC.Kb(k)/2)).*(abs(x2(n(1+Qpmax-l-m:end-Qnmax-l- m))).^(x2_limits.EGMPNLC.Kb(k)/2)); Rb{indk} = sprintf('x1(n-%d)*|x1(n-%d)|^{%d}*|x2(n- %d)|^{%d}',l,l+m,x1_limits.EGMPNLC.Kb(k)/2,l+m,x2_limits.EGMPNLC.Kb(k)/2); indk=indk+1; %indice 10 Xb(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l- m:end-Qnmax-l-m))).^(x1_limits.EGMPNLC.Kb(k)/2)).*(abs(x2(n(1+Qpmax-l-m:end-Qnmax-l- m))).^(x2_limits.EGMPNLC.Kb(k)/2)); Rb{indk} = sprintf('x2(n-%d)*|x1(n-%d)|^{%d}*|x2(n- %d)|^{%d}',l,l+m,x1_limits.EGMPNLC.Kb(k)/2,l+m,x2_limits.EGMPNLC.Kb(k)/2); end indk=indk+1; %indice 11 Xb(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x1_limits.EGMPNLC.Kb(k)-2).*x1(n(1+Qpmax-l+m:end-Qnmax- l+m)).*conj(x2(n(1+Qpmax-l+m:end-Qnmax-l+m)))); Rb{indk} = sprintf('x2(n-%d)*|x1(n-%d)|^{%d}*x1(n-%d)*x2*(n-%d)',l,lm,x1_limits.EGMPNLC.Kb(k)-2, l-m, l-m); indk=indk+1; %indice 12 Xb(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x1_limits.EGMPNLC.Kb(k)-2).*conj(x1(n(1+Qpmax-l+m:end-Qnmax- l+m))).*x2(n(1+Qpmax-l+m:end-Qnmax-l+m))); Rb{indk} = sprintf('x2(n-%d)*|x1(n-%d)|^{%d}*x1*(n-%d)*x2(n-%d)',l,lm,x1_limits.EGMPNLC.Kb(k)-2, l-m, l-m); indk=indk+1; %indice 13 Xb(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x2_limits.EGMPNLC.Kb(k)-2).*x1(n(1+Qpmax-l+m:end-Qnmax- l+m)).*conj(x2(n(1+Qpmax-l+m:end-Qnmax-l+m)))); Rb{indk} = sprintf('x2(n-%d)*|x2(n-%d)|^{%d}*x1(n-%d)*x2*(n-%d)',l,lm,x2_limits.EGMPNLC.Kb(k)-2, l-m, l-m); indk=indk+1; %indice 14 Xb(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l+m:end- Qnmax-l+m))).^(x2_limits.EGMPNLC.Kb(k)-2).*conj(x1(n(1+Qpmax-l+m:end-Qnmax- l+m))).*x2(n(1+Qpmax-l+m:end-Qnmax-l+m))); Rb{indk} = sprintf('x2(n-%d)*|x2(n-%d)|^{%d}*x1*(n-%d)*x2(n-%d)',l,lm,x2_limits.EGMPNLC.Kb(k)-2, l-m, l-m); end end end end indk = 0; for k = 1:length(x1_limits.EGMPNLC.Kc) for l = 0:x1_limits.EGMPNLC.Lc(k) for m = 1:x1_limits.EGMPNLC.Mc(k)
Anexo B: Código de Matlab empleado en el trabajo 62 indk=indk+1; %indice 1 Xc(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x1_limits.EGMPNLC.Kc(k))); Rc{indk} = sprintf('x1(n-%d)*|x1(n- %d)|^{%d}',l,l+m,x1_limits.EGMPNLC.Kc(k)); indk=indk+1; %indice 2 Xc(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x2_limits.EGMPNLC.Kc(k))); Rc{indk} = sprintf('x1(n-%d)*|x2(n- %d)|^{%d}',l,l+m,x2_limits.EGMPNLC.Kc(k)); indk=indk+1; %indice 3 Xc(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x1_limits.EGMPNLC.Kc(k))); Rc{indk} = sprintf('x2(n-%d)*|x1(n- %d)|^{%d}',l,l+m,x1_limits.EGMPNLC.Kc(k)); indk=indk+1; %indice 4 Xc(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x2_limits.EGMPNLC.Kc(k))); Rc{indk} = sprintf('x2(n-%d)*|x2(n- %d)|^{%d}',l,l+m,x2_limits.EGMPNLC.Kc(k)); if x1_limits.EGMPNLC.Kc(k)-2>=0 indk=indk+1; %indice 5 Xc(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x1_limits.EGMPNLC.Kc(k)-2).*x1(n(1+Qpmax-l-m:end-Qnmax-l- m)).*conj(x2(n(1+Qpmax-l-m:end-Qnmax-l-m)))); Rc{indk} = sprintf('x1(n-%d)*|x1(n-%d)|^{%d}*x1(n-%d)*x2*(n- %d)',l,l+m,x1_limits.EGMPNLC.Kc(k)-2, l+m, l+m); indk=indk+1; %indice 6 Xc(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x1_limits.EGMPNLC.Kc(k)-2).*conj(x1(n(1+Qpmax-l-m:end-Qnmax-l- m))).*x2(n(1+Qpmax-l-m:end-Qnmax-l-m))); Rc{indk} = sprintf('x1(n-%d)*|x1(n-%d)|^{%d}*x1*(n-%d)*x2(n- %d)',l,l+m,x1_limits.EGMPNLC.Kc(k)-2, l+m, l+m); indk=indk+1; %indice 7 Xc(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x2_limits.EGMPNLC.Kc(k)-2).*x1(n(1+Qpmax-l-m:end-Qnmax-l- m)).*conj(x2(n(1+Qpmax-l-m:end-Qnmax-l-m)))); Rc{indk} = sprintf('x1(n-%d)*|x2(n-%d)|^{%d}*x1(n-%d)*x2*(n- %d)',l,l+m,x2_limits.EGMPNLC.Kc(k)-2, l+m, l+m); indk=indk+1; %indice 8 Xc(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x2_limits.EGMPNLC.Kc(k)-2).*conj(x1(n(1+Qpmax-l-m:end-Qnmax-l- m))).*x2(n(1+Qpmax-l-m:end-Qnmax-l-m))); Rc{indk} = sprintf('x1(n-%d)*|x2(n-%d)|^{%d}*x1*(n-%d)*x2(n- %d)',l,l+m,x2_limits.EGMPNLC.Kc(k)-2, l+m, l+m); if rem(x1_limits.EGMPNLC.Kc(k),2)==0 indk=indk+1; %indice 9 Xc(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l- m:end-Qnmax-l-m))).^(x1_limits.EGMPNLC.Kc(k)/2)).*(abs(x2(n(1+Qpmax-l-m:end-Qnmax-l- m))).^(x2_limits.EGMPNLC.Kc(k)/2)); Rc{indk} = sprintf('x1(n-%d)*|x1(n-%d)|^{%d}*|x2(n- %d)|^{%d}',l,l+m,x1_limits.EGMPNLC.Kc(k)/2,l+m,x2_limits.EGMPNLC.Kc(k)/2); indk=indk+1; %indice 10 Xc(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l- m:end-Qnmax-l-m))).^(x1_limits.EGMPNLC.Kc(k)/2)).*(abs(x2(n(1+Qpmax-l-m:end-Qnmax-l- m))).^(x2_limits.EGMPNLC.Kc(k)/2)); Rc{indk} = sprintf('x2(n-%d)*|x1(n-%d)|^{%d}*|x2(n- %d)|^{%d}',l,l+m,x1_limits.EGMPNLC.Kc(k)/2,l+m,x2_limits.EGMPNLC.Kc(k)/2); end indk=indk+1; %indice 11
63 Predistorsión digital en sistemas MIMO 2x2 Xc(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x1_limits.EGMPNLC.Kc(k)-2).*x1(n(1+Qpmax-l-m:end-Qnmax-l- m)).*conj(x2(n(1+Qpmax-l-m:end-Qnmax-l-m)))); Rc{indk} = sprintf('x2(n-%d)*|x1(n-%d)|^{%d}*x1(n-%d)*x2*(n- %d)',l,l+m,x1_limits.EGMPNLC.Kc(k)-2, l+m, l+m); indk=indk+1; %indice 12 Xc(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x1_limits.EGMPNLC.Kc(k)-2).*conj(x1(n(1+Qpmax-l-m:end-Qnmax-l- m))).*x2(n(1+Qpmax-l-m:end-Qnmax-l-m))); Rc{indk} = sprintf('x2(n-%d)*|x1(n-%d)|^{%d}*x1*(n-%d)*x2(n- %d)',l,l+m,x1_limits.EGMPNLC.Kc(k)-2, l+m, l+m); indk=indk+1; %indice 13 Xc(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x2_limits.EGMPNLC.Kc(k)-2).*x1(n(1+Qpmax-l-m:end-Qnmax-l- m)).*conj(x2(n(1+Qpmax-l-m:end-Qnmax-l-m)))); Rc{indk} = sprintf('x2(n-%d)*|x2(n-%d)|^{%d}*x1(n-%d)*x2*(n- %d)',l,l+m,x2_limits.EGMPNLC.Kc(k)-2, l+m, l+m); indk=indk+1; %indice 14 Xc(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l-m:end- Qnmax-l-m))).^(x2_limits.EGMPNLC.Kc(k)-2).*conj(x1(n(1+Qpmax-l-m:end-Qnmax-l- m))).*x2(n(1+Qpmax-l-m:end-Qnmax-l-m))); Rc{indk} = sprintf('x2(n-%d)*|x2(n-%d)|^{%d}*x1*(n-%d)*x2(n- %d)',l,l+m,x2_limits.EGMPNLC.Kc(k)-2, l+m, l+m); end end end end Xmat=[Xb Xc]; Rmat=[Rb Rc]'; function [Xmat, Rmat] = buildW_PH2x2(x1, x2, n, Qpmax, Qnmax, x1_limits, x2_limits) X1=[]; X2=[]; Regr1=[]; Regr2=[]; indk = 0; for k1 = 1:length(x1_limits.PH2x2.Ka) for k2 = 1:(length(x1_limits.PH2x2.Ka)-k1+1) for l = 0:x1_limits.PH2x2.La(k1) indk = indk + 1; X1(:,indk) = x1(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x1(n(1+Qpmax-l:end-Qnmax- l))).^(x1_limits.PH2x2.Ka(k1))).*(abs(x2(n(1+Qpmax-l:end-Qnmax- l))).^(x1_limits.PH2x2.Ka(k2))); Regr1{indk} = sprintf('x1(n-%d)*|x1(n-%d)|^{%d}*|x2(n- %d)|^{%d}',l,l,x1_limits.PH2x2.Ka(k1),l,x1_limits.PH2x2.Ka(k2)); end end end indk = 0; for k1 = 1:length(x2_limits.PH2x2.Ka) for k2 = 1:(length(x2_limits.PH2x2.Ka)-k1+1) for l = 0:x2_limits.PH2x2.La(k1) indk = indk + 1; X2(:,indk) = x2(n(1+Qpmax-l:end-Qnmax-l)).*(abs(x2(n(1+Qpmax-l:end-Qnmax- l))).^(x2_limits.PH2x2.Ka(k1))).*(abs(x1(n(1+Qpmax-l:end-Qnmax- l))).^(x2_limits.PH2x2.Ka(k2))); Regr2{indk} = sprintf('x2(n-%d)*|x2(n-%d)|^{%d}*|x1(n- %d)|^{%d}',l,l,x2_limits.PH2x2.Ka(k1),l,x2_limits.PH2x2.Ka(k2));
Anexo B: Código de Matlab empleado en el trabajo 64 end end end Xmat=[X1 X2]; Rmat=[Regr1 Regr2];
65 ANEXO C: RESULTADOS ADICIONALES En este anexo se muestran los resultados de las pruebas 2 y 3 con el montaje de laboratorio explicado en la sección 6 de este trabajo. Anexo C.1. Resultados de NMSE y ACPR para la prueba 2.
Anexo C: Resultados adicionales 66
67 Predistorsión digital en sistemas MIMO 2x2 Anexo C.2. Resultados de NMSE y ACPR para la prueba 3.
Anexo C: Resultados adicionales 68
69 BIBLIOGRAFÍA [1] B. Jingfu, H. Jimgfu, W. Huadong, W. Zhengde, “An Memory Polynomial Model for Power Amplifiers”, pp 1346-1349, IEEE International Conference on Communications, Circuits and Systems, 2008. [2] C. Crespo-Cadenas, M. J. Madero-Ayora, J. Reina-Tosina, and J. Becerra-González, “Formal deduction of a Volterra series model for complex-valued systems,” Signal Processing, vol. 131, pp. 245–248, 2017. [Online]. Available: https://www.sciencedirect.com/science/article/pii/S0165168416302043 [3] D. Morgan, Z. Ma, J. Kim, M. Zierdt, and J. Pastalan, “A generalized memory polynomial model for digital predistortion of rf power amplifiers,” IEEE Transactions on Signal Processing, vol. 54, no. 10, pp. 3852–3860, Oct. 2006. [4] D. Zhou and V. DeBrunner, “A novel adaptive nonlinear predistorter based on the direct learning algorithm,” in 2004 IEEE International Conference on Communications (IEEE Cat. No.04CH37577), vol. 4, Jun. 2004, pp. 2362–2366 Vol.4. [5] E. Dahlman, S. Parkvall, J. Skold,5G NR The next generation wireless access technology, Academic Press, 1ª ed., 2018. [6] F. Ghannouchi, O. Hammi, M. Helaoui, “Behavioral modelling and predistortion of wideband wireless transmitters”, John Wiley & Sons, 2015. [7] H. Enzinger, K. Freiberger, and C. Vogel, “Competitive linearity for envelope tracking: Dual-band crest factor reduction and 2d-vector-switched digital predistortion,” IEEE Microwave Magazine, vol. 19, no. 1, pp. 69–77, Feb. 2018. [8] J. A. Becerra, M. J. Madero-Ayora, J. Reina-Tosina, C. Crespo-Cadenas, J. García-Frías, and G. Arce, “A doubly orthogonal matching pursuit algorithm for sparse predistortion of power amplifiers,” IEEE Microwave and Wireless Components Letters, vol. 28, no. 8, pp. 726–728, Aug. 2018. [9] J. Kim and K. Konstantinou, “Digital predistortion of wideband signals based on power amplifier model with memory,” IEEE Transactions on Signal Processing, vol. 37, no. 23, pp. 1417–1418, Nov. 2001. [10] J. Pedro and N. Carvalho, Intermodulation distortion in microwave and wireless circuits. Boston: Artech House, Jun. 2003. [11] J. Vuolevi and T. Rahkonen, Distortion in RF power amplifiers. Artech House, 2003. [12] J. Wood, Behavioral modeling and linearization of RF power amplifiers. Artech House, 2014. [13] S. A. Bassam, M. Helaoui, and F. M. Ghannouchi, “2-D digital predistortion (2-D-DPD) architecture for concurrent dual-band transmitters,” IEEE Trans. Microw. Theory Techn., vol. 59, no. 10, pp. 2547–2553, Oct. 2011. [14] S. Amin, P. Händel, “Behavorial Modeling and Linearization of Crosstalk and Memory Effects in RF MIMO Transmitters”, IEEE Transactions on Microwave Theory and Techniques, Vol. 62, no. 4, 2014.