Amplificadores diferenciales

Anuncio
PRÁCTICA 3:
COMUNICACIÓN PASABANDA
POP Tecn. Electrónicas y Comun.
SISTEMAS DE COMUNICACIONES
DIGITALES
Práctica 3. Comunicación pasabanda
3.1. Objetivos
Aprender a utilizar el Simulink de MATLAB para analizar sistemas de
comunicación pasabanda.
3.2. Realización práctica
3.2.1. Sistema de comunicación QPSK
En esta práctica vamos a llevar a cabo la implementación de un sistema de
comunicación pasabanda QPSK, para posteriormente analizar su rendimiento
en función de la relación Eb/N0 en el canal. En la figura siguiente podemos
observar el aspecto general del sistema de comunicación.
En la figura se puede observar que se dispone de tres bloques principales: el
modulador QPSK, el canal AWGN y el demodulador QPSK. Asimismo se han
añadido un osciloscopio para observar las señales de interés en el sistema y un
dispositivo para determinar la tasa de error de bits del mismo. Igualmente, se
ha introducido un texto destinado al usuario para que defina cuatro parámetros
requeridos por los distintos modelos del sistema:
-
fm: Frecuencia de datos
-
fc: Frecuencia de la portadora senoidal
-
N: Número de puntos (muestras) que definen un ciclo de la portadora
-
Eb_No: Relación Eb/N0 en decibelios
3.2.2. Modulador QPSK
En la figura siguiente se muestra la estructura del modulador QPSK. Este
dispone de un generador de datos aleatorios que, dado que trabajaremos con
modulación QPSK, generará números enteros entre 0 y 3 (2 bits). El dato
generado, modulará la fase de la señal portadora la cual se genera a partir de
1/9
PRÁCTICA 3:
COMUNICACIÓN PASABANDA
POP Tecn. Electrónicas y Comun.
SISTEMAS DE COMUNICACIONES
DIGITALES
una tabla de datos que incluye, a lo largo de las distintas posiciones de la
misma, una forma de onda senoidal. El tamaño de la tabla será de N puntos,
incluyendo cada uno de ellos una muestra del ciclo de la señal senoidal. Por
tanto, el bloque tabla (Simulink/Lookup Tables/Direct Lookup Table (n-D)) tendrá
una dimensión de 1 y estará inicializada (Table data) a sin(2*pi/N*[0:1:N-1]). Es
decir, en las N posiciones se almacena la forma de una onda senoidal cada 2/N
radianes. El contador (Simulink/Sources/Counter Free-running) generará un
número entero que se irá incrementando cada 1/(N·fc) segundos. Se
seleccionará log2(N) como número de bits para el contador, a fin de que éste
cuente desde 0 hasta N – 1. El dato de salida del generador aleatorio modificará
la fase de la señal portadora añadiendo una cantidad que provocará un salto
con respecto a la dirección indicada por el contador, de tal forma que:
1.
2.
3.
4.
Si dato = 0  Salto = -N/8 ( = -/4)
Si dato = 1  Salto = N/8 ( = /4)
Si dato = 2  Salto = 3N/8 ( = 3/4)
Si dato = 3  Salto = 5N/8 ( = 5/4 = -3/4)
(1)
Obsérvese que el salto es proporcional a N. Dado que a continuación se añade
una operación módulo N, el valor de salida de este último dispositivo, que
controla la posición del dato a suministrar a la salida de la tabla, siempre estará
limitado entre 0 y N – 1. Por tanto, dado que N (puntos) coincide con el
recorrido de 2 radianes de la onda senoidal, un salto de N/8 se corresponde
con /4 radianes.
En el modulador se ha incluido también un bloque de visualización de
constelaciones (Communications Blockset/Comm Sinks/Discrete-Time Scatter Plot
Scope). Se ha utilizado una look-up table para obtener los símbolos de la
2/9
PRÁCTICA 3:
COMUNICACIÓN PASABANDA
POP Tecn. Electrónicas y Comun.
SISTEMAS DE COMUNICACIONES
DIGITALES
constelación QPSK en función del dato de salida del generador aleatorio, en
base a la siguiente asignación:
1.
2.
3.
4.
Si dato = 0  Valor = 1 – j
Si dato = 1  Valor = 1 + j
Si dato = 2  Valor = -1 + j
Si dato = 3  Valor = -1 – j
(2)
Obsérvese que la asignación indicada en la tabla identifica el símbolo que se
corresponde con cada dato de salida del generador, de tal forma que el desfase
 definido anteriormente concuerde con el presentado por el símbolo en la
