LABORATORIO DE SEÑALES Y COMUNICACIONES Ingeniería de...

16
EPS-UCIIIM 11-IX-04 Departamento de Teoría de la Señal y Comunicaciones LABORATORIO DE SEÑALES Y COMUNICACIONES Ingeniería de Telecomunicación Apellidos Nombre N o de matrícula o DNI Grupo 91[ ] 92[ ] 93[ ] Firma

Transcript of LABORATORIO DE SEÑALES Y COMUNICACIONES Ingeniería de...

EPS-UCIIIM 11-IX-04 Departamento de Teoría de la Señal y Comunicaciones

LABORATORIO DE SEÑALES Y COMUNICACIONES

Ingeniería de Telecomunicación

Apellidos Nombre No de matrícula o DNI Grupo 91[ ] 92[ ] 93[ ] Firma

EPS-UCIIIM 11-IX-04 Departamento de Teoría de la Señal y Comunicaciones

LABORATORIO DE SEÑALES Y COMUNICACIONES (Tiempo: 2 hora y 30 minutos.)

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. E.1 a) Sea una señal x(t) de frecuencia fc=100Hz y muestreada a una frecuencia de fs=1Khz, cuyo espectro en frecuencia entre 0 y fs es el que sigue:

Se le aplica un diezmado por 2 usando la función decimate(X,2). Cual de los siguientes espectros en frecuencia es correcto y corresponde a la nueva señal? Justifique su respuesta. (0.6 puntos)

1) 2)

EPS-UCIIIM 11-IX-04 Departamento de Teoría de la Señal y Comunicaciones

3) 4) b) Si la señal fuese de 300hz., en vez de 100hz., sería posible realizar el diezmado? Justifique su respuesta. (0.4 puntos)

EPS-UCIIIM 11-IX-04 Departamento de Teoría de la Señal y Comunicaciones E.2. En la serie temporal mostrada en la Figura 1 se puede ver la evolución del número de manchas solares, año a año, desde 1700 hasta 2003. Se desea estudiar el comportamiento cíclico de estas manchas. Para ello se ha escrito el siguiente código de Matlab, que genera las siguientes figuras:

1700 1750 1800 1850 1900 1950 2000

0

50

100

150

Número de manchas solares por año

Años

número de manchas solares

Figura 1. Serie temporal del número de manchas en el sol según el año.

0 0.05 0.1 0.15 0.2 0.25 0.3 0.350

500

1000

1500

2000

Manchas solares

año-1

0 0.05 0.1 0.15 0.2 0.25 0.3 0.350

100

200

300

400

500

600

700

800Manchas solares; fft de baja resolución

año-1

Figura 2. Módulo del espectro de las manchas solares.

Figura 3. Módulo del espectro, con 128 puntos.

load sol.mat; % recupera 2 variables: ‘anio’ % y ‘manchas_sol’ fs = 1; % frecuencia de muestreo (muestras/año) m = length(manchas_sol); manchas = manchas_sol - mean(manchas_sol); figure(1); plot(anio, manchas_sol); title('Número de manchas solares por año'); xlabel('Años'); ylabel('número de manchas solares'); N = 2^9;

manchas = hamming(m).*manchas; M = fft(manchas, N); figure(2); eje = [0:N-1]/N; plot(eje, M); axis([0 0.35 0 1.05*max(M)]); title('Manchas solares'); xlabel('año^{-1}'); % FFT de 128 puntos; M2 = fft(manchas,128); figure(3); plot([0:128-1]/128, M2); axis([0 0.35 0 1.05*max(M2)]); title('Manchas solares; fft de baja resolución'); xlabel('año^{-1}')

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

Preguntas: a) Encuentre y comente los errores que aparecen en el código del programa.

¿Qué debería poner para que funcionara correctamente? (0’2 puntos) b) Observando la Figura 2, ¿cuál es, aproximadamente, el período de

repetición principal de las manchas en el sol? ¿A qué frecuencia en años-1 y a qué frecuencia discreta corresponden ese período? (0’3 puntos)

