CAPÍTULO 3 revisado

Anuncio
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
CAPÍTULO
3.
MODELADO
DE
COMPORTAMIENTO
DEL
AMPLIFICADOR DE POTENCIA DE
RADIOFRECUENCIA
3.1 MODELOS DE COMPORTAMIENTO Y SERIES
DE VOLTERRA
3.1.1 INTRODUCCIÓN A LOS MODELOS DE COMPORTAMIENTO
Los modelos de comportamiento son a menudo usados para describir
fenómenos donde puede que no se conozcan completamente los procesos
físicos involucrados, o al menos resulte demasiado difícil capturarlos. Estos
modelos son construidos usualmente a partir de los datos empíricos obtenidos, y
relacionan los resultados de un proceso con sus estímulos mediante una relación
puramente matemática.
Los sistemas de comunicaciones modernos de microondas y wireless son a
menudo demasiado complejos para permitir su completa simulación. El gran
número de ecuaciones no lineales que se deben resolver es un serio problema,
tanto en lo que respecta al tiempo de simulación como a la memoria. La
solución más eficiente es reemplazar los circuitos completos y bloques
funcionales no lineales de sistemas completos por simplificados, pero
suficientemente precisos, modelos de comportamiento.
El modelado de comportamiento es generalmente propuesto para caracterizar un
sistema no lineal completo, o una sección de dicho sistema, en términos de
señales de entrada y salida usando expresiones matemáticas relativamente
simples. En este tipo de modelo a nivel de sistema, el dispositivo modelado es
considerado como una caja negra, y en principio no se requiere conocimiento de
su estructura interna, conteniéndose la información del modelo completamente
en las respuestas externas del dispositivo. Debido a esta característica, los
parámetros del modelo pueden ser estimados a partir de las respuestas medidas.
Los modelos de comportamiento permiten la simulación completa a un nivel
superior de abstracción a la vez que siguen representando de manera precisa el
efecto de los bloques no lineales dentro de la totalidad del sistema. De la misma
manera, proporcionan una forma clave de proteger la propiedad intelectual
asociada con un circuito o bloque funcional, a la vez que siguen encapsulando
sus características. Es una seguridad mucho mayor que la encriptación, esto es,
ocultar los detalles del modelo a nivel de circuito. La propiedad intelectual se
69
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
puede compartir libremente y combinarse con el fin de obtener un beneficio
mutuo sin riesgo de compromiso.
Por otro lado, un diseñador de sistemas puede que no tenga todos los
componentes de hardware necesarios para obtener un prototipo de un diseño
completo. Los modelos de comportamiento ofrecen la posibilidad de diseñar un
sistema incluso antes de que los componentes estén disponibles. También, un
modelo que represente un dispositivo se puede usar para determinar si éste es
una buena opción para usarse en un diseño de sistema. De hecho un buen
modelo de comportamiento es quizás la mejor especificación de las
características del dispositivo.
Los modelos de comportamiento pueden constituir por tanto una ventaja clave
tanto para las empresas dedicadas al diseño de circuitos como para las
dedicadas al diseño de sistemas. Un modelo de comportamiento de un circuito
se puede enviar a una empresa dedicada al diseño de sistemas para que ésta lo
evalúe en lugar del componente real. Las empresas dedicadas al diseño de
circuitos que ofrecen buenos modelos de comportamiento hacen que sea más
fácil que sus productos se diseñen dentro de una estructura de sistemas, de
manera que presentan una ventaja respecto a otras empresas de diseño con
tecnología hardware comparable. Además, una empresa diseñadora de sistemas
con la capacidad de crear sus propios modelos de comportamiento puede
diseñar sistemas con más facilidad que otras que deben esperar a tener el
hardware adecuado, evitando así construir prototipos muy costosos y que
consumen mucho tiempo.
3.1.2 MÉTODOS DE VOLTERRA PARA EL MODELADO DE
COMPORTAMIENTO
Los estudios del matemático italiano Vito Volterra (1860-1940) fueron pioneros
y desarrolló la rama de las matemáticas conocida como análisis funcional. Su
primer artículo sobre el tema de los parámetros funcionales se publicó en 1887
y su colección de trabajos fue publicado en el volumen titulado Theory of
Functionals and of Integro-Differential Equations en 1936. El uso común de la
teoría de Volterra en la ingeniería de sistemas se debe a Norbert Wiener, quien
desarrolló la hipótesis de que un sistema no lineal invariante en el tiempo se
podía llevar a cabo a través de una serie de parámetros funcionales de Volterra,
siempre y cuando las no linealidades del sistema no fuesen demasiado fuertes.
Wiener también propuso un método para identificar los coeficientes de las
funciones de Volterra utilizando ruido blanco. La teoría de Volterra se retomó y
se aplicó a los circuitos no lineales y sistemas de comunicaciones por el centro
de desarrollo aéreo de Roma en los años 60. El desarrollo y aplicación de estas
teorías en los años 70 decayó debido al hecho de que los avances producidos en
dispositivos y tecnología de dispositivos implicaron mejoras en la linealidad de
70
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
los circuitos y sistemas. La teoría de Volterra se redescubrió en los años 80
cuando la distorsión en los circuitos de comunicaciones volvió a convertirse en
un problema serio: los dispositivos de bajo ruido y alta frecuencia no son de por
sí muy lineales, y la complejidad de los sistemas de comunicaciones conllevan
que la distorsión tenga que ir encaminada a nivel de circuito. Ahora, con el
reciente interés por los modelos de comportamiento de sistemas no lineales, la
aplicación de las series de Volterra al análisis del sistema ha alcanzado una gran
dimensión.
Las series de Volterra son similares a las series de Taylor, se pueden considerar
como una serie de Taylor con memoria. Las no linealidades descritas por las
series deben satisfacer algún criterio de suavidad para que las series sean
convergentes. Esto es otra forma de decir que las series aproximarán el valor
concreto en un intervalo situado dentro de una tolerancia especificada (por
ejemplo, el error de truncamiento llegue a ser menor que el valor de tolerancia).
En la práctica, el número de términos requeridos en las series para cumplir este
criterio puede ser muy grande.
Cuando el grado del sistema polinomial aumenta, la exigencia computacional
requerida para calcular los coeficientes de Volterra también aumenta en gran
cantidad. Por lo tanto, en la práctica, limitamos el grado de la simulación a N =
3 o 5, aunque en nuestro proyecto lo ampliaremos a N = 7.
Los sistemas que modelamos usando los métodos de Volterra son cuasilineales:
las no linealidades son débiles, las no linealidades de mayor orden son muy
pequeñas y por tanto una aproximación de nivel bajo es la apropiada.
Los métodos de Volterra se han usado durante mucho tiempo y tienen una gran
cantidad de base teórica. Representan un enfoque viable para el modelado de
comportamiento con el handicap de que están limitados a los sistemas con una
no linealidad de carácter débil; esto puede no ser una desventaja en el caso de
que se trate de sistemas de comunicaciones modernos en los que el
comportamiento no lineal que nos interesa se encuentra en niveles bajos de
señal de distorsión, para modelar el recrecimiento espectral por ejemplo.
La desventaja de usar los métodos de Volterra reside en la complejidad
computacional, lo que los hace poco atractivos para el análisis de los sistemas
multicomponente, en los que muchos bloques no lineales están colocados en
cascada. Sin embargo, los métodos de Volterra tienen una base argumentativa
teórica mucho más fuerte que la de otras técnicas de modelado de
comportamiento.
Las series de Volterra representan una relación entrada-salida explícita para
sistemas no lineales y constan de series infinitas con la forma de integrales de
convolución que se muestra a continuación:
71
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
En esta expresión en el dominio del tiempo, x(t) es la señal de entrada al
sistema, y(t) es la señal de salida, h1(τ1) es el kernel o coeficiente de primer
orden que contiene las propiedades lineales del sistema, h2(τ1,τ2) es el kernel de
segundo orden que contiene las propiedades cuadráticas del sistema y
hn(τ1,…,τn) es el kernel de orden n.
Sustituyendo en la ecuación de arriba las integrales por sumatorios, en el
dominio del tiempo discreto las series de Volterra se pueden escribir de la
forma siguiente:
donde yp(n) representa la contribución de la no linealidad de orden p, y su
expresión es la que sigue:
donde x(n) e y(n) representa la entrada y la salida respectivamente, y hp(i1,…ip)
el kernel de Volterra de orden p.
En aplicaciones reales, la serie de Volterra es normalmente truncada a una no
linealidad finita de orden p y una longitud de memoria finita M, tal como queda
plasmado en las dos últimas ecuaciones.
Debido a que en la serie de Volterra general, el número de coeficientes
necesarios para lograr la estimación del modelo se incrementa
exponencialmente con el grado de la no linealidad y longitud de memoria del
sistema, se han propuesto varios enfoques que permitan simplificar la serie
general de Volterra y el número de coeficientes. Entre ellos, se encuentra el
enfoque de restricción estructural que usamos en nuestro modelo y que será
comentado en detalle en las líneas siguientes.
Por último, comentar que en el diseño y análisis a nivel de sistema, la mayoría
de los simuladores usan señales envolventes complejas paso de banda para
evaluar las características del sistema. Para manejar estas señales, el modelo
discreto anterior tiene que ser transformado al formato envolvente complejo.
Así, las señales de entrada y salida serán representadas por medio de su
envolvente compleja y las combinaciones de entrada correspondientes a los
distintos coeficientes de Volterra transformados al formato complejo; por ej. al
kernel de orden 3 le corresponde el conjunto de entradas x(n-i1)·x(n-i2)·x‫(٭‬n-i3),
y así sucesivamente para el resto de órdenes.
72
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
3.2 MODELO DE REFERENCIA
Para implementar nuestro modelo de comportamiento nos hemos basado en el
modelo que se propone en el artículo siguiente:
Anding Zhu y Thomas J. Brazil, Behavioral Modeling of RF Power Amplifiers
Based on Pruned Volterra Series, IEEE Microwave and Wireless Components
Letters, Vol. 14, No. 12, pp. 563-565, Dec. 2004.
En él se presenta un enfoque de restricción estructural para truncar algunos
coeficientes que tienen una menor influencia en la salida del sistema no lineal
en el modelo general basado en series de Volterra. Con este método, el número
de coeficientes del modelo de Volterra puede ser reducido drásticamente y la
estructura del modelo simplificada significativamente, sin comprometer
sustancialmente la exactitud del modelo.
Las series de Volterra truncadas pueden ser usadas para representar una amplia
gama de sistemas no lineales invariantes en el tiempo con efectos de memoria.
Consideramos las señales de entrada y salida de un amplificador como:
,
; donde ωo es la frecuencia de
portadora y x(t) e ỹ(t) representan la envolvente compleja de la entrada y salida
respectivamente.
Usando conversión A/D, el modelo de Volterra complejo en banda base con
memoria finita y en tiempo discreto de un amplificador de potencia tiene la
forma siguiente:
donde hl(i1,i2,…,il) es el kernel de Volterra de orden l, ml representa la
“memoria” de la correspondiente no linealidad y (.)* el conjugado. En la
ecuación (1), se han eliminado los términos redundantes asociados con la
simetría kernel, y también los kernels de orden par, cuyos efectos pueden ser
omitidos en sistemas limitados en banda.
En situaciones prácticas, truncaremos el modelo a un orden finito N. Más
concretamente, las funciones implementadas en nuestro proyecto llegan hasta
orden 7.
El modelo propuesto en (1) es la base fundamental para enfocar nuestra
programación; el modelo implementado que se obtiene partiendo de (1) es el
que denominamos como modelo completo sin restricción.
Para modelar un amplificador con no linealidades fuertes y efectos de memoria
de larga duración, este modelo todavía implica un gran número de coeficientes.
73
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
Lo que se persigue es una simplificación de esta estructura con la consiguiente
mejora en la velocidad de simulación. Un método para reducir coeficientes en el
modelo es forzar coeficientes individuales a cero y evaluar el cambio producido
en el error. Si éste se incrementa inaceptablemente, entonces el coeficiente es
restaurado, sino es eliminado.
Algunos autores proponen un enfoque de restricción de la manera |im-in| = 0
para 1≤m, n≤j, donde im,in representan la longitud de memoria de la señal de
entrada y j es la longitud de la memoria máxima.
Éste sería el modelo de Volterra reducido no trivial más simple, el llamado
modelo de Volterra diagonal, también llamado modelo polinomial. Aunque esta
restricción reduce el número de parámetros enormemente, también decrementa
la fidelidad o precisión del modelo. Los autores Zhu y Brazil propusieron una
relajación de esta condición de restricción de la forma |im-in|≤l, donde l es un
número entero pequeño. Nuestro modelo de comportamiento con restricción
implementado se basa en esta propuesta, que recibe el nombre de restricción
estructural de diagonalidad cercana. Esta condición produce un incremento de
la precisión del modelo respecto al caso diagonal, a la vez que un
correspondiente incremento en el número de coeficientes.
Esta restricción nos permite modelar un amplificador de potencia con no
linealidades fuertes y efectos de memoria de larga duración. El modelo general
de Volterra está limitado para modelar sistemas con no linealidades débiles o
moderadas, sólo llegando a quinto orden en la mayoría de los casos. Cuando el
orden del modelo es siete, el sistema no siempre converge debido al gran
número de coeficientes requerido. Sin embargo, si nosotros eliminamos muchos
coeficientes en cada orden con la restricción anterior, el número de coeficientes
total se reducirá de forma que nos permita modelar distorsiones de orden más
alto.
74
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
3.3 PROGRAMACIÓN EN SCILAB
A continuación vamos a describir el procedimiento seguido para programar las
funciones que conforman nuestro modelo de comportamiento.
En primer lugar, señalar que existen dos pasos para conseguir un modelo:
1) Estimar los parámetros del modelo.
Nuestro punto de partida serán las medidas obtenidas empíricamente
correspondientes a la excitación y respuesta del dispositivo que queremos
modelar. En nuestro caso, trabajaremos con medidas para una señal de entrada
correspondiente a una modulación 16-QAM con pulso raíz de coseno alzado
con una tasa de muestreo de 15 Mmuestras/s.
Mediante programación, ajustaremos el modelo propuesto en (1) de forma que
ỹmed=xmed*θ, siendo θ los parámetros del modelo que queremos estimar.
Realizando un ajuste por mínimos cuadrados mediante la función pseudoinversa,
obtendremos θ, teniendo así estimado nuestro modelo.
2) Emplear el modelo para predecir.
Una vez tenemos estimados los parámetros del modelo, construiremos una
función que nos permita, partiendo de la excitación, realizar una predicción
sobre la respuesta, consiguiendo así predecir las salidas correspondientes a las
distintas entradas.
Lo primero que haremos será la realización de un guión en Scilab llamado
Generamedidas, que se encargará de conseguir unas medidas aleatorias,
basándonos para ello en la estructura propuesta en (1).
En él, fijamos los retardos m1, m3 y m5 y los coeficientes de Volterra a un
valor determinado. Nuestro objetivo es, partiendo de un vector x aleatorio de
entrada, generar un vector de salida que cumpla la estructura propuesta en (1).
Este guión lo hacemos para comprobar posteriormente que la función de
estimación que implementemos realmente funcione correctamente para después
comenzar a realizar pruebas con las medidas reales obtenidas del dispositivo.
Pasamos a detallar la función que realiza la estimación del modelo completo sin
restricción que se presenta en (1).
Esta función, denominada VolterraEstima, tiene como parámetros de entrada
los vectores x, y correspondientes a la entrada y salida medidas y un vector
llamado retardos que contiene los valores de m1, m3, m5 y m7.
El único parámetro de salida será el vector theta, que contendrá los parámetros
estimados del modelo.
El procedimiento seguido es construir una matriz X que contenga todas las
combinaciones del vector de entrada x que se presentan en (1), dependiendo
75
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
claro está del valor de los retardos. Así, la estructura (1) quedará representada
de forma matricial de la manera y=X*θ.
Para ilustrarlo mejor, ponemos un ejemplo sencillo que contemple sólo hasta
orden 3, con valores de retardo m1 = m3 = 3. Si desarrollamos la ecuación (1)
obtenemos:
ỹ(0)= h1(0)·x(0) + h1(1)·x(-1) + h1(2)·x(-2) + h3(0,0,0)·x(0)·x(0)·x‫(٭‬0) +
h3(0,0,1)·x(0)·x(0)·x‫(٭‬-1) + h3(0,0,2)·x(0)·x(0)·x‫(٭‬-2) + h3(0,1,0)·x(0)·x(-1)·x‫(٭‬0)
+…
ỹ(1)= h1(0)·x(1) + h1(1)·x(0) + h1(2)·x(-1) + h3(0,0,0)·x(1)·x(1)·x‫(٭‬1) +
h3(0,0,1)·x(1)·x(1)·x‫(٭‬0) + h3(0,0,2)·x(1)·x(1)·x‫(٭‬-1) + h3(0,1,0)·x(1)·x(0)·x‫(٭‬1)
+…
.
.
.
Expresando estas ecuaciones en forma matricial:
Para construir la matriz X, necesitamos calcular el número de coeficientes de
orden 1, 3, 5 y 7 que se generan dependiendo del valor de los retardos m1, m3,
m5 y m7.
El número de coeficientes de orden 1 es trivial e igual al valor m1. Para los
demás, hemos realizado unas funciones llamadas numcolumnasorden3,
numcolumnasorden5 y numcolumnasorden7 que generan el número de
coeficientes asociado a cada orden de Volterra. Sólo disponen de un parámetro
de entrada que sería m3, m5 y m7 respectivamente y un único parámetro de
salida, el número de coeficientes.
La matriz X tendrá tantas columnas como la suma de los coeficientes de
Volterra de orden 1, 3, 5 y 7 para cada caso, y el número de filas será
N-mmax+1, donde N = tamaño(x) y mmax es el retardo máximo que existe.
76
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
Esto es así porque se manejan índices para la entrada x negativos, por ejemplo,
x(-1), x(-2)…, y para poder implementarlo en Scilab es necesario “desechar”
mmax muestras al comienzo del vector x.
Para cada orden, vamos anidando bucles for e introduciendo vectores columna
con su valor correspondiente hasta completar la matriz X.
Una vez tenemos representada la ecuación (1) como y=X*θ, los parámetros del
modelo (θ) se obtienen mediante un ajuste con mínimos cuadrados con la
función pseudoinversa, que minimiza el error. De esta manera:
theta=pinv(X)*y.
A continuación, vamos a describir la función que realiza la labor de predecir
respuestas una vez tenemos estimados los parámetros del modelo.
Esta función, denominada VolterraPredice, es similar a la anterior salvo que
ahora los parámetros de entrada serán el vector x de excitación, el vector
retardos y el vector theta. El vector y también se considera parámetro de entrada,
pero únicamente se usa para generar un vector al que denominamos ymed que
tenga en cuenta el hecho de “desechar” mmax muestras al comienzo del vector
para que coincidan las dimensiones de los vectores ymed e ypred, que serán los
dos parámetros de salida que presenta esta función.
El procedimiento para obtener la matriz X es aquí análogo al descrito
anteriormente, y una vez construida ésta, se obtiene el vector predicho mediante
la orden: ypred=X*theta.
De las dos funciones comentadas, VolterraEstima y VolterraPredice, la que
consume más recursos computacionales es la función de estimación. Esto es
debido al uso de la función pinv, además del gran número de coeficientes que
implica un valor alto de los retardos. La función pinv trabaja calculando los
autovectores y autovalores de la matriz X, y ésta tiene unas dimensiones muy
grandes, de ahí que la estimación sea más lenta que la predicción.
Relacionado con lo comentado anteriormente, puede que aparezcan también
durante la ejecución de la función VolterraEstima problemas de memoria, que
el programa Scilab refleja con el mensaje:
“stack size exceeded!” (Use stacksize function to increase it).
Scilab dispone de una función, stacksize, que permite aumentar el tamaño de
memoria disponible. Podemos aumentar mucho el tamaño de la memoria
disponible con una orden del tipo “stacksize(90000000)”, y así el programa nos
dejará hacer pruebas con tamaños grandes de las variables.
Por otro lado, el parámetro de referencia que usaremos para ir midiendo el
grado de exactitud alcanzado en cada modelo implementado va a ser el NMSE
(Normalized Mean Square Error) expresado en dB, que es como se presentan
los resultados en los artículos disponibles sobre modelos de comportamiento.
77
Capítulo 3. Modelado de comportamiento del amplificador de potencia de radiofrecuencia
El objetivo es obtener modelos óptimos para las potencias de entrada de interés,
de forma que un modelo será mejor cuánto más bajo sea el valor de este error.
Para ello, hemos implementado una función llamada CalculoError, cuyos
parámetros de entrada serán los vectores correspondientes a las respuestas
medida y predicha, y el parámetro de salida el valor del error NMSE en dB.
Para conseguir modelos con el enfoque de restricción estructural, también se
han programado las funciones de estimación y predicción oportunas, que
llamaremos VolterraRestriccionEstima y VolterraRestriccionPredice.
En la primera de ellas, los parámetros de entrada serán los mismos que en la
función VolterraEstima, con la inclusión del parámetro l. El parámetro de salida
sigue siendo el vector theta que contendrá los parámetros del modelo.
En la segunda, los parámetros de entrada son idénticos a los de la función
VolterraPredice con la nueva inclusión del parámetro l, y los parámetros de
salida son los mismos.
El procedimiento seguido para realizar ambas funciones es el siguiente:
1) Generar las combinaciones de índices.
Para ello, hacemos uso de unas funciones auxiliares llamadas
numcolumnasorden3restriccionl,
numcolumnasorden5restriccionl,
numcolumnasorden7restriccionl, que reciben como parámetros de entrada el
valor del retardo correspondiente y l. El valor de salida será el número de
coeficientes que se generan para cada orden.
2) Comprobar que se cumple la restricción |im-in|≤l.
Sólo con los coeficientes que cumplan la restricción anterior, creamos las
combinaciones del vector de entrada para construir la matriz X. El resto de
coeficientes los igualo a cero.
Esto lo conseguimos mediante la inclusión de condiciones if en la anidación de
bucles for que se realiza para los distintos órdenes.
3) Para estimar, usamos la función pinv para obtener los parámetros del modelo,
theta=pinv(X)*y. Para predecir, obtenemos la respuesta predicha de la forma:
ypred=X*theta.
Para reducir la complejidad a la hora de extraer el modelo en cuestión, podemos
optar por elegir un valor diferente para l en los distintos órdenes de Volterra,
por ejemplo, un valor l más pequeño para órdenes más altos.
Cómo seleccionar l depende de las características prácticas de los
amplificadores y de la exactitud requerida para el modelo, por lo que hemos
implementado unas funciones que modifican el código de las anteriores en lo
necesario para incluir la posibilidad de escoger el valor de l para cada orden.
Estas funciones se llaman VREvariosl y VRPvariosl.
78
Descargar