Capítulo 5: Diseño de un Predistorsionador basado en Series de

Anuncio
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Capítulo 5: Diseño de un Predistorsionador basado en
Series de Volterra. Análisis por simulación
5.1 Introducción
Como propusimos en la introducción de este trabajo y se ha repetido en varias
ocasiones a lo largo de los Capítulos anteriores, el objetivo principal de este Proyecto
Fin de Carrera sería implementar un predistorsionador para, posteriormente, mediante
simulación en MatLab, comprobar la bondad del mismo. Hasta ahora, sin embargo, los
Capítulos 2, 3 y 4 se han limitado a exponer una serie de conceptos previos necesarios
para asimilar de una forma correcta la idea original del predistorsionador que se
propondrá y su funcionamiento, tratando de exponer conceptos tan importantes como
los fundamentos de la modulación OFDM, el canal no lineal con memoria y algo, más o
menos amplio, sobre la linealización y, en particular, los métodos actuales de
predistorsión. Será en este apartado donde haremos uso de todo lo expuesto hasta ahora
para presentar un Diseño de Predistorsionador basado en Series de Volterra para
sistemas OFDM. Pasemos a verlo.
En este Capítulo, proponemos una solución general para compensar el efecto de
la no linealidad de un amplificador de potencia (HPA) con efectos de memoria en
sistemas OFDM en el lado del transmisor. Usaremos el Error Cuadrático Medio (MSE)
para obtener los coeficientes del predistorsionador, el cual es modelado con una serie de
Volterra simplificada y finita. Se usará una estructura en bucle cerrado general para
minimizar el coste computacional. Las señales entrada y salida del sistema no lineal con
memoria se supondrán accesibles, y una solución de mínimos cuadrados será la que nos
permita calcular el kernel de la serie de Volterra que representa al predistorsionador.
Una vez que el kernel se ha obtenido, cuando las señales pasen por el sistema en
cascada del predistorsionador y el HPA, tendremos un resultado con características
lineales. La ventaja de este método es que no se asume ningún tipo en particular de
modelo para el HPA.
58
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Para demostrar la bondad del sistema propuesto, se realizará posteriormente
simulación mediante MatLab. En particular, la mejora en la reducción del recrecimiento
espectral y la mejora en la BER se comprobará para un HPA modelado según Saleh.
5.2 Diseño de un Predistorsionador basado en serie de Volterra
simplificada
El HPA de la mayoría de los sistemas de comunicaciones son inherentemente no
lineales. Es bien conocido que hay una relación de proporcionalidad inversa entre la
eficiencia de potencia de un HPA y su linealidad. Así, desde el punto de vista de la
eficiencia, es necesario que los HPAs sean no lineales. Esta no linealidad causa
problemas, especialmente en aplicaciones de gran ancho de banda que usan sistemas
con señales que no mantienen constante la envolvente, como DAB, OFDM y WCDMA. Los efectos de no linealidades normalmente ocurren en la zona de frecuencia
intermedia (FI) y de radio frecuencia (RF) en los sistemas de comunicación. Sin
embargo, en nuestro caso, el esquema del predistorsionador se basará en la
representación en banda base. De este modo, las imperfecciones del HPA se tratarán
desde el punto de vista de una representación en banda base equivalente. Esto es una
suposición extendida en la materia, debido a las limitaciones relacionadas con la
velocidad del convertidor A/D y los requisitos del procesamiento en tiempo real.
Como ya comentamos, en este proyecto se empleará una serie de Volterra finita
para considerar la función del predistorsionador, debido a su aplicabilidad general. En el
dominio de tiempo discreto, una serie de Volterra de tercer orden para un sistema
causal y de memoria finita puede ser escrito como sigue:
N −1
N −1 N −1
N −1 N −1 N −1
y(n) = ∑ hk x(n − k ) + ∑∑ hk ,l x(n − k ) x * (n − l ) + ∑∑ ∑ hk ,l , m x(n − k ) x(n − l ) x * (n − m)
k =0
(1)
( 2)
k =0 l =0
( 3)
k =0 l =0 m =0
[5.1]
donde N es la longitud de memoria del sistema discreto; x(n) e y (n) son la entrada y la
(1)
( 2)
salida, respectivamente; y hk , hk ,l , hk ,l , m
( 3)
son los kernels de la serie de Volterra en
tiempo discreto de orden 1, 2 y 3, respectivamente; y * denota el complejo conjugado.
Es bien sabido que la componente par de la intermodulación no interfiere con la banda
de señal para un canal no lineal pasobanda y los coeficientes de la serie de Volterra
pueden suponerse simétricos sin pérdida de generalidad. Entonces, sólo la parte impar
de la serie de Volterra será considerada.
Al igual que un sistema LTI se caracteriza completamente a partir de su
respuesta al impulso, un sistema de Volterra se considera caracterizado a partir del
conocimiento de su kernel. La desventaja de los sistemas que emplean series de Volterra
es su complejidad computacional y el gran número de parámetros que hay que calcular,
muchos de ellos innecesarios. El objetivo de la parte computacional es la generación de
los coeficientes relacionados con la no linealidad, es decir, los términos cruzados, lo que
restringe la aplicabilidad de este método en el mundo real.
Para poder combatir la gran complejidad computacional del predistorsionador,
se ha adoptado un modelo de Volterra simplificado, basado en la estructura de
59
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Hammerstein, el cual es una cascada de una no linealidad sin memoria, modelada como
K
v(n) = ∑ b j x j (n) y un filtro FIR para modelar la memoria, con función de transferencia
j =1
Q −1
H ( z ) = ∑ ai z −i . La relación entrada-salida para un predistorsionador con esta
i =0
arquitectura se describe usando dos representaciones equivalentes:
Q −1
d ( n) = ∑ a i
i =0
K
∑
j =1, oddpart
b j x * (n − i ) x(n − i )
j −1
=
Q −1
K
∑ ∑h
j =1,oddpart i = 0
j ,i
j −1
x * (n − i) x(n − i)
[5.2]
donde el lado derecho se refiere como el modelo de Volterra simplificado. En [5.2], Q
es la memoria discreta del sistema, K es el orden de la no linealidad y * denota el
complejo conjugado. El lado de la izquierda de [5.2] hace referencia a considerar un
“precompensador” basándose en la estructura de Hammerstein, donde a i y b j denotan
los coeficientes del polinomio no lineal (que representan al HPA) y del filtro (que
modela los efectos de memoria), respectivamente.
Sin embargo, en este proyecto consideraremos la no linealidad y el efecto de
memoria de forma conjunta, según:
B
B
B
B
h j ,i = ai ⋅ b j
[5.3]
En esencia, el método propuesto explota la equivalencia del lado derecho de la
representación [5.2], el modelo simplificado de Volterra, el cual describe la estructura
de Hammerstein como caso especial. Al ser una representación más general de sistemas
no lineales, es aplicable a un rango mayor de modelos que capturan la inversa de un
HPA. Sin embargo, esto se consigue a expensas de tener que identificar un número
mayor de coeficientes.
La ecuación [5.2] se puede escribir en forma matricial como:
d ( n) = H ⋅ X T ( n)
[5.4]
donde d (n ) es la señal del predistorsionador, H es el kernel de la serie de Volterra que
configura al predistorsionador, y X (n) es el vector de entrada. Los términos H y
X (n) se definen como:
[
H = h0,1 , h1,1,..., hQ −1,1 , h0, K , h1, K , h2, K ,..., hQ −1, K
[
]
[5.5]
X ( n) = x(n), x(n − 1),..., x(n − Q + 1), x(n) x * (n),..., x (n − Q + 1 x * ( n − Q + 1)
2
2
]
[5.6]
Debido a la simetría, el número total de coeficientes en el modelo simplificado
de Volterra puede representarse como:
⎛ K
⎞
Lsmvtcoeff = ⎜ ⎣ ⎦ + 1⎟ × Q
⎝ 2
⎠
[5.7]
60
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Es difícil determinar qué modelo de HPA es el más apropiado, ya que eso
depende de factores como el tipo de HPA y el formato del flujo de datos que se quiere
transmitir. Es más, el HPA más eficiente puede no ser el más apropiado para realizar
una predistorsión. Así pues, es de esperar que el predistorsionador basado en Volterra
considerado ofrezca una solución general para compensar la no linealidad de cualquier
HPA con efecto de memoria.
Para identificar al predistorsionador, una estructura realimentada en bucle
cerrado general como la de la Figura 5.1 será la utilizada:
Figura 5.1: Esquema general de la arquitectura en bucle cerrado usado en la implementación del
algoritmo propuesto.
En este arquitectura, x(n) e y (n) representan las señales de entrada y de salida,
respectivamente, de la cascada formada por el predistorsionador y el HPA. El sistema
del lazo de realimentación, Predistorter Training B, tiene como entrada v (n) y como
salida d (n ) . El predistorsionador real, Predistorter A, tiene x(n) como entrada y d (n )
como salida. Predistorter A y Predistorter Training Part B tienen la misma estructura.
Idealmente, la salida del sistema debería ser:
y ( n) = x ( n)
[5.8]
cuando d (n ) se hace igual a dˆ ( n ) , y se consigue que el error e(n) = d (n ) - dˆ ( n ) =0. La
entrada y la salida del HPA son accesibles para encontrar Predistorter A usando
Predistorter Training Part B. El objetivo es encontrar un comportamiento lineal entre la
cascada formada por Predistorter A y HPA, encontrando con Predistorter Training Part
B la función de transferencia inversa del HPA con memoria y no lineal.
La entrada y salida de Predistorter A están relacionadas según [5.2]. Por
conveniencia a la hora de implementar el algoritmo, [5.2] la escribiremos en forma
matricial como:
d = X ⋅H
[5.9]
donde d es la salida de Predistorter A, H es el kernel de Volterra de Predistorter A y
X es el vector de entradas; d , H y X se definen como:
d = [d (0),..., d ( N − 1)]
T
[5.10]
61
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
[
H = h1 , 0 ,..., h1 , Q − 1 ,..., h K , 0 ,..., h K , Q − 1
]
T
[
X = X 1,0 ,..., X K ,0 ,..., X j ,i ,..., X 1,Q −1,..., X K ,Q −1
donde
[
[5.11]
]
]
X j ,i = x j ,i (0),..., x j ,i ( N − 1) ; el tamaño de
T
[5.12]
d,
H
y
X
es
N ×1 ,
⎛ ⎛ ⎣K ⎦ ⎞
⎞
⎛⎛ K
⎞
⎞
⎜⎜ ⎜
+ 1⎟ × Q ⎟⎟ × 1 y N × ⎜⎜ ⎜ ⎣ ⎦ + 1⎟ × Q ⎟⎟ × 1 , respectivamente.
⎠
⎠
⎝⎝ 2
⎠
⎝⎝ 2
⎠
Como Predistorter A y Predistorter Training Part B tienen la misma estructura,
la relación entre la entrada y la salida de Pradistorter Training Part B es:
Q −1
dˆ (n) = ∑ ci
i =0
K
∑
j =1, oddpart
d j v * (n − i ) v(n − i )
j −1
K
=
Q −1
∑ ∑h
j =1.oddpart i = 0
j ,i
v * (n − i ) v(n − i )
j −1
[5.13]
que se puede poner en forma matricial como:
dˆ = V ⋅ H
[5.14]
donde d̂ es la salida de Predistorter Training Part B, H es el kernel de Volterra de
Predistorter Training Part B, y V es el vector de entradas; d̂ , H y V se definen
como:
[
]
T
dˆ = dˆ (0),..., dˆ ( N − 1)
[5.15]
[
H = h1 , 0 ,..., h1 , Q −1 ,..., h K , 0 ,..., h K ,Q −1
[
V = V1,0 ,...,VK , 0 ,...,V j ,i ,...,V1,Q −1,...,VK ,Q −1
donde
[
]
T
[5.16]
]
]
V j ,i = v j ,i (0),..., v j ,i ( N − 1) ; el tamaño de
T
[5.17]
d̂ ,
H
y
V
es
N ×1 ,
⎛ ⎛ ⎣K ⎦ ⎞
⎞
⎛⎛ K
⎞
⎞
⎜⎜ ⎜
+ 1⎟ × Q ⎟⎟ × 1 y N × ⎜⎜ ⎜ ⎣ ⎦ + 1⎟ × Q ⎟⎟ × 1 , respectivamente. Las entradas de V se
⎠
⎠
⎝⎝ 2
⎠
⎝⎝ 2
⎠
calculan como:
v j , i ( n) = y * ( n − i ) y ( n − i )
j −1
[5.18]
Asumiendo que el sistema se linealiza, i.e. d = dˆ , [5.9] se puede escribir como:
d =V ⋅H
[5.19]
La solución de mínimos cuadrados para [5.19] sería:
62
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
H = (V HV ) −1V H d
[5.20]
donde el superíndice H denota el conjugado. Una vez que H se obtiene usando [5.20]
en la fase del Predistorter Training Part B, ya tenemos Predistorter A. En el modo de
operación, cuando la señales pasen a través de las cascada predistorsionador-HPA con
memoria, el sistema completo consigue una característica lineal sin efectos de memoria.
P
P
5.3 Implementación en MatLab
Con el fin de evaluar el comportamiento del predistorsionador descrito, vamos a
tratar de simular el comportamiento del algoritmo y de la estructura de lazo cerrado
descritos previamente mediante el paquete matemático MatLab 6.5.
En este apartado listaremos las funciones creadas, junto con sus aspectos
relacionales y trataremos de comentar qué parte del algoritmo realiza cada una de las
funciones. Para ver el listado de las funciones, nos remitiremos al Anexo I, en donde
está el código de cada archivo de MatLab, correctamente comentado.
Nombre : gen_datos_ensayo
Es una función encargada de generar la señal de salida de un modulador 16QAM
seguido de una modulación OFDM de 1024 portadoras. A continuación, se le aplica un
upsamplig de 8 y se pasa la señal por un filtro raíz de coseno alzado. Necesita como
parámetro de entada el número de símbolos OFDM que queremos generar. Como
salida, ofrece la señal tras el filtro raíz de coseno alzado y la cadena de símbolos
16QAM generada.
U
U
Nombre : qam16
Función que genera una cadena de símbolos 16QAM a partir de una cadena de bits.
U
U
Nombre : create_v_k_l
Función que se encarga de implementar la Eq. [5.18].
U
U
Nombre : create_V_k_l_N
Función que implementa cada uno de los elementos del vector expuesto en Eq. [5.17].
U
U
Nombre : create_V
Función que implementa la Eq. [5.17].
U
U
Nombre : HPA
Función que simula el comportamiento de un HPA sin memoria acorde al modelo de
Saleh. Se supondrá siempre que se usa un control automático de ganancia (CAG) para
que la señal mantenga su potencia constante en todo su trayecto. Se deja como
comentario las instrucciones necesarias para obtener la gráfica que relaciona la amplitud
de entrada con la de salida, para comprobar el grado de no linealidad con el que se esta
trabajando.
U
U
Nombre : canal_memoria
Función que simula memoria de un dispositivo con memoria.
U
U
63
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Nombre : predistorter
Función que genera el kernel de la serie de Volterra, núcleo del predistorsionador
propuesto, según la Eq. [5.20].
U
U
Nombre : kernel_simb_obtención
Es el script principal de la parte del algoritmo encargada de caracterizar la parte de
entrenamiento y obtención de los coeficientes del kernel de Volterra.
El procedimiento de obtención de los coeficientes del kernel de Volterra consistirá en
hacer pasar sucesivamente una trama de cierto número de símbolos OFDM a través del
sistema no lineal. A continuación, se procede a hallar el kernel de Volterra para esa
trama, según [5.20]. Este proceso se repetiría un número de veces que se estime
adecuado, con el fin de obtener un kernel final, resultado del promediado de cada kernel
obtenido en cada una de las iteraciones. Una vez obtenido el kernel final, se pasaría a la
fase de análisis de funcionamiento del predistorsionador para una señal aleatoria de un
tamaño suficientemente grande, como para calcular la BER o poder observar los efectos
de recrecimiento espectral.
Se pueden seleccionar parámetros como el número de símbolos OFDM por iteración
que se quiera realizar, o el propio número de iteraciones que se quieran realizar para
conseguir un promedio de los coeficientes de una manera más eficiente.
U
U
Nombre : canal_gaussiano
Función que simula un canal de ruido blanco, aditivo y gaussiano.
U
U
Nombre : serializa
Función auxiliar que transforma una matriz en un vector.
U
U
Nombre : decisor_QAM16
Función que simula un decisor 16QAM.
U
U
Nombre : plataforma_simulacion16QAM_1024OFDM
Se trata del archivo principal de pruebas del algoritmo predistorsionador. Con este
archivo podremos hallar la BER, observar el recrecimiento espectral, observar las
señales de entrada/salida a/de la no linealidad,... Se requiere que se haya calculado un
kernel con el archivo kernel_simb_obtención, y se haya guardado previamente. Este
kernel se cargará al ejecutarse plataforma_simulacion16QAM_1024OFDM. También
debemos seleccionar el número de símbolos OFDM que queremos usar en la simulación
y, en su caso, debemos introducir el vector con las relaciones Eb/No con las que
queremos calcular la BER. Tiene muchas opciones de gráficas que están, en algunos
casos, comentadas. Si se está interesado en alguna gráfica en concreto, habrá que quitar
los comentarios antes de ejecutar.
U
U
Como se puede comprobar, no existe un entorno gráfico para realizar las
simulaciones, sino que se ha preferido dejar los archivos principales abiertos, para que
sus parámetros puedan ser cambiados directamente en el código. De esta forma, si bien
el entorno de usuario puede parecer a priori más fácil de utilizar, se pretende tener
mayor control sobre los parámetros elegidos y resultantes en cada simulación y, sobre
todo, tener mayor conciencia de los resultados que se van a obtener en cada simulación.
64
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
5.4 Resultados de Simulación y Análisis
En esta sección, usaremos las funciones de MatLab descritas anteriormente para
comprobar el funcionamiento del algoritmo propuesto teóricamente. Usaremos el
modelo de Wiener para representar a un HPA no lineal con efectos de memoria ( i.e,
cascada de sistema no lineal con filtro FIR). El correspondiente predistorsionador se
describe como el kernel de Volterra equivalente de un modelo de Hammerstein.
Emplearemos una modulación 16-QAM, que será alimentada por una cadena de 0s y 1s
aleatoria. En la práctica, la señales en banda base de OFDM se generan usando la
transformada inversa de Fourier en tiempo discreto (IDFT). En nuestra simulación,
emplearemos un modulación de 1024 subportadoras que, aunque no corresponda a
ningún caso concreto de las normas citadas en al Capítulo 2, sirve como caso general
para todas ellas. Así, en la implementación del algoritmo, emplearemos IFFT/FFT de
1024 puntos. Para limitar la banda de frecuencia empleada por el transmisor y eliminar
la ISI, realizaremos un sobremuestreo de 8 y pasaremos la señal en tiempo por un filtro
coseno alzado de roll-off igual a 0.5. Se asume un canal con ruido aditivo, blanco y
gaussiano (AWGN). La parte no lineal sin memoria del HPA elegida para esta
simulación es el modelo de Saleh para un tubo de onda viajera (TWT). En este punto
cabe decir que aunque los efectos de no linealidades comentados en el Capítulo 3 de
este proyecto hacían referencia en su mayor parte a no linealidades y efectos de
memoria de amplificadores a semiconductor, los resultados proporcionados por el
modelo de Saleh para TWT son igualmente válidos para comprobar el funcionamiento
de nuestro predistorsionador, pues las curvas de comportamiento que propone Saleh se
dan de una manera bastante fidedigna en cualquier tipo de amplificador de potencia.
Sólo cabría decir que, para el caso de amplificadores a semiconductor, la distorsión
AM/PM es poco significante. Las funciones A(.) y φ(.) en el modelo de Saleh de
amplitud-fase son:
α a r (t )
1 + β a r 2 (t )
αφ r 2 (t )
φ [r (t )] =
1 + βφ r 2 (t )
A[r (t )] =
[5.21]
[5.22]
donde α a , β a , αφ y βφ son constantes y r(t) es la señal de entrada normalizada. Valores
típicos para estas constantes son α a =2.0, β a =1.0, αφ =π/3 y βφ =1.0. El sistema LTI que
realiza los efectos de memoria se implementa con un FIR con coeficientes [0.7692,
0.1538, 0.0769].
5.4.1 Resultados en cuanto a degradación de la constelación (warping)
Es bien conocido que la distorsión AM/AM y AM/PM están relacionadas con la
generación de un energía no querida tanto en la banda de trabajo como fuera de ella. La
energía en la banda de trabajo causa distorsión de la señal transmitida y degrada la BER
del sistema. Examinar el patrón de dispersión de la señal recibida es una buena forma de
estimar la degradación sufrida debido al fenómeno de warping. Las figuras siguientes,
Figura 5.2 y Figura 5.3, muestran los resultados de warping de la constelación para una
modulación 16-QAM y una OFDM de 1024 subportadoras sin y con predistorsión, para
un IBO=8 dB. El kernel de Volterra se obtuvo mediante el promediado de 50
65
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
iteraciones, usando una trama de un símbolo OFDM, con K=3 (orden la no linealidad) y
Q=3 (longitud de la memoria de la no linealidad). Éste será el kernel que usaremos,
siempre que no se diga lo contrario.
Figure 5.2: Distorsión de la modulación 16QAM_1024OFDM a su paso por un canal no lineal con
memoria. Apreciamos la dispersión de los puntos recibidos y el rotado.
Figure 5.3: Constelación recibida tras el paso de la señal predistorsionada por una canal no lineal con
memoria. Observamos la mejora apreciable con respecto a la gráfica anterior. Sin embargo, se puede
observar una leve rotación, de signo contrario a la anterior. Los problemas de escalado son prácticamente
solventados por el CAG.
La dispersión de los puntos de la constelación es el resultado de la interferencia
en la banda de trabajo. Observamos que el resultado obtenido es bastante similar al que
produce un canal AWGN, incluso cuando este último no está presente en este caso.
Cuando el predistorsionador no actúa, la interferencia es tan grande que los puntos de la
constelación, en cuanto a dispersión, están muy afectados. De la Figura 5.3, podemos
ver que la distorsión AM/AM se elimina de una manera bastante eficiente usando el
esquema de algoritmo propuesto. El muy leve rotado y el escalado (a pesar de usar CAG
en la simulación) sacan a la luz el hecho de que el esquema propuesto tiene una
pequeña ambigüedad a la hora de multiplicar para identificar los coeficientes complejos
66
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
del kernel de Volterra. Sin embargo, este problema se soluciona fácilmente con un
control automático de ganancia mejorado y con algoritmos para recuperar la fase.
5.4.2 Resultados en cuanto a BER
La probabilidad de error de bit, o BER, es una métrica ampliamente usada para
confirmar la bondad de un sistema de transmisión digital. Los diagramas en donde se
muestra la BER de los sistemas es una herramienta que se suele usar también para
comprobar y cuantificar un predistorsionador. En esta sección, evaluaremos mediante
simulación la BER de nuestro sistema OFDM de 1024 subportadoras sobre 16-QAM. El
canal inalámbrico lo supondremos AWGN. Para poder comprobar si nuestro algoritmo
funciona y en qué medida, realizaremos medidas de BER suponiendo HPA lineal y no
lineal, predistorsionador actuando y no actuando, para distintos valores de IBO.
La siguientes figuras, Figura 5.4 y Figura 5.5, muestran las curvas de la BER en
función de la relación señal a ruido (SNR) Eb/No, para un IBO=8 dB y IBO=5 dB,
respectivamente.
Figura 5.4: Diagrama de BER frente a Eb/No. Podemos observar la mejora que aporta el uso del
predistorsionador para el canal no lineal con memoria con respecto a la BER del sistema, para IBO=8,
K=3, Q=3.
67
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Figura 5.5: Diagrama de BER frente a Eb/No, ahora para el caso IBO=5. Vemos cómo la mejora no es
tan notable como para puntos de trabajo más lineales (caso anterior de IBO=8). Esto es una prueba de lo
sensible que es la modulación OFDM a bajos IBO, debido a su alto PAPR.
En cada figura, la curvas nombradas como “sin pred”, “con pred” y “lineal”
representan los resultados de BER para un HPA no lineal, un HPA no lineal con
predistorsión y un HPA ideal, respectivamente. El número de puntos de entrenamiento
determinan el tamaño de la matriz V usada para calcular el kernel de Volterra H en
[5.20]. En las simulaciones realizadas, para determinar los coeficientes del
predistorsionador, se empleó la media de 50 ejecuciones del algoritmo, usando distintas
tramas OFDM de un único símbolo OFDM, para mejorar la precisión a la hora de
identificar. También se probó usar más símbolos en cada trama de identificación, pero
el incremento de tiempo en el cómputo de los coeficientes no se veía respaldado por un
incremento de precisión y, por tanto, no se conseguían resultados de BER mejores.
A partir de la figuras de esta sección, se puede ver que se consigue una mejora
significativa en sistemas predistorsionados con respecto a los no predistorsionados. Se
puede ver que para SNR de 10dB, el sistema compensado alcanza los 3e-2 y 6e-3 para
IBOs de 5 dB y 8dB, respectivamente. También se puede ver que se consiguen mejores
resultados para mayores IBO, lo cual es intuitivo, ya que IBOs mayores corresponden a
puntos de operación más lineales. Quizá en este punto sería conveniente añadir que,
mientras que para IBO=8 dB la mejora es muy significativa, con tan sólo 3dB menos de
IBO, los resultados son significativamente más pobres. Esto está relacionado con lo ya
comentado acerca del alto PAPR de los sistemas OFDM. Para ver la influencia en la
BER a medida que cambia el IBO, se realizaron simulaciones para unas ciertas
características pero modificando el valor del IBO en cada una de las ejecuciones. Los
resultados los vemos a continuación, Figura 5.6.
68
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Figura 5.6: BER para IBOs 12, 11, 10, 9, 8, 7, 6, 5 dB. Vemos cómo a partir de IBO=9 dB, la
mejora no es tan buena.
Como vemos, hasta IBO=9 dB, los resultados se ajustan bastante bien a los
resultados obtenidos con canal lineal. Sin embargo, el empobrecimiento de la mejora
comienza al pasar de IBO=8 dB, notándose la reducción de la eficacia decibelio a
decibelio. Como ya hemos comentado, esto es debido al alto PARP de la modulación
OFDM, que hace que, para IBOs bajos, la señal se meta en zonas de mucha no
linealidad del amplificador, de modo que los resultados de salida son demasiado
distintos a la señal de entrada. Esto tiene dos consecuencia enlazadas. Por una parte, a la
hora de identificar los coeficientes en la etapa de estimación del kernel, aunque éstos
atienden a un patrón que converge y, por tanto, se puede estimar un kernel mediante
promediado. Estos coeficientes estimados no son lo suficientemente buenos como para
realizar una buena preditorsión, ya que en el proceso de ajuste por mínimos cuadrados,
las muestras de salida están muy dañadas con respecto a las de entrada, por lo que el
algoritmo intenta ofrecer siempre sus mejores resultados, sin llegar a obtenerse
resultados de predistorsión adecuados, ver Figura 5.7.
69
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Figura 5.7: Las figura representan el módulo y la fase de los coeficientes del kernel, H, para cada una de
las iteraciones en la fase de entrenamiento. Como podemos ver, se produce una cierta convergencia, tanto
en módulo como en fase. Es decir, se puede pensar en utilizar el promedio para definir el kernel final.
La segunda consecuencia, derivada de la primera, será que, al aplicar el kernel
obtenido a la señal, los resultados en cuanto a mejoras no serán tan buenos como para
IBOs mayores, ya que los coeficientes calculados no podrán combatir la no linealidad
del amplificador de potencia.
Figura 5.8 (a)
70
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Figura 5.8 (b)
Figura 5.8, (a) y (b): Mostramos la señal a la entrada del sistema, la señal predistorsionada antes de
entrar en el HPA y la señal de salida. La gráfica que muestra la relación entrada/salida normalizada se
puede ver en la Figura 5.9. Como vemos, la señal de salida, incluso con predistorsión, no es capaz de
“seguir” a la señal de entrada. Es decir, los efectos de no linealidad (en este caso no se tiene en cuenta la
memoria) impiden que la señal de salida se “adapte” bien, sobre todo, a los picos de la señal de entrada, a
pesar de la fuerte predistorsión sufrida por la señal de entrada. Esto es debido a que, al contrario de lo que
hace el algoritmo, cuando se trabaja con IBOs pequeños, un aumento desmesurado en la amplitud de la
señal de entrada (se produce un efecto similar a aumentar el PAPR, que ya hemos dicho repetidas veces
que es muy perjudicial) no repercute en un aumento en la amplitud de la señal de salida. Es por eso por lo
que por mucho que la amplitud de entrada crezca, ya no vamos a conseguir un ajuste en los picos a la
salida, pues a partir de cierto punto, la característica en amplitud del HPA empieza a ser decreciente,
como se puede ver en la Figura 5.9. En cuanto a la fase, también vemos que la correspondencia entre la
señal original y la de salida predistorsionada no es muy buena tampoco. Esta figura también nos puede
servir para reafirmar lo dicho en cuanto a PAPR. Vemos los picos potencia, relacionados con el módulo,
que tiene la señal con respecto a su valor medio.
71
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Figura 5.9: Vemos la relación entrada-salida del HPA utilizado, para IBO=5 dB y IBO=8 dB. Con
respecto a la fase, vemos que siempre se añade un cierto desfase entre la entrada y salida. Con respecto a
la relación amplitud de entrada / amplitud de salida vemos que, llegados al punto de saturación , i.e. 1 al
estar normalizado, la curva comienza a decrecer. Además, podemos comprobar que a menor IBO, la
curva presenta un comportamiento menos lineal en su zona creciente, y se va “adentrando” más en su
zona decreciente. De esta forma, para IBOs pequeños, la deformación de la señal es muy notable, sobre
todo si la señal tiene un rango dinámico más o menos amplio (alto PAPR), pues las “intrusiones” en la
zona decreciente serán muy frecuentes.
Para identificar los parámetros del predistorsionador, el número de puntos de
datos se debe ajustar para conseguir suficiente identificación y velocidad de
convergencia. En el caso de las simulaciones expuestas en esta sección, el número de
puntos de datos fue de 50 símbolos OFDM, lo equivalente a 51.200 símbolos QAM.
Como dijimos, se realizaron 50 iteraciones con una trama de un símbolo OFDM.
También se probó con tramas mayores, de 2 y 5 símbolos, pero los resultados a la hora
del análisis fueron tan similares que el mayor tiempo empleado en la parte de
identificación y el consiguiente incremento en el coste computacional no se justificaban
en absoluto. Así mismo, también se probó con menos iteraciones (10, 5 y 3) y una trama
de un símbolo, obteniéndose resultados muy aceptables, en comparación con los
obtenidos a partir del kernel de 50 iteraciones. De hecho, expondremos la BER
conseguida con IBO=8 dB para kernel de 50 iteraciones y para kernel de 3 iteraciones,
Figura 5.10, en donde veremos que la similitud es muy aceptable, más aún teniendo en
cuenta la reducción en el tiempo de identificación y la reducción del coste
computacional. Para HPAs y canales de características que cambien muy rápidamente,
50 iteraciones puede ser demasiado para identificación (si bien es suficiente para el caso
de transmisores estables y canales poco cambiantes, como el caso de DVB) aunque los
resultados de 3 iteraciones abren un abanico de aplicación mucho mayor.
72
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Figura 5.10: BER para kernel conseguido mediante 3 y 50 iteraciones, IBO=8 dB, K=3, Q=3. Podemos
ver que los resultados son muy similares, por lo que el uso del kernel de 3 iteraciones abre el campo de
aplicación de este predistorsionador.
5.4.3 Resultados en cuanto a Análisis Espectral
Un diagrama de representación espectral es una herramienta útil para revelar el
recrecimiento espectral causado por la distorsión no lineal en los sistemas de
comunicaciones. Proporciona una buena forma de examinar el nivel de interferencia de
canal adyacente (ACI) y la caída espectral de las comunicaciones vecinas, causado por
la distorsión de la señal transmitida. En esta simulación, se ha usado un periodograma
para estimar la Densidad Espectral de Potencia (PSD), lo que nos permite comparar los
espectros para sistemas ideal y no lineal con memoria, con y sin predistorsión.
Las características del sistema son las mismas que las de la sección anterior.
Usaremos el kernel de 50 iteraciones aunque, como también se ha comprobado, los
resultados para el kernel de 3 iteraciones son muy similares.
Se puede ver que hay una mejora en el recrecimiento de 4 dB para IBO=5 dB y
de 7 dB para IBO=8 dB. Esto significa que si la potencia del HPA no lineal se tiene que
limitar por un ACI excesiva, el predistorsionador propuesto permitiría incrementar la
potencia sin tener que rediseñar por completo la parte analógica de sistema. Este es un
resultado clave de este algoritmo, pues el resultado es aplicable, por ejemplo, a los
sistemas DVB, donde la reducción de la ACI es crucial.
73
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
Figura 11, (a) y (b): Para el caso de IBO=5 dB la mejora es de sólo unos 4 dB, mientras que para IBO=8
dB, la mejora es ya de unos 7 dB. Como es de esperar, a mayor IBO, i.e más linealidad, se consiguen
mejores resultados.
74
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
5.5 Conclusiones
Como hemos podido comprobar, la implementación del algoritmo propuesto ha
resultado tener puntos muy provechosos para la mejora del sistema OFDM propuesto.
Se ha visto la mejora en la BER y en el recrecimiento espectral. Con respecto a este
último, hay que resaltar la importancia que puede tener la aplicación de este algoritmo
en sistemas en donde la canalización sea muy exigente, como la ya mencionada DVB.
Al mismo tiempo, se han comentado algunas de las limitaciones que presenta,
como la falta de eficacia para IBOs demasiado bajos, en donde el canal no lineal
muestra una distorsión de la amplitud de la señal de entrada muy grande. Además, el
siempre presente alto PAPR no contribuye en nada a aliviar esta situación.
Otro de los aspectos que cabe señalar en este Capítulo, es la exposición de un
método más o menos general de abordar la creación de un predistorsionador: elección
del modelo de la no linealidad, optimización para ahorrar cómputo, implementación
sobre lenguaje de simulación y, finalmente, simulación. En efecto, mediante simulación
también hemos obtenido, incluso, resultados no esperados, como la realización de la
parte de entrenamiento del algoritmo con tan sólo 3 iteraciones, en vez de las 50
pensadas, obteniéndose resultados igualmente válidos. De esta forma, el algoritmo se
podría proponer para ser usado en sistemas en donde el canal no lineal cambia de
manera continuada, pues los cálculos del kernel se podrían hacer rápidamente y de
manera solapada a la propia transmisión.
En cuanto a la generalidad en el uso de este algoritmo con cualquier HPA,
debemos señalar que, si bien las simulaciones se han centrado en un modelo de Saleh al
que le sigue un filtro FIR para añadir efectos de memoria, también se realizaron ensayos
sin la parte de memoria, con resultados muy aceptables.
Figura 12: BER calculada para canal de Saleh con y sin filtro de memoria.
En resumen, podríamos decir que el uso de este algoritmo para sistemas OFDM
con canal no lineal y con memoria, consigue hacer que podamos trabajar con IBOs más
pequeños (hay que recordar que, en general, los sistemas OFDM trabajan con IBOs
mayores que otros tipos de modulaciones, como QPSK), lo que supone mayor
75
Capítulo 5: Diseño de un Predistorsionador basado en Series de Volterra. Análisis por simulación
eficiencia, obteniendo iguales resultados, tanto en BER como en recrecimiento
espectral. De esta forma, solventamos en gran medida el problema que el alto PAPR
ofrece a los HPA de los sistemas de comunicaciones inalámbricos modernos, pudiendo
aprovechar la gran característica de la OFDM: su resistencia al multitrayecto.
5.6 Referencias
A Least-Squares Volterra Predistorter for Compensation of Non-Linear Effects with
Memory in OFDM Transmitters , Jian Li, Jacek How.
U
U
Nonlinear Amplifier Effects in Communications Systems , Cheng-Po Liang, Je-hong
Jong, Waynw E.Stark, Jack R.East.
U
U
Simulation of Communication Systems , 2 nd Ed. Jeruchim, Balaban, Shanmugan. (c)
2000 Kluwer Academic.
U
U
P
P
Mastering MATLAB 6: A Comprehensive Tutorial And Reference , Duane Hanselman,
Bruce Littlefield, Hanselman, Duane C. Upper Saddle River, N.J.: Prentice Hall, 2001
TU
U
T
T
T
76
Descargar