c) Explique por qué cree que se usa una ventana de hamming, y enumere los 2 parámetros principales a la hora de medir la bondad de una ventana de observación. (0’3 puntos)

d) ¿Obtendría el mismo resultado que en el apartado b) en caso de usar la Figura 3 para calcular el período de las manchas solares? ¿Por qué? ¿Qué ocurriría en caso de aumentar mucho el número de puntos de la FFT? (0’2 puntos).

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

E.3 Se desea programar en Matlab un ecualizador de tres bandas (graves, medios y agudos), en el que se pueda regular la potencia de cada banda. El esquema de bloques es el representado en la figura.

Figura 1. Diagrama de bloques del ecualizador.

Para la realización de los filtros (paso bajo: H1; paso banda: H2 y paso alto: H3) se puede usar la función ‘fir1’, cuya ayuda se adjunta al final del enunciado. La frecuencia de muestreo de la señal de audio ‘wav’ será fm = 44100 Hz, y las frecuencias de corte se situarán en f1 = 2500 Hz y f2 = 7000 Hz. Una vez separado el audio en las tres bandas, estas se multiplicarán por las ganancias ‘g’ que se han pasado al programa en forma de vector de tres valores. Finalmente se dibujará el audio original ‘wav’ y la señal ecualizada ‘WAV’. El programa debe devolver

a) las 3 bandas en las filas de la matriz ‘bandas’, b) la señal reconstruida en el vector ‘WAV’ c) y la energía de cada banda antes de ser multiplicada por las

ganancias, en el vector ‘E’ La cabecera de la función es la siguiente: function [bandas WAV E] = ecualizador(wav, g); % ECUALIZADOR segmenta el vector fila 'wav' en tres bandas de frecuencia, % que se ponderan posteriormente según los valores del vector de ganancias 1x3 'g' % % Devuelve % · la matriz ‘bandas’, formada por 3 filas que recogen las 3 bandas de frecuencia. % · el vector ‘WAV’, que contiene la suma de las tres bandas multiplicadas por las ganancias ‘g’. % · el vector fila E, con la energía de cada banda original. fm = 44100; % Frecuencia de muestreo de ‘wav’; f1 = 2500; % Frecuencia de corte del filtro paso bajo. f2 = 7000; % Frecuencia de corte del filtro paso alto.

H1

H2

H3

g(1)

g(2)

g(3)

wav WAV

H1

H2

H3

g(1)

g(2)

g(3)

wav WAV

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

Preguntas:

a) Escribir el programa con la funcionalidad descrita. (0’8 puntos) b) Dibuje a mano, en una misma gráfica, el módulo del espectro de los 3 filtros.

Teniendo en cuenta la forma de los filtros y que son de tipo FIR, dibuje también un diagrama de polos y ceros para cada filtro (no se pide que sean los reales, pero que sean razonables) (0’2 puntos).

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

E.4 Considere la secuencia binaria b = [1 0 0 1 0], un régimen binario de 1 Kbit/s y una amplitud máxima de 1 V. Dibuje una señal con modulación BASK (on-off) que contiene la información binaria en b y tiene una frecuencia de portadora igual a 5 KHz. (0.4 puntos)

¿Cuál de los siguientes esquemas emplearía para generar una modulación

BASK? (0.3 puntos)

¿Cuál de los siguientes espectros corresponde al de una señal BASK con

frecuencia de portadora de 8 KHz y régimen binario de 1Kbit/s? Justifique su respuesta (0.3 puntos)

4 5 6 7 8 9 10 11 1210

-8

10-7

10-6

10-5

10-4

10-3

10-2

10-1

PSD Function

Frequency [kHz]

Power [W]

6 6.5 7 7.5 8 8.5 9 9.5 1010

-10

10-8

10-6

10-4

10-2

100

PSD Function

Frequency [kHz]

Power [W]

(a) (b)

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

2 3 4 5 6 7 8 9 1010

-8

10-7