constelación.
3.2.3. Canal ideal con ruido AWGN
Se incorpora en el sistema, a fin de evaluar su desempeño, un canal con ruido
AWGN (Communications Blockset/Channels/AWGN Channel) que, en este caso,
definiremos en base a la relación Eb/N0 presente en el mismo. Como se ha
comentado anteriormente, dicho parámetro vendrá dado por la variable Eb_No
definida en la línea de comandos del MATLAB. Así, definiremos el modo del
bloque a Signal to Noise Ratio (Eb/No), el valor del parámetro Eb/No (dB) lo
estableceremos a Eb_No, el número de bits por símbolo será de 2 (cada símbolo
transmite 2 bits al tratarse de modulación QPSK), la potencia de la señal de
entrada al canal será de 0,5 W, ya que se trata de una señal senoidal continua
(sólo se producen saltos de fase, pero en ningún momento se deja de transmitir
dicha señal) y la frecuencia de los símbolos la estableceremos a la inversa de la
frecuencia de los datos (1/fm). Obsérvese que cada dato suministrado por el
generador aleatorio del modulador consiste de un número entero representable
por 2 bits (de 0 a 3).
3.2.4. Demodulador QPSK con filtros pasobajo
En la figura superior se muestra la estructura del demodulador QPSK
implementado haciendo uso de filtros pasobajo digitales para cada uno de los
canales correspondientes a los ejes de la constelación (canal X para la parte real
y canal Y para la parte imaginaria). Asimismo, se dispone de un generador de la
portadora que asumiremos “en fase” con la portadora del transmisor. Nótese
3/9
PRÁCTICA 3:
COMUNICACIÓN PASABANDA
POP Tecn. Electrónicas y Comun.
SISTEMAS DE COMUNICACIONES
DIGITALES
que, en la práctica, habría de diseñar algún sistema de sincronización del
oscilador del receptor con la señal de entrada al mismo. El generador de la
portadora suministra al receptor tanto la portadora en fase, como la portadora
desfasada 90º. En un sistema de detección coherente, como es este caso, de una
señal QPSK, se requiere de dos funciones ortogonales 1(t) y 2(t) para extraer
tanto la componente en fase (canal X) como la componente en cuadratura
(canal Y):
 1 (t )  sin 2f 0t ,  2 (t )  cos 2f 0t
Si  X i  jYi  e ji  cos   j sin 
r (t )  sin( 2f 0t  i )  X i sin 2f 0t  Yi cos 2f 0t
x(t )   X i sin 2f 0t sin 2f 0t  Yi cos 2f 0t sin 2f 0t
(3)
y (t )   X i sin 2f 0t  cos 2f 0t  Yi cos 2f 0t cos 2f 0t
En las expresiones anteriores podemos observar como la señal QPSK está
constituida básicamente por dos términos: uno en fase que contiene la
información Xi del símbolo y otra en cuadratura que contiene la información Yi
de ese mismo símbolo, multiplicados cada uno de ellos por la portadora en fase
y en cuadratura, respectivamente. En el receptor, al multiplicar la señal de
entrada r(t) por una portadora en fase y otra en cuadratura obtendremos una
serie de términos sin2(x), sin(x)cos(x) y cos2(x). Los términos sin(x)cos(x), sin2(x)
y cos2(x) pueden representarse como:
sin 2 x  12  12 cos 2 x
cos 2 x  12  12 cos 2 x
(4)
sin x cos x  sin 2 x
1
2
En el proceso de filtrado-integración, los términos de los productos anteriores
correspondientes a la frecuencia 2f0 serán eliminados, por lo que tendremos
que:
x(t ) filtrado  12 X i , y(t ) filtrado  12 Yi
(5)
Así, tras el proceso de filtrado obtendremos una estimación de las componentes
en fase y en cuadratura de los símbolos transmitidos afectados por el ruido del
canal. Se introduce un detector de umbral (bloque Simulink/Math
Operations/Sign) para obtener una versión digital (+1, -1) de la señal de salida de
cada uno de los filtros. Asimismo, se añade un muestreador
(Simulink/Discrete/Zero-Order Hold) para tomar una muestra cada 1/fm
segundos. Para obtener un dato entero a partir de las muestras (Xi,Yi) de cada
símbolo recibido se aplica la siguiente ecuación matemática:
4/9
PRÁCTICA 3:
COMUNICACIÓN PASABANDA
S0  1  j  d 0  2
S  1  j  d  3

