LABORATORIO DE SEÑALES Y COMUNICACIONES Ingeniería de Telecomunicación Apellidos Nombre Node matrícula o DNI Grupo 91[ ] 92[ ] 93[ ] Firma
LABORATORIO DE SEÑALES Y COMUNICACIONES (Tiempo: 3 horas.)
No escriba en las zonas con recuadro grueso
No
Apellidos
1 2
Nombre
No de matrícula o DNI Grupo
3 4
Firma: 5 6
T
NOTA: En el anexo, al final del examen, están las ayudas de MATLAB para todas las funciones que se utilizan a lo largo de las distintas preguntas.
E1.- El proceso de interpolación de una señal discreta x[n] consiste en una inserción de
ceros seguida de un filtrado paso bajo (1.5 puntos).
a) Implemente en Matlab una función que realice la inserción de ceros, cuya fórmula es: xe[n] = x[n/L], si n=0, ±L, ±2L,… Como parámetros de la función se pasarán la señal x[n] y el factor de interpolación L (0.4 puntos).
El filtro interpolador más sencillo es el de orden cero, cuya respuesta al impulso es
[ ]
(
)
==
1 0 L k ocn
n
k
h
, es decir, un pulso rectangular de longitud L.b) Escriba el código en Matlab, mediante la función filter( ), para filtrar paso bajo xe[n] (0.4 puntos).
c) ¿Cuál es el valor máximo que puede tener L en una interpolación? ¿Por qué? (0.3
puntos)
d) Identifique, para cada señal interpolada de la Figura 1, el filtro de interpolación empleado, sabiendo que la señal original se muestra en la parte superior de la Figura 1. Indique también el valor del factor L empleado en esta interpolación (0.4
0 5 10 15 20 25 -0.5 0 0.5 1 1.5 Señal original 0 20 40 60 80 100 120 -0.5 0 0.5 1 1.5 Filtro A 0 20 40 60 80 100 120 -0.5 0 0.5 1 1.5 Filtro B 0 20 40 60 80 100 120 -0.5 0 0.5 1 1.5 Filtro C
Figura1: señal original y 3 interpolaciones, con distintos filtros de interpolación. Los círculos en negro señalan las muestras de x[n]
E2.- Considere una señal discreta x[n]. A su transformada de Fourier la llamaremos X(ej)
(1.5 puntos).
a) Escriba un código en Matlab que calcule la DFT de x[n] y dibuje el módulo de la DFT entre – y . Deje las expresiones en función del número de puntos de la DFT
N. (0.5 puntos).
b) Si x[n] fueran muestras de una señal muestreada a 10 Hz, y N = 1024, determine la separación frecuencial entre 2 muestras de la DFT (0.5 puntos).
c) La longitud de x[n] es 20, de forma que x[n] = 0 fuera de 0 n 19. Se desea evaluar X(ej) en = 4/5. ¿Cuál es el mínimo N que se debe emplear? (0.5
E3.- La señal x = [1 2 5 3 zeros(1,9)], se introduce en tres sistemas LTI caracterizados por
las siguientes respuestas al impulso (2 puntos):
>> h1 = [0 0 1];
>> h2 = [0 1 2];
>> h3 = [zeros(1,7) 1];
1. Escriba la ecuación en diferencias que corresponde a cada sistema (0.4 puntos). 2. Dibuje la salida de cada sistema (0.4 puntos).
3. Escriba mediante una función MATLAB la salida de cada sistema en función de la entrada y de la respuesta al impulso (0.4 puntos).
4. Determine los polos y ceros de cada uno de los sistemas (0.4 puntos).
5. Para aquellos sistemas que sólo tengan polos en el origen ¿Qué efecto produce sobre la señal filtrada? (0.4 puntos)
E4.- Resuelva las siguientes cuestiones (1.5 puntos).
a) Suponga que se dispone de la función s=mod_FM(fc, x), que devuelve la señal s(t) modulada en FM con una frecuencia de portadora fc. Escriba el código, basado en
mod_FM(), para modular una señal y(t) en PM (0.5 puntos).
Se desea modular en AM la señal m(t). El índice de modulación es de 0.4, y la frecuencia de la portadora 10KHz. La frecuencia de muestreo es de 500 KHz. (Es decir, la variable temporal en Matlab para 6 segundos de modulación es t = 0:1/500000:6). b) Escriba el código que genera la señal s(t) modulada en AM con estos parámetros.
¿Qué amplitud de la señal de entrada produce sobremodulación? (0.5 puntos). c) Si la señal m(t) es un tono de 2KHz, dibuje a mano, aproximadamente, el espectro
de la señal modulada s(t). ¿Qué ocurre si se varía la frecuencia de m(t), acercándola a la frecuencia de la portadora (10 KHz)? (0.5 puntos).
E5.- Se está evaluando el rendimiento de un circuito integrado que contiene un conversor
analógico/digital (ADC) y digital/analógico (DAC). Para ello dispone de las funciones de Matlab (véase el Apéndice) a2d y d2a, que simulan el comportamiento del ADC y DAC respectivamente, y de la función channel, que simula el comportamiento de un canal de comunicaciones real. Se le pide lo siguiente. (1.5 puntos)
a) Escriba los comandos de Matlab necesarios para calcular la potencia del error de cuantificación del ADC para una señal de entrada cualquiera x_in (0.3 puntos). b) Escriba los comandos de Matlab necesarios para calcular la relación señal a ruido a
la salida de un canal con potencia de ruido sigma2, ganancia en continua unidad y ancho de banda W Hz para una señal de entrada cualquiera x_in (0.4 puntos).
c) Escriba los comandos de Matlab necesarios para obtener la probabilidad de error a la salida del mismo canal del apartado anterior (0.3 puntos).
d) Para una determinada señal de entrada se ha encontrado la relación señal a ruido de cuantificación del ADC, obteniéndose la gráfica mostrada en la figura siguiente. Explique razonadamente a qué cree que es debida la gran diferencia entre la curva de SNR teórica y la obtenida experimentalmente (0.5 puntos).
E6.- La modulación GMSK (“Gaussian Minimum Shift Keying”) utilizada en el estándar europeo de telefonía móvil de segunda generación (GSM) puede verse como una forma especial de modulación OQPSK (“Offset Quadrature Phase Shift Keying”) en la que se usan pulsos conformadores Gaussianos en lugar de los clásicos pulsos rectangulares o en coseno alzado. Esta modulación puede implementarse usando el siguiente esquema:
Donde b[l] es la secuencia de bits de entrada (0nN1),
m
i[ ]
n
= b 2l
[ ]
ym
q[ ]
n
= b 2l + 1
[
]
(es decir, nos quedamos con los bits pares e impares respectivamente).) (t
hg es un filtro conformador Gaussiano:
= 2 2 2 exp ) (
t t hg ,y las señales portadoras para los canales I y Q son:
(
t T)
(
f t)
t xci( )=cos /2 b cos 2 c ,(
t T)
(
f t)
t xcq( )=sin /2 b sin 2c ,siendo Tb la tasa binaria y fc la frecuencia de la portadora. Se dispone además de la
función tx (véase el Apéndice), que permite realizar la codificación NRZ, así como de una función start similar a la utilizada en las prácticas que inicializa las siguientes variables globales:
BINARY_DATA_RATE SAMPLING_CONSTANT SAMPLING_FREQ CARRIER_FREQUENCY
que están disponibles para todas las funciones que realice (recuerde que debe declararlas de manera previa a su uso). Se le pide lo siguiente (2 puntos).
a) Escriba la función hg = gauss(M,alpha) que devuelve M muestras de la respuesta al
impulso del filtro Gaussiano, hg(t), con parámetro alpha, convenientemente
muestreada (lea y utilice las variables globales que necesite). Suponga que M es impar y hg devuelve hg(0) y un número igual de muestras para t<0 y t>0 (0.5 puntos). Codificación Símbolo I Codificación NRZ Polar
h
g(t)
Codificación Símbolo Q Codificación NRZ Polarh
g(t)
b[l] mi [n] mq [n] si (t) sq (t) sfi (t) sfq (t) xci (t) xcq (t) xi (t) xq (t) x(t)b) Escriba la función x = tx_gmsk(b,hg) que implementa el transmisor de la figura
anterior, siendo b la secuencia de bits de entrada y hg la respuesta al impulso del filtro Gaussiano, obtenida previamente mediante la función gauss. Asuma que b tiene longitud par y de nuevo utilice todas las variables globales que necesite (1.0 punto). c) Se desean utilizar las funciones anteriores para simular un sistema de
comunicaciones con modulación GMSK para una relación Eb/No dada por la variable
Eb_No. Escriba los comandos necesarios para calcular la energía media por bit de la
señal GMSK, x_gmsk, y la varianza del ruido en el canal, sigma2, para la relación
FILTER One-dimensional digital filter.
Y = FILTER(B,A,X) filters the data in vector X with the filter described by vectors A and B to create the filtered data Y. The filter is a "Direct Form II Transposed"
implementation of the standard difference equation:
a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)*y(n-1) - ... - a(na+1)*y(n-na)
If a(1) is not equal to 1, FILTER normalizes the filter coefficients by a(1).
ZEROS Zeros array.
ZEROS(N) is an N-by-N matrix of zeros.
ZEROS(M,N) or ZEROS([M,N]) is an M-by-N matrix of zeros.
Example:
x = zeros(2,3,'int8');
A2D ... Analog-to-digital conversion.
A2D(X,N,FLAG_1,FLAG_2) operates on the sampled input sequence X. Each sample is quantized and coded using N-bits/sample. FLAG_1 specifies the type of quantization.
Choices for FLAG_1 are:
'uniform' and 'mu_law'
FLAG_2 determines how the 2^N quantization level are coded.
Choices for FLAG_2 are:
'natural' and 'gray'
A2D(X,N,FLAG_1) uses the default coding method 'natural'. A2D(X,N) uses default flags of 'uniform' and 'natural'.
D2A ... Digital-to-analog conversion of PCM data.
D2A(X,N,FLAG_1,FLAG_2) operates on the input data X.
The input sequence is assumed to be a binary, serial data where each sample is represented by N bits.
The flags are as follows:
FLAG_1 : 'uniform' or 'mu_law'. FLAG_2 : 'natural' or 'gray';
D2A(X,N) is equivalent to calling D2A function with FLAG_1 = 'uniform and 'FLAG_2 = 'natural'.
D2A(X,N,FLAG_1) is equivalent to calling D2A function with
FLAG_2 = 'natural'.
CHANNEL ... Defines a communications channel and generates the channel
output for a given input sequence.
[Y] = CHANNEL(X,GAIN,NOISE_POWER,BANDWIDTH) generates the
channel with frequency response H(f): Noise | +---+ v X --->| H(f) |--- + ----> Y +---+ where 2 |H(f)| = { GAIN, |f| in BANDWIDTH; ( 0, otherwise.
arg(H(f) = -2*pi*f, |f| in BANDWIDTH.
If BANDWIDTH = [f_cutoff] then channel is low-pass type, and if BANDWIDTH = [fl, fu] then channel is band-pass type. The channel noise is Gaussian(0,NOISE_POWER).
CHANNEL(...) with no output arguments displays the magnitude and phase response functions of H(f).
TX ... Transmitter function.
TX(B,LINECODE) will generates samples of the waveform for baseband transmission in LINECODE binary signalling format using
default
value for Rb. Allowed choices for the LINECODE parameter are:
---
'unipolar_nrz' 'unipolar_rz' 'polar_nrz' 'polar_rz'
'bipolar_nrz' 'bipolar_rz' 'manchester' 'triangle'
TX(B,MODULATION,fc) generates samples of a band-pass waveform using MODULATION type digital modulation with fc representing
carrier frequency. For FSK, fc must be of the form [f0 f1]. Allowed choices for the MODULATION parameter are:
---
'ask' 'psk' 'fsk'
B : binary input sequence.
There are two optional flags that specify:
Rb : binary data rate (default=BINARY_DATA_RATE) ;
FLAG : if FLAG = 'no_diff" no differential encoding (default), if FLAG = 'diff' differential encoding is used.