10-6

10-5

10-4

10-3

10-2

10-1

PSD Function

Frequency [kHz]

Power [W]

6 6.5 7 7.5 8 8.5 9 9.5 1010

-8

10-7

10-6

10-5

10-4

10-3

10-2

10-1

PSD Function

Frequency [kHz]

Power [W]

(c) (d)

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

E.5 Se dispone del sistema de comunicaciones digitales que se muestra en la figura siguiente. El sistema presenta las características relevantes descritas a continuación: Fuente binaria con una tasa de transmisión Rb = 10 Kbits/s, con probabilidad

de transmitir un cero, p0 = 0.4. Transmisión en banda base usando una modulación RZ unipolar con un nivel

de amplitud A = 1 V. Canal paso bajo con un ancho de banda de 20 KHz. Potencia de ruido σ2 = 1 W.

Muestreo en el receptor con una frecuencia fs = 100 KHz, y aplicación del filtro adaptado discreto.

Se pide lo siguiente:

a) Obtenga la energía por bit (Eb) de la señal transmitida, la densidad espectral de potencia de ruido en el receptor (No/2), la relación Eb/No del sistema en dB, y su probabilidad de error teórica, Pe. (0.4 puntos)

b) Suponga que la probabilidad de error obtenida no es suficientemente buena para la aplicación considerada. Para intentar mejorar las prestaciones del sistema se introduce un codificador bloque de Hamming (7,4) entre la fuente binaria y el modulador, aumentando la tasa binaria de la fuente en la cantidad adecuada para poder seguir transmitiendo toda la información útil en el mismo periodo de tiempo. Recalcule todos los parámetros del apartado anterior: Eb, No/2, Eb/No(dB) y Pe. ¿Obtiene algún resultado inesperado para la probabilidad de error? ¿A qué cree que puede ser debido? (0.6 puntos)

Nota: Para calcular la probabilidad de error teórica, puede consultar la tabla de Q(x) proporcionada en el apéndice. Para calcular la probabilidad de error aproximada cuando se usa el código corrector de errores utilice la siguiente fórmula:

( )( )111!

!!=n

eecPPP ,

donde Pe es la probabilidad de error del sistema sin corrección de errores (con el valor de Eb/No apropiado), y n el número de bits de salida del codificador bloque.

Modulador

Ruido

Canal Receptor Fuente

binaria

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

E6.- Dada la siguiente secuencia de instrucciones de Matlab:

bits=rand(1,10000)>0.5; x_rz=wave_gen(bits,'unipolar_rz',1000); x_nrz=wave_gen(bits,'unipolar_nrz',1000); y_rz=channel(x_rz,1,0.01,5e3); y_nrz=channel(x_nrz,1,0.01,5e3);

En las siguientes figuras se muestran los diagramas de ojo de dos de las señales del programa. ¿De qué señales se trata? Comente aquellos rasgos de los diagramas de ojo que considere más importantes e indique claramente a qué se deben. (1 punto)

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

x 10-3

-1

-0.5

0

0.5

1

Time [sec]

EYE DIAGRAM

Diagrama de Ojo 1

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

x 10-3

-0.5

0

0.5

1

1.5

2

Time [sec]

EYE DIAGRAM

Diagrama de ojo 2

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