1
1
di  2 (2 X i  Yi )  1.5   1
S


1

j

d2  1
 2
S3  1  j  d3  0
POP Tecn. Electrónicas y Comun.
SISTEMAS DE COMUNICACIONES
DIGITALES
(6)
En la expresión anterior queda patente que los símbolos recibidos no están
ordenados en la misma manera que la asignación dada por (2). Por tanto, se
hará uso de una look-up table para obtener una representación idéntica a la de
los datos generados en el trasmisor, de tal forma que el contenido de la tabla
venga dado por: [3 2 0 1]. Obsérvese que con esta tabla de ordenación, al
símbolo de entrada d0 = 2 le es asignado el valor de salida de la tabla 0, y así
sucesivamente, obteniéndose por tanto el valor correspondiente al dato
transmitido.
La estructura del generador de la portadora en fase y en cuadratura se muestra
en la figura inferior. Básicamente utiliza la misma estructura que aquella del
transmisor, salvo que se genera adicionalmente la portadora en cuadratura,
mediante un desfase de N/4 puntos (/2 rad) respecto de la señal en fase,
extrayendo simultáneamente dos valores de la misma tabla que contiene la
forma de onda de la portadora senoidal.
En cuanto a los filtros pasobajo digitales se ha hecho uso de la función
incorporada del MATLAB fir1 para determinar los coeficientes de un filtro FIR
de orden 100 y frecuencia de corte normalizada fcorte/(fs/2) = fm/(Nfc). Para ello,
en el bloque se establecen los coeficientes del numerador a fir1(100-1,fm/(N*fc)),
tomándose, por tanto, como frecuencia de corte, fm/2. Se puede hacer uso de la
función incorporada freqz para determinar los diagramas de Bode del filtro
definido por los coeficientes dados por la función fir1:
freqz(fir1(99,fm/(N*fc)),1,N*fc)
donde el primer argumento es el vector de coeficientes del numerador, el
segundo el vector de coeficientes del denominador (1, pues se trata de un filtro
FIR) y el tercer argumento se corresponde con el número total de puntos sobre
5/9
PRÁCTICA 3:
COMUNICACIÓN PASABANDA
POP Tecn. Electrónicas y Comun.
SISTEMAS DE COMUNICACIONES
DIGITALES
los que se desea evaluar dicha respuesta en frecuencia (a mayor número de
puntos, mayor resolución).
Por último, cabe indicar que se ha añadido un visualizador de constelaciones
para los símbolos recibidos, previo al proceso de digitalización a (+1,-1). Para
ello, se han tomado las componentes Xi e Yi de los símbolos recibidos y se ha
generado un número complejo de la forma Xi + jYi. A continuación, se ha
llevado a cabo un muestreo cada 1/(Nfc) segundos y se han suministrado los
símbolos muestreados al visualizador de constelaciones. En dicho bloque, habrá
por tanto que establecer el número de muestras por símbolo a Nfc y añadir
cierto retardo para seleccionar la muestra a representar, por ejemplo Nfc/4,
teniendo en cuenta el retardo inducido a las señales por los filtros digitales.
1. Observar las distintas señales en los distintos bloques del sistema para
un tiempo de simulación de 100/fm, estableciendo los distintos
parámetros de la simulación (fm, fc, N y Eb_No) a los valores por defecto
indicados.
2. Observar las constelaciones tanto de los símbolos transmitidos como de
los símbolos recibidos. ¿Qué ocurre cuando establecemos Eb_No a 20? ¿Y
cuando le damos un valor de 50 decibelios? Observar también las señales
recibidas cuando modificamos la relación Eb/N0.
3. Comparar los datos enviados con los datos recuperados. ¿Qué
características podemos encontrar entre ellos?
3.2.5. Cálculo de la tasa de error de símbolo del sistema (SER)
Para el cálculo de la tasa de error de símbolo del sistema se ha añadido un
bloque de cálculo de errores (Communications Blockset/Comm Sinks/Error Rate
Calculation) que toma, como datos de comparación, muestras suministradas por
los dispositivos de muestreo dispuestos a su entrada, cada 1/fm segundos, de
los datos enviados y recuperados. Los datos recuperados, debido al proceso de
detección, estarán retardados un tiempo de símbolo (1/fm), o, equivalentemente,
una muestra de los datos enviados, por lo que habrá que indicárselo al módulo
de cálculo de errores estableciendo a 1 el parámetro Receive delay. A la salida de
este bloque se dispone tanto un display (Simulink/Sinks/Display) para visualizar
la tasa de error, como una variable de salida (Simulink/Sinks/To Workspace). Así,
los datos de salida del bloque de cálculo de errores, que constituyen ternas con
la tasa de error, el número de errores y el número total de símbolos, se
mostrarán en el display a la vez que se almacenan en la variable de salida
indicada (ErrorVec).
1. Observar la tasa de errores para diferentes valores de la relación Eb/N0
(parámetro Eb_No del espacio de trabajo, Workspace).
2. Crear un script en MATLAB que, utilizando el sistema diseñado en
Simulink (denominado, por ejemplo, qpsk.mdl), determine la tasa de error
6/9
PRÁCTICA 3:
COMUNICACIÓN PASABANDA
POP Tecn. Electrónicas y Comun.
SISTEMAS DE COMUNICACIONES
DIGITALES
para diferentes valores de la relación Eb/N0. Un posible código de
ejemplo se muestra a continuación:
% Calcula la BER de QPSK
fm=1;
fc=10;
N=32;
warning off
ebnov=0:2.5:15;
L=length(ebnov);
ser=zeros(1,L);
for i=1:L
disp([' Eb/No = ' num2str(ebnov(i))])
Eb_No=ebnov(i);
sim('qpsk')
ser(i)=VecError(length(VecError),1);
end
warning on
semilogy(ebnov,ser)
xlabel('E_b/N_0 (dB)');
ylabel('Symbol Error Rate');
Los comandos warning on/off se utilizan para desactivar los avisos debidos al
sistema qpsk durante la simulación del mismo. Podemos observar cómo se
realiza un barrido para diferentes valores de la variable Eb_No, llevándose a
cabo la simulación del sistema qpsk, mediante el comando sim(‘qpsk’), para cada
uno de dichos valores. Finalmente, se representa gráficamente la tasa de error
del sistema (almacenada en la variable ser) frente a la relación Eb/N0 del canal
(almacenada en la variable ebnov).
3.2.6. Detector QPSK con filtro de correlación
En los apartados precedentes se ha evaluado el rendimiento de un esquema
QPSK que hacía uso de un detector con dos filtros pasobajo digitales para
eliminar las componentes indeseadas de las señales de salida de los
multiplicadores. Aunque este esquema es adecuado para obtener una
estimación de los datos transmitidos, un esquema óptimo de detección debería
basarse en la estructura del filtro de correlación, que dice que los datos
recibidos pueden obtenerse mediante la siguiente expresión:
T
Xˆ i  K  r (t ) 1 (t )dt
(7)
0
Yˆi  K  r (t ) 2 (t )dt
T
0
donde X̂ i e Ŷi son las estimaciones de las componentes en fase y cuadratura del
símbolo transmitido, r(t) es la señal recibida, 1(t) = sin 2f0t, 2(t) = cos 2f0t
son las funciones ortogonales descritas anteriormente, K es una constante
multiplicativa para normalizar los valores de X̂ i e Ŷi , y T es el tiempo de
símbolo. Según la expresión anterior, basta con sustituir los filtros del receptor
QSPK dado anteriormente por un integrador con muestreo cada T segundos
(filtro de integración y descarga) para obtener el detector óptimo.
7/9
PRÁCTICA 3:
COMUNICACIÓN PASABANDA
POP Tecn. Electrónicas y Comun.
SISTEMAS DE COMUNICACIONES
DIGITALES
En la figura siguiente se muestra la nueva estructura del receptor, donde los
filtros han sido sustituidos por integradores constituidos por un buffer que
almacena Nfc muestras y un sumador de las muestras almacenadas,
acompañados de un circuito de muestreo y retención que toma el resultado del
integrador anterior cada 1/fm segundos, correspondiente con el tiempo de
símbolo T.
1. Comprobar las nuevas formas de onda del circuito y su nuevo
rendimiento para Eb/N0 = 10 dB.
2. Utilizar el script diseñado anteriormente para determinar la tasa de error
de símbolo (SER) del nuevo esquema frente a la relación Eb/N0.
3.2.7. Cálculo de la tasa de error de bit (BER)
Anteriormente se ha especificado el procedimiento para determinar la tasa de
error de símbolo del sistema. Dado que cada símbolo representa dos bits de
datos, es posible determinar la tasa de error de bit sin más que comparar los bits
de datos a los que representa el símbolo recibido con los bits de datos
correspondientes con el símbolo transmitido. Para ello, basta generar una tabla
de búsqueda (look-up table) que muestre a la salida los dos bits correspondientes
al símbolo de entrada. Para ello, en los parámetros de la tabla (véase la figura
con la nueva estructura del sistema para la detección de la tasa de error de bit)
hay que establecer el número de dimensiones de la tabla a 2, indicarle que la
entrada selecciona una columna de la tabla y definir la tabla (table data) como
[0 0;0 1;1 1;1 0].’ (codificación Gray). Obsérvese que, con esta última definición,
se genera una tabla donde en cada columna se establece el valor binario
correspondiente a cada símbolo de entrada a la tabla.
8/9
PRÁCTICA 3:
COMUNICACIÓN PASABANDA
POP Tecn. Electrónicas y Comun.
SISTEMAS DE COMUNICACIONES
DIGITALES
Los vectores columna de salida de cada una de las tablas se hacen pasar por un
bloque Frame Conversion para indicarle al sistema que se tratan de señales en
forma de tramas de datos, en este caso vectores columna. A continuación el
receive delay del bloque Error Rate Calculation debe establecerse a 2, ya que ahora
se tendrán grupos de dos bits que se comparan. Debido al retardo del sistema
inducido sobre los símbolos recibidos, se tendrá que hay dos muestras (bits) de
retardo entre los bits transmitidos y los recibidos.
1. Llevar a cabo una simulación para comprobar la tasa de error de bit del
sistema. Obsérvese que para un tiempo de simulación de 100/fm, el número
de bits recibidos es de 200, lo que es lógico puesto que 1/fm es el tiempo
de símbolo, por lo que la duración de un bit será 1/(2fm). También
podremos comprobar que la tasa de error de bit (BER) es
aproximadamente la mitad de la tasa de error de símbolo (SER), lo que es
debido a que, en la mayoría de los casos, un error de símbolo equivale
únicamente a un error de bit, pero, en este segundo caso, el cociente se
realiza sobre el total de bits recibidos, que duplica al de símbolos
recibidos.
2. Utilizar el script diseñado anteriormente para determinar la tasa de error
de bit (BER) del sistema frente a la relación Eb/N0. Obsérvese que la
curva representada ahora por el script se corresponde con la BER frente a
la relación Eb/N0, en lugar de la tasa de error de símbolo.
3. Comprobar qué ocurre cuando establecemos una codificación binaria
normal definiendo el parámetro table value como [0 0; 0 1; 1 0; 1 1].’ y
realizando una nueva simulación. ¿Cuál es la nueva tasa de error de bit?
9/9
Descargar