PROCESADO DIGITAL DE SEÑAL (Sonido e Imagen) Universidad Politécnica de Madrid. E.U.I.T. Telecomunicación Departamento de Ingeniería Audiovisual y Comunicaciones Examen de teoría, Plan 2000 15 de Junio 2006 SOLUCIONES Problema 1: Cuantificación Para un determinado procesado digital de una señal vocal, es necesario convertirla, de forma previa, de analógico a digital. Para ello se sabe que el conversor ha de tener un fondo de escala de ±1 v. En estas condiciones responder a las siguientes cuestiones. a) Si se necesita una resolución de ±0,977 mv como mínimo, ¿Con cuantos bits se ha de trabajar? ¿Cuál sería el tamaño del escalón de cuantificación correspondiente a dicho número de bits? 2 Xm 2 n Xm 2 n 1 3 n 1 n 1 2 0,97710 1 2 n 1 8.99 n 1 9 2 1 2 0,97710 n 10 3 511,77 Con este número de bits el tamaño del escalón es: 2 Xm 2 b) Si la señal de entrada tiene una potencia de cuantificación Potencia de señal : Potencia de ruido : 2 2 SNR 10 log x n 2 x 2 e n 10 2 2 2 x 1,953mv 4 10 W , determinar la relación señal a ruido de 4 10 W 2 Xm 12 2 10 log 10 4 2n 1 1 12 2 3,17810 7 20 2 1 12 2 18 3,17810 7 24,978dB c) ¿ Se obtendría alguna ganancia de proceso utilizando un compresor de ley A (A=87,6)? c x A x 1 ln A Xm 1 ln A x Xm 1 ln A 0 x Xm 1 A 1 a x Xm 1 Gc 20log A 1 lnA dB La zona lineal estará comprendida entre: ± Xm A 1 87,6 11,415mv 2 4 Como x 10 W x 10mv , estamos en la zona lineal y tenemos ganancia de proceso: Gc 20log 87,6 1 ln A 24,08dB SNR 24,97 24,08 49,05dB d) Determinar el código que le correspondería a las tensiones de 0,01v y 0,25v tanto para el cuantificador uniforme como para el no uniforme En primer lugar sería necesario determinar si la tensión está en la zona lineal o no. Una vez conocido este dato se aplicará la fórmula del compresor ley A y al resultado obtenido se debería dividir por el tamaño del escalón original para determinar el código que le corresponde. 1 0,01v (zona lineal) Para el uniforme : V V 0,01 1,95310 3 5,12 código 5 3 0,01 A 1 ln A 1,953 10 81,95 código 82 Para el no uniforme: V 0,25v (zona no lineal) 3 0,25 1,95310 128,008 código 128 Para el uniforme : V Para el no uniforme: 3 1 ln 87,6 0,25 1 ln A 1,95310 382,33 código 382 Problema 2: Diezmado / Interpolación En el diagrama de la figura, teniendo en cuenta que: • x1(t) es una sinusoide de amplitud 1 y frecuencia 1 kHz • x2(t) es una sinusoide de amplitud 1 y frecuencia 2 kHz • T es 0.1 msg Dibuje el espectro de frecuencias de la salida de cada uno de los bloques que aparecen en dicho diagrama de bloques. 2 X1(ejω) X2(ejω) 1/T -π/5 -π 1/T π/5 π -2π/5 -π X1(ejω) 2π/5 X2(ejω) 1/T -π -9π/10 -π/10 π/10 1/T 9π/10 π -π -4π/5 -π/5 X1(ejω) π/5 4π/5 π X2(ejω) 1/T 1/T -π/10 π/10 -π π -π -4π/5 π 4π/5 π X12(ejω) 1/T -π -4π/5 -π/10 π/10 4π/5 π X12(ejω) 1/T -π -9π/10 -π/5 π/5 9π/10 π X12(ejω) X12(ejω) 1/T 1/T -π/5 π/5 X12(ejω) -π π -π -9π/10 1/2T -π -2π/5 9π/10 π X12(ejω) 1/2T 2π/5 π Y1(Ω) -π -π/5 π/5 Y2(Ω) π 3/2 1 kHz -π/5T π/5T 333,33 Hz -π/15T π/15T Problema 3: La ecuación en diferencias de un sistema LTI es: y[n] = x[n] − 0,8 x[n − 1] + 0,64 x[n − 2] − 1,8 y[n − 1] − 0,81y[n − 2] a) Calcule H(z). (2 puntos) b) Calcule la posición de los polos y ceros; dibuje el diagrama correspondiente. Indique claramente el número total de polos y de ceros del sistema. (2 puntos) El sistema se utiliza para filtrar una señal que se digitaliza con frecuencia de muestreo 60 KHz. c) A partir del diagrama de polos y ceros indique las frecuencias analógicas aproximadas (en Hz) en las que se producirá el máximo y el mínimo de la función de transferencia. (2 puntos) d) Calcule el rango de variación (diferencia entre el máximo y el mínimo expresado en dB) de la respuesta en frecuencia del sistema. (4 puntos) a) Se realiza la TZ a ambos lados de la ecuación: Y ( z ) = X ( z ) − 0,8 X ( z ) z −1 + 0,64 X ( z ) z −2 − 1,8Y ( z ) z −1 − 0,81Y ( z ) z −2 [ ] [ Y ( z ) 1 + 1,8 z −1 + 0,81z −2 = X ( z ) 1 − 0,8 z −1 + 0,64 z −2 H ( z) = −1 ] −2 Y ( z ) 1 − 0,8 z + 0,64 z = X ( z ) 1 + 1,8 z −1 + 0,81z − 2 b) La expresión general de una pareja de polos o ceros conjugados es: (1 − re jθ z −1 )(1 − re − jθ z −1 ) = 1 − 2r cosθ ⋅ z −1 + r 2 z −2 Identificando tenemos: ⎧r = 0,8 Ceros: (1 − 0,8 z −1 + 0,64 z − 2 ) ⇒ ⎨ ⎩2r cosθ = 0,8 → θ = ± π 3 ⎧r = 0,9 Polos: (1 + 1,8 z −1 + 0,81z − 2 ) ⇒ ⎨ Es un polo doble 2 r cos θ = − 1 , 8 → θ = π ⎩ En total hay dos ceros y dos polos. c) El máximo se producirá en las proximidades del polo doble, ω=π, equivalente a una frecuencia de 30 KHz. El mínimo se producirá, aproximadamente, en la frecuencia ω= π/3, equivalente a 10 KHz. 1 − 0,8e − jω + 0,64e −2 jω d) H (e jω ) = 1 + 1,8e − jω + 0,81e −2 jω Para ω= π/3, 2π 2π ⎞ π π⎞ ⎛ ⎛ 1 − 0,8⎜ cos − j sin ⎟ + 0,64⎜ cos − j sin ⎟ 0,28 + j 0,13 3 3⎠ 3 3 ⎠ 0,312 ⎝ ⎝ jω H (e ) = = = = 0,115 1,495 + j 2,260 2,710 2π 2π ⎞ π π⎞ ⎛ ⎛ 1 + 1,8⎜ cos − j sin ⎟ + 0,81⎜ cos − j sin ⎟ 3 3⎠ 3 3 ⎠ ⎝ ⎝ 1 − 0,8(− 1) + 0,64 Para ω= π, H (e jω ) = = 244 1 + 1,8(− 1) + 0,81 rango de variación= 20log(244/0,115)=66,5 dB Problema 4: FIR a) Calcular la respuesta al impulso de un filtro FIR, paso bajo, causal y de fase lineal, con sólo 5 coeficientes (M=4). La frecuencia de muestreo empleada es de 20 kHz. La atenuación mínima en la banda atenuada del filtro debe ser de 20 dB, la ganancia de valor 1 y frecuencia de corte de 5 kHz. (3 puntos). Ventana Δω (rad) Rectangular 4π/(M+1) 21 α (dB) Bartlett 8π/M 25 Hanning 8π/M 44 Hamming 8π/M 53 Blackman 12π/M 74 b) ¿Cuánto vale el ancho de la banda de transición obtenida? (1 puntos). c) Escribir la ecuación en diferencias del filtro indicando el valor de los coeficientes. (2 puntos). d) Una vez hechas las aproximaciones que se consideren necesarias en el planteamiento de las especificaciones del filtro, calcular la ecuación en diferencias en el caso de emplear la técnica IIR de Butterworth. (4 puntos). Problema 5: DFT Sea la señal x(n), de longitud L=4, representada en la figura 1. En la figura 2 se representa el correspondiente espectro DFT, en el cual se ha omitido el valor de la componente X(2). x(n) 3 2 2 2 1 0 1 2 3 n π4 φ x (k ) X(k ) 10 4 ? 0 1 2 3 2 2 0 k ? 2 3 k −π 4 a) ¿Cuál es su valor de X(2)? ¿Cuánto vale la resolución espectral, en radianes? b) Si se calcula la DFT con N=8 puntos ¿Cuánto valen las componentes X(0), X(2), X(4) y X(6)? ¿Cuánto vale la nueva resolución espectral, en radianes? c) Calcular el espectro DFT cuando N=3. d) Supóngase que mediante DFT-1 de la DFT obtenida en el apartado anterior, se pretende recuperar la señal original x(n), ¿qué muestras de las obtenidas son aliasing temporal y qué muestras no lo son? 4 PROCESADO DIGITAL DE SEÑAL Y TRATAMIENTO DIGITAL DE SEÑAL Universidad Politécnica de Madrid. E.U.I.T. Telecomunicación Departamento de Ingeniería Audiovisual y Comunicaciones Examen de la parte del laboratorio 15 de Junio 2006 En las preguntas de respuesta objetiva (preguntas 1,3,4,5,6,7,8,9), hay solamente UNA respuesta correcta. Puntuación: respuesta correcta 0,25 p., respuesta errónea -0,08 y ninguna respuesta: 0 p. MATLAB Suponemos que se ha cargado una señal de audio (muestreada a 16 kHz) de 1000 muestras en un vector llamado s_a. 1. ¿Con cual de los siguientes comandos se obtiene la gráfica de la derecha? a) plot(s_a); b) stem(s_a); c) stem(s_a(1:20)); 9 d) s_a(1:20); 2. Muestre el comando para crear un vector auxiliar llamado eje_t, que permite ver el eje x en milisegundos, usando el comando plot(eje_t, s_a); Posibles soluciones: eje_t = (0 : 1/16 : 999/16) eje_t = (1/16 : 1/16 : 1000/16) eje_t = (0 : 0.0625 : 62.4375) eje_t = (0.0625 : 0.0625 : 62.5) 3. ¿Cual de las siguientes funciones devuelve el SNR de la señal cuantificada? a) function snr = f_snr(x,xq); snr = 20*log10(sum(x^2)/sum((x-xq)^2)); b) function snr = f_snr(s, s_a); num = sum(s_a.^2); denom = sum((s_a-s).^2); snr = 10*log10(num/denom); 9 c) function snr = f_snr(s_q); snr = 10*log10(sum(s_q.^2)/length(s_q)); 4. ¿Qué efecto tiene el siguiente comando en la señal de audio s_a? s_n (1:5:5*length(s_a)) = s_a; a) Se realiza una interpolación de orden 5. b) Se introduce 4 ceros entre cada dos muestras, lo cual sería el paso preliminar a una interpolación de la señal. 9 c) La señal va a salir como diezmada por el factor 5. 5. ¿Qué tipo de señal se obtiene aplicando el comando indicado abajo? s_n = s_a(1:3:length(s_a)); a) s_n contiene las mismas muestras que s_a, pero triplicado (periódicamente). De esa manera s_n resulta ser tres veces mas largo que s_a. b) El comando indicado dará un error, porque s_n no tendrá la misma longitud que s_a. c) La señal en s_n contiene cada tercera muestra de la señal en s_a y de esa manera corresponde a ser una versión diezmada por el factor 3. 9 1 6. Indique cuál de las siguientes órdenes de MATLAB permite obtener en un vector las muestras correspondientes a un segundo de una señal sinusoidal de 1 kHz de frecuencia muestreada a una frecuencia de 8 kHz. a) sin((2*pi*1000)*(0:1)); b) sin((2*pi*1000/8000)*(0:1)); c) sin((2*pi*1000/8000)*(0:7999)); 9 d) sin((2*pi*1000/8000)*(0:1/8000:1)); 7. El número de puntos (muestras) de una “ventana”, usada para el diseño de filtros con el método de enventanado, influye en: a) la banda de transición 9 b) la atenuación del filtro c) no influye Tarjeta EZ-KIT Lite ADSP-2181 8. ¿Como se llaman los buffers de entrada y de salida donde el codec del DSP deja y recoge las muestras? a) ax1, ax0, mr1, mr0 b) tx_buf+1, tx_buf+2, rx_buf+1 y rx_buf+2 9 c) input, input+1, output, output+1 9. Indique la respuesta que describe correctamente el efecto que produce la siguiente instrucción en los bits contenidos en el registro sr1 y, a continuación, la operación matemática a la que equivale. sr = ashift sr1 by 3 (hi); a) Se efectúa un desplazamiento de 3 bits a la izquierda, esto equivale a una multiplicación por 3. b) Se efectúa un desplazamiento de 3 bits a la derecha, esto equivale a una multiplicación por 3. c) Se efectúa un desplazamiento de 3 bits a la izquierda, esto equivale a una división por 23. d) Se efectúa un desplazamiento de 3 bits a la derecha izquierda, esto equivale a una multiplicación por 23. 9 e) Se efectúa un desplazamiento de 3 bits a la izquierda, esto equivale a una división por 3. f) Se efectúa un desplazamiento de 3 bits a la derecha, esto equivale a una división por 3. Debido a una errata no había ninguna solución correcta. ¡Por esto hemos dado a TODOS este punto! 10. Enumere y describa los registros involucrados en el DSP para realizar un direccionamiento circular: Solución: Son tres registros, i, L y m que almacenan el puntero, la longitud del array y el modificador. Existen 8 juegos: i0-i7: (index) puntero al elemento actual; L0-L7: (length) almacena la longitud del array; m0-m7: (modifyer) modificador de puntero (indica el numero de células de memoria que hay que mover el puntero) . 2