ANEXO DECIMATE Resample data at a lower rate after lowpass filtering. Y = DECIMATE(X,R) resamples the sequence in vector X at 1/R times the original sample rate. The resulting resampled vector Y is R times shorter, LENGTH(Y) = LENGTH(X)/R. DECIMATE filters the data with an eighth order Chebyshev Type I lowpass filter with cutoff frequency .8*(Fs/2)/R, before resampling. Y = DECIMATE(X,R,N) uses an N'th order Chebyshev filter. Y = DECIMATE(X,R,'FIR') uses the 30 point FIR filter generated by FIR1(30,1/R) to filter the data. Y = DECIMATE(X,R,N,'FIR') uses the N-point FIR filter. Note: For large R, the Chebyshev filter design might be incorrect due to numeric precision limitations. In this case, DECIMATE will use a lower filter order. For better anti-aliasing performance, try breaking R up into its factors and calling DECIMATE several times. See also INTERP, RESAMPLE. FIR1 FIR filter design using the window method. B = FIR1(N,Wn) designs an N'th order lowpass FIR digital filter and returns the filter coefficients in length N+1 vector B. The cut-off frequency Wn must be between 0 < Wn < 1.0, with 1.0 corresponding to half the sample rate. The filter B is real and has linear phase. The normalized gain of the filter at Wn is -6 dB. B = FIR1(N,Wn,'high') designs an N'th order highpass filter. You can also use B = FIR1(N,Wn,'low') to design a lowpass filter. If Wn is a two-element vector, Wn = [W1 W2], FIR1 returns an order N bandpass filter with passband W1 < W < W2. You can also specify B = FIR1(N,Wn,'bandpass'). If Wn = [W1 W2], B = FIR1(N,Wn,'stop') will design a bandstop filter. If Wn is a multi-element vector, Wn = [W1 W2 W3 W4 W5 ... WN], FIR1 returns an order N multiband filter with bands 0 < W < W1, W1 < W < W2, ..., WN < W < 1. B = FIR1(N,Wn,'DC-1') makes the first band a passband. B = FIR1(N,Wn,'DC-0') makes the first band a stopband. B = FIR1(N,Wn,WIN) designs an N-th order FIR filter using the N+1 length vector WIN to window the impulse response. If empty or omitted, FIR1 uses a Hamming window of length N+1. For a complete list of available windows, see the help for the WINDOW function. KAISER and CHEBWIN can be specified with an optional trailing argument. For example, B = FIR1(N,Wn,kaiser (N+1,4)) uses a Kaiser window with beta=4. B = FIR1(N,Wn,'high',chebwin (N+1,R)) uses a Chebyshev window with R decibels of relative sidelobe attenuation. For filters with a gain other than zero at Fs/2, e.g., highpass and bandstop filters, N must be even. Otherwise, N will be incremented by one. In this case the window length should be specified as N+2.

EPS-UCIIIM 11-IX-04 Departamento de Teoría de Señal y Comunicaciones

By default, the filter is scaled so the center of the first pass band has magnitude exactly one after windowing. Use a trailing 'noscale' argument to prevent this scaling, e.g. B = FIR1(N,Wn,'noscale'), B = FIR1(N,Wn,'high','noscale'), B = FIR1(N,Wn,wind,'noscale'). You can also specify the scaling explicitly, e.g. FIR1(N,Wn,'scale'), etc. See also KAISERORD, FIRCLS1, FIR2, FIRLS, FIRCLS, CREMEZ, REMEZ, FREQZ, FILTER, WINDOW. WAVE_GEN .... Generates a waveform coded in binary signalling formats. X = WAVE_GEN(B,LINECODE,Rb) will generate samples of the time waveform X using LINECODE binary signalling format. The allowed selections for the LINECODE parameter are: 'unipolar_nrz' 'unipolar_rz' 'polar_nrz' 'polar_rz' 'bipolar_nrz' 'bipolar_rz' 'manchester' 'triangle' 'nyquist' 'duobinary' 'mod_duobinary' B : binary input sequence. Rb : binary data rate specified in Hz, e.g 2000. The pulse amplitude is set to 1 such that any other scaling has to be done externally. X = WAVE_GEN(B,LINECODE) is the same but uses the default binary data rate specified by the variable "BINARY_DATA_RATE". [X,t] = WAVE_GEN(...) returns sampled values of the waveform, where X is the sampled values and "t" is the vector of time values at which the samples in "X" are defined. See alse WAVEPLOT. CHANNEL ..... Defines a communications channel and generates the channel output for a given input sequence. [Y] = CHANNEL(X,GAIN,NOISE_POWER,BANDWIDTH) generates the sequence Y from the input sequence X based on a transmission 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).