Departamento de Comunicaciones-UPV Tratamiento Digital de la Señal Teorı́a y Aplicaciones Antonio Albiol Valery Naranjo Josep Prades Índice 1. Muestreo 1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Muestreo de señales paso-bajo . . . . . . . . . . . . . . . . . . . 1.2.1. Recuperación de una señal paso-bajo a partir de sus muestras . . . . . . . . . . . . . . . . . . . . . . . . 1.2.2. Consideraciones prácticas . . . . . . . . . . . . . . . . . 1.3. Procesado discreto de señales continuas . . . . . . . . . . . . . 1.4. Muestreo y reconstrucción de señales paso-banda . . . . . . . . 1.4.1. Muestreo de señales paso-banda como señales reales . . 1.4.2. Muestreo de señales paso-banda como señales complejas 1.5. Cambio de la velocidad de muestreo . . . . . . . . . . . . . . . 1.5.1. Diezmado por un factor entero . . . . . . . . . . . . . . 1.5.2. Interpolación por un factor entero . . . . . . . . . . . . 1.5.3. Cambio de la frecuencia de muestreo por un factor racional 1.5.4. Aplicación del diezmado a la conversión C/D . . . . . . 1.5.5. Aplicación de la interpolación a la conversión D/C . . . 1.6. Codificación de señales . . . . . . . . . . . . . . . . . . . . . . . 1.6.1. Recuperación de la señal . . . . . . . . . . . . . . . . . . 1.6.2. El ruido de cuantificación . . . . . . . . . . . . . . . . . 1.6.3. Cuantificación no uniforme . . . . . . . . . . . . . . . . 5 8 9 12 13 14 18 19 21 25 27 28 30 31 33 35 2. Transformada Discreta de Fourier 2.1. Introducción . . . . . . . . . . . . . . . . . . 2.2. La Transformada Discreta de Fourier . . . . 2.3. Propiedades de la DFT . . . . . . . . . . . 2.4. Relación entre convolución circular y lineal 39 39 39 41 46 i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2.5. 2.6. 2.7. 2.8. 2.4.1. Cond. para igualdad entre conv. lineal y circular . . 2.4.2. Coincidencias entre la convolución lineal y la circular Implementación de filtros LTI utilizando DFT . . . . . . . . Muestreo de la Transformada de Fourier . . . . . . . . . . . La FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.1. Consideraciones previas . . . . . . . . . . . . . . . . 2.7.2. Algoritmos de diezmado en el tiempo . . . . . . . . 2.7.3. Algoritmos de diezmado en frecuencia . . . . . . . . 2.7.4. Consideraciones adicionales sobre la FFT . . . . . . 2.7.5. Algoritmos con N 6= 2υ . . . . . . . . . . . . . . . . Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Implementación de filtros 3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1. Aplicaciones de los filtros . . . . . . . . . . . . 3.1.2. Ventajas e inconvenientes de los filtros digitales 3.2. Planteamiento general del filtrado digital . . . . . . . . 3.2.1. Implementabilidad de filtros FIR . . . . . . . . 3.2.2. Implementabilidad de filtros IIR . . . . . . . . 3.2.3. Proceso de implementación de un filtro digital 3.3. Implementación de filtros digitales . . . . . . . . . . . 3.3.1. Diagramas de flujo . . . . . . . . . . . . . . . . 3.3.2. Formas directas . . . . . . . . . . . . . . . . . . 3.3.3. Realización en Cascada . . . . . . . . . . . . . 3.3.4. Realización en paralelo . . . . . . . . . . . . . . 3.3.5. Formas transpuestas . . . . . . . . . . . . . . . 3.3.6. Determinación de la función de transferencia de 3.3.7. Secuencia de cálculo . . . . . . . . . . . . . . . 3.4. Efectos de precisión finita . . . . . . . . . . . . . . . . 3.4.1. Cuantificación de los coeficientes . . . . . . . . 3.4.2. Cuantificación de las muestras de entrada . . . 3.4.3. Redondeos en las operaciones . . . . . . . . . . 3.4.4. Escalado en sistemas de coma fija . . . . . . . 3.4.5. Ciclos lı́mite . . . . . . . . . . . . . . . . . . . 3.5. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . ii . . . . . . . . . . . . . . . . . . . . . . . . . . un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 50 52 54 58 58 61 69 72 78 80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . grafo . . . . . . . . . . . . . . . . . . . . . . . . 83 83 83 85 87 89 90 91 92 92 94 96 98 98 100 102 108 108 114 116 123 126 127 4. Filtros Adaptativos 131 4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.1.1. Ejemplos de sistemas adaptativos . . . . . . . . . . . . . 131 4.1.2. Caracterı́sticas fundamentales de los sistemas adaptativos132 4.1.3. Fundamentos de los de sistemas adaptativos . . . . . . . 132 4.2. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 4.2.1. Identificación de sistemas . . . . . . . . . . . . . . . . . 133 4.2.2. Predicción . . . . . . . . . . . . . . . . . . . . . . . . . . 134 4.2.3. Cancelación de ruido . . . . . . . . . . . . . . . . . . . . 134 4.2.4. Canceladores de eco . . . . . . . . . . . . . . . . . . . . 136 4.2.5. Ecualizadores adaptativos . . . . . . . . . . . . . . . . . 139 4.2.6. Filtro en hendidura . . . . . . . . . . . . . . . . . . . . . 140 4.3. Filtrado Óptimo . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.3.1. El combinador lineal . . . . . . . . . . . . . . . . . . . . 141 4.3.2. Notación matricial . . . . . . . . . . . . . . . . . . . . . 142 4.3.3. Respuesta deseada y error . . . . . . . . . . . . . . . . . 142 4.3.4. Superficie de error . . . . . . . . . . . . . . . . . . . . . 143 4.3.5. Gradiente y error cuadrático medio mı́nimo . . . . . . . 146 4.3.6. Ejemplo de superficie de error . . . . . . . . . . . . . . . 148 4.4. Algoritmos de gradiente . . . . . . . . . . . . . . . . . . . . . . 149 4.4.1. Caso Unidimensional . . . . . . . . . . . . . . . . . . . . 150 4.4.2. Caso Multidimensional . . . . . . . . . . . . . . . . . . . 152 4.5. El algoritmo LMS . . . . . . . . . . . . . . . . . . . . . . . . . 153 4.5.1. Ejemplo numérico del algoritmo LMS . . . . . . . . . . 155 4.5.2. Aspectos prácticos del algoritmo LMS . . . . . . . . . . 156 4.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 4.7. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 4.7.1. Ejercicios con Matlab . . . . . . . . . . . . . . . . . . 159 5. Análisis Espectral 5.1. Introducción . . . . . . . . . . . . . . . . . . . . 5.2. Tipos y tecnologı́as de analizadores espectrales 5.2.1. Analizadores por banco de filtros . . . . 5.2.2. Analizadores de barrido . . . . . . . . . 5.2.3. Analizadores digitales . . . . . . . . . . iii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 163 164 164 166 167 5.3. Planteamiento del problema . . . . . . . . . . . . . . . 5.3.1. Señales deterministas de duración limitada . . 5.3.2. Señales deterministas de duración ilimitada . . 5.3.3. Señales aleatorias estacionarias . . . . . . . . . 5.3.4. Señales no estacionarias . . . . . . . . . . . . . 5.3.5. Aspectos prácticos del análisis espectral digital 5.4. Análisis espectral de señales deterministas . . . . . . . 5.4.1. Ventanas de análisis . . . . . . . . . . . . . . . 5.4.2. Resolución en frecuencia y margen dinámico . . 5.4.3. Uso de la FFT. Muestreo en frecuencia . . . . 5.4.4. El problema de la media . . . . . . . . . . . . . 5.5. Análisis espectral no paramétrico . . . . . . . . . . . . 5.5.1. Sesgo y Varianza . . . . . . . . . . . . . . . . . 5.5.2. El periodograma . . . . . . . . . . . . . . . . . 5.5.3. Autocorrelación . . . . . . . . . . . . . . . . . . 5.5.4. El método Blackman-Tukey . . . . . . . . . . . 5.5.5. El método de Welch o WOSA . . . . . . . . . . 5.5.6. Resumen métodos no-paramétricos . . . . . . . 5.6. Análisis Tiempo-Frecuencia . . . . . . . . . . . . . . . 5.6.1. La TF dependiente del tiempo . . . . . . . . . 5.6.2. Elección de la ventana . . . . . . . . . . . . . . 5.6.3. Interpretación como banco de filtros de la TF diente del tiempo . . . . . . . . . . . . . . . . . 5.6.4. Transformada Inversa . . . . . . . . . . . . . . 5.6.5. Muestreo en frecuencia y en tiempo . . . . . . 5.7. Análisis Espectral Paramétrico . . . . . . . . . . . . . 5.7.1. Modelos AR . . . . . . . . . . . . . . . . . . . . 5.8. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . A. Señales Aleatorias Discretas A.1. Introducción . . . . . . . . . . . . . A.2. Procesos Estocásticos Discretos . . A.2.1. Funciones de Distribución y A.3. Promedios . . . . . . . . . . . . . . A.3.1. Promedios instantáneos . . iv . . . . . . . . . . . . . . . . . . de Densidad de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . depen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 168 168 168 170 170 172 174 178 181 185 186 186 187 193 200 205 209 210 211 213 216 217 218 219 222 228 233 . . . . . . . 233 . . . . . . . 234 Probabilidad235 . . . . . . . 236 . . . . . . . 236 A.3.2. Promedios con memoria . . . . . . . . A.4. PED Estacionarios . . . . . . . . . . . . . . . A.4.1. Propiedades de los PED estacionarios A.4.2. Estacionariedad en el mundo real . . . A.5. Procesos Ergódicos . . . . . . . . . . . . . . . A.6. Densidad Espectral de Potencia . . . . . . . . A.7. Filtrado de Procesos Discretos . . . . . . . . A.8. Ruido Blanco Discreto . . . . . . . . . . . . . A.9. Problemas . . . . . . . . . . . . . . . . . . . . Bibliografı́a . . . . . . . . . . . . . . . . . . . . . . v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 238 239 240 241 243 247 248 249 255 vi Prólogo Este libro tiene sus orı́genes en la experiencia adquirida en la impartición de un curso de Tratamiento Digital de la Señal durante casi 20 años en la ETSI de Telecomunicación de la Universidad Politécnica de Valencia. El libro, en esta su segunda edición se ajusta al temario impartido en la actualidad (2007). Respecto a la edición precedente se han corregido diversos pequeños errores que se habı́an detectado en la primera edición, y se ha reescrito el principio del capı́tulo 2 para no incluir las series discretas de Fourier. Este texto tiene su razón de ser en la falta de un texto nacional o extranjero que se ajuste al temario visto en la asignatura. Algunos aspectos que no se encuentran en otros textos de gran difusión ([9] o [6]) son el muestreo de señales paso-banda o el estudio de los efectos de precisión finita en filtros digitales en DSPs con arquitecturas modernas. Otros libros (por ejemplo [4] o [11]) son especı́ficos de alguno de los temas de la asignatura, y tratan con mucha mayor profundidad los aspectos de análisis espectral o filtrado adaptativo. Puede llamar la atención la no existencia de un tema dedicado al diseño de filtros digitales, clásico en la mayorı́a de los libros sobre la materia. Dicho tema se ha suprimido del temario de la asignatura y ha sido relegado a una asignatura de laboratorio debido a la disponibilidad generalizada de software de diseño de filtros que simplifica notablemente la tarea del diseñador. Nos ha parecido más interesante mantener un tema sobre aspectos prácticos de implementación de filtros digitales, que requieren de más criterio por parte del ingeniero diseñador. Se ha procurado en todo momento mantener a lo largo del libro un lenguaje lo más claro e intuitivo posible, huyendo de un excesivo rigor matemático en beneficio de la claridad. Ası́ por ejemplo siempre que se ha creı́do conveniente se ha añadido una figura para reforzar las ideas o expresiones matemáticas. Como base para la lectura del libro es necesario tener una base de la teorı́a de sistemas lineales, tanto discretos como continuos. Se suponen conocidos aspectos como el concepto de señal discreta, la transformada de Fourier, o la transformada Z. Sobre estos temas se pueden consultar los libros [8] o [10] entre muchos otros. vii viii Se ha incluido un apéndice sobre procesos aleatorios discretos debido a que resulta fundamental la perfecta comprensión de los conceptos que en él se contienen para la comprensión del resto del texto. El segundo lo hemos incluido porque nos ha parecido interesante que el alumno conozca cuando aparecieron las ideas y técnicas que se presentan en la parte principal del texto. Con el fin de mantener el libro lo más vivo posible se han habilitado unas páginas Web, donde se recogerán diversas informaciones relacionadas con el libro tales como erratas, programas, problemas adicionales, etc. La dirección es: http://personales.upv.es/∼aalbiol/librotds07 Por otra parte, será bien recibido cualquier errata, comentario o sugerencia que pueda contribuir a mejorar este libro en futuras ediciones. Esperamos que este libro sea de ayuda a los alumnos de nuestra Escuela ası́ como a todos aquellos que busquen un texto sobre la materia donde la claridad en la exposición sea la intención fundamental. Los autores Valencia, julio de 2007. Capı́tulo 1 Muestreo y Procesado Discreto de Señales Continuas 1.1. Introducción El procesado de señales de forma discreta presenta una serie de ventajas frente a la alternativa analógica como son inmunidad frente al ruido, estabilidad frente a temperatura, repetitividad,. . . Sin embargo la mayorı́a de las señales que interesa procesar son de naturaleza analógica. En ese caso es necesaria una discretización de la señal continua. Además, en muchas ocasiones interesa que el procesado (continuo o discreto) de una señal produzca como resultado una señal analógica. En ambos casos es necesario convertir la señal de continuo a discreto o viceversa. En este tema veremos, en la sección 1.2, la conversión continuo-discreto y viceversa para el caso más habitual de que las señales sean paso-bajo. En el apartado 1.3 trataremos el efecto que produce procesar muestras de una señal continua de forma discreta. El punto 1.4 aborda el muestreo de señales paso-banda, de bastante interés en comunicaciones. En la sección 1.5 nos ocuparemos de cómo obtener, a partir de un conjunto de muestras de una señal obtenidas a una frecuencia de muestreo, un nuevo conjunto de muestras correspondientes a una frecuencia de muestreo diferente. Por último, estudiaremos la cuantificación y la codificación en la sección 1.6. 1.2. Muestreo y reconstrucción de señales paso-bajo Sea xc (t) una señal continua. Supongamos que disponemos de un bloque que denominaremos conversor continuo a discreto cuya relación entrada salida 1 2 CAPı́TULO 1. MUESTREO xc (t) - C/D - x[n] 6 fs Figura 1.1: Representación esquemática de un conversor continuo discreto. venga dada por: x[n] = xc (n Ts ) (1.1) donde x[n] es la señal discreta de salida correspondiente a muestras de la señal xc (t). El parámetro Ts recibe el nombre de periodo de muestreo, y representa la separación (en segundos) entre dos muestras consecutivas. A su inversa fs = 1/Ts se le denomina frecuencia de muestreo. Dicho bloque lo representaremos esquemáticamente como se muestra en la figura 1.1. A la operación que realiza dicho bloque se le denomina muestreo de la señal continua xc (t). En la práctica, el valor de las muestras de salida x[n] se suele cuantificar en amplitud obteniéndose una representación binaria del valor de la muestra. En este caso se habla de convertidores analógico-digitales (A/D). Nosotros consideraremos que la discretización de amplitud es suficientemente fina como para poder considerar sus efectos despreciables. Por ello supondremos (salvo en la sección 1.6) que las muestras pueden tomar cualquier valor real. La señal continua de entrada tendrá una transformada de Fourier Xc (fc )1 y la señal discreta de la salida tendrá una transformada de Fourier X(ejω ). Dado que x[n] proviene del muestreo de xc (t) (ec. (1.1)) parece lógico pensar que también exista una relación entre las correspondientes transformadas de Fourier. Veamos cuál es esta relación. Consideremos la siguiente señal continua: xs (t) = xc (t) · X δ(t − nTs ) = n X xc (n Ts ) δ(t − nTs ) (1.2) n Recordemos que: TF ( X n 1 ! ) δ(t − nTs ) = 1 X δ(fc − n fs ) Ts n En este tema, y para evitar confusiones, denominaremos fc a la variable independiente de la Transformada de Fourier (TF) de señales continuas, fd a la variable independiente de la TF de señales discretas, Ω = 2πfc a la pulsación continua, y ω = 2πfd a la pulsación discreta. 3 1.2. Muestreo de señales paso-bajo Tomando Transformadas de Fourier a cada uno de los términos de la ecuación (1.2) resulta: ! Xs (fc ) = Xc (fc ) ∗ 1 X δ(fc − nfs ) Ts n = X xc (n Ts ) e−jΩTs n (1.3) n Teniendo en cuenta que: X(ejω ) = X x[n] e−jωn = xc (n Ts ) e−jωn X n n y que: ! Xc (fc ) ∗ 1 X δ(fc − nfs ) Ts n = 1 X Xc (fc − nfs ) Ts n Xc (fc ) 6 a) 1 @ @ @ - @ W fc Xs (fc ) 6 b) ... fs @ @ @ @ @ @ @ ... @ @ @ @ @ @ −fs W @ - fc fs X(ejω ) 6 c) ... fs @ @ @ @ @ −1 @ @ @ ... @ @ @ @ @ @ W/fs 1 Figura 1.2: Relaciones entre espectros en el muestreo de señales. - fd 4 CAPı́TULO 1. MUESTREO resulta la relación: X(ejω ) |ω=ΩTs = 1 X Xc (fc − n fs ) = Xs (fc ) Ts n (1.4) Observemos que Xs (fc ) es a la vez: La repetición periódica (escalada en amplitud por fs ) del espectro de la señal original Xc (fc ). En otras palabras, consiste en réplicas centradas en fc = 0 y fc = ±k fs , del espectro de la señal original. Un escalado por un factor fs de X(ejω ). Es decir, el valor de X(ejω ) en fd = 1 corresponde con el que toma Xs (fc ) en fc = fs . La figura 1.2 muestra dichas relaciones. Nótese que las relaciones expresadas por la ecuación (1.4) son válidas para toda señal continua real o compleja. Finalmente, podemos escribir la relación directa entre X(ejω ) y Xc (fc ) X(ejω ) = fd − n 1 X Xc Ts n Ts (1.5) Centrémonos ahora en el caso de señales reales continuas paso-bajo, es decir, señales cuyo espectro se puede considerar nulo para fc > W , siendo W el ancho de banda. Las señales paso-bajo reales suelen corresponder a las que producen la mayorı́a de fuentes de señal: audio, voz, televisión, señales digitales en banda base,. . . Al muestrear una de estas señales, pueden suceder dos casos: Que al repetirse el espectro no se produzca solapamiento entre las diferentes repeticiones. Éste es el caso mostrado en la figura 1.2 donde es fácil observar que fs > 2 W Que al repetirse el espectro se produzca solapamiento entre las diferentes repeticiones. En la figura 1.3 se ilustra este caso que corresponde a la condición fs < 2 W . Al solapamiento espectral se le conoce habitualmente como aliasing. En el caso en que no se produzca aliasing, veremos que se puede recuperar la señal continua paso-bajo x(t) a partir de sus muestras x[n]. En el siguiente apartado se detalla cómo. 5 1.2. Muestreo de señales paso-bajo Xc (fc ) 6 1 ""bb b " b " b " - b " W fc Xs (fc ) fs ... ""bb ""bb " b " 6 b " b " b" "b " b b" "b " b b" "b ... ""bb b −fs b " b" "b - W fc fs X(ejω ) fs ... ""bb " ""bb " b " b b" "b " b b" "b −1 6 ... ""bb b b " b " b" "b W/fs b " b" "b - 1 fd Figura 1.3: Relaciones entre espectros en el muestreo de señales en el caso de que exista aliasing (W > fs /2). 1.2.1. Recuperación de una señal paso-bajo a partir de sus muestras Supongamos que tenemos un conjunto de muestras x[n] que han sido tomadas a una frecuencia de muestreo fs . Dado dicho conjunto de muestras de una señal continua, la cantidad de señales continuas que pueden corresponder a dichas muestras es infinita. Este hecho queda ilustrado en la figura 1.4, donde se pueden observar dos señales distintas que corresponden a un mismo conjunto de muestras. Obsérvese que las muestras únicamente permiten conocer directamente la señal continua en los instantes tk = k Ts . Para conocer los valores de la señal en instantes de tiempo intermedios, es necesario hacer alguna hipótesis sobre la naturaleza de la señal muestreada. Si consideramos que la señal analógica a la que corresponden las muestras es paso-bajo de ancho de banda fs /2 entonces sólo existe una única señal continua a la que pueden corresponder las muestras. 6 CAPı́TULO 1. MUESTREO Si las muestras de la señal no contienen aliasing, es decir si fs > 2 W entonces la señal que se recupera es xc (t), de la cual se tomaron las muestras. En caso contrario, la señal que se recupera no coincide con la señal xc (t). Podemos resumir por tanto, los condiciones necesarias para recuperar una señal continua a partir de sus muestras: 1. Las muestras x[n] tomadas equiespaciadamente. 2. Conocer el periodo de muestreo Ts para saber a qué instantes corresponden las muestras. 3. Saber que la señal xc (t) original es paso-bajo. 4. Que su ancho de banda sea W < fs /2. Es interesante notar que la falta de cualquiera de los 4 elementos arriba indicados no permite reconstruir la señal analógica original. El hecho de que se pueda recuperar exactamente una señal a partir de sus muestras es equivalente a decir que las muestras contienen la misma cantidad de información que la señal continua. Por lo tanto, cualquier manipulación de la señal continua que pudiéramos pensar, podrá ser realizada sobre sus muestras. 2 1 0 −1 −2 0 5 10 15 5 10 15 2 1 0 −1 −2 0 Figura 1.4: Ejemplo de dos señales continuas diferentes cuyas muestras coinciden. 7 1.2. Muestreo de señales paso-bajo xs (t) - Generador x[n] - Impulsos Hr (fc ) - xc (t) 6 D/C fs Figura 1.5: Diagrama de bloques de un conversor discreto-continuo. La figura 1.2 nos da una pista de cómo recuperar la señal analógica a partir de las muestras. 1. En primer lugar, generaremos xs (t) a partir de x[n]. Esta señal corresponde a un tren de impulsos infinitamente estrechos e infinitamente altos cuya área coincide con el valor de las muestras. En otras palabras generamos la señal analógica cuyo espectro se muestra en la figura 1.2-b a partir de la señal discreta de la figura 1.2-c. 2. Una vez se tiene xs (t) (figura 1.2-b), se aplica a un filtro analógico pasobajo ideal cuya ganancia en la banda de paso debe ser Ts y cuyo ancho de banda es fs /2 para obtener finalmente x(t) (figura 1.2-a). Al conjunto de operaciones que acabamos de describir, se le denominaconversor discreto a continuo y lo denotaremos como D/C . Su diagrama se muestra en la figura 1.5. Conviene notar que esta figura representa un modelo de dichos conversores pero no expresa una forma de realización práctica, ya que en dicho esquema es necesario generar impulsos analógicos infinitamente altos y estrechos, cosa imposible en la práctica. El filtro que se muestra en la figura 1.5 recibe el nombre de filtro de reconstrucción y debe notarse que es un filtro analógico. Su respuesta en frecuencia y su respuesta impulsiva son respectivamente: Hr (fc ) = Ts Y fc hr (t) = sinc fs t Ts (1.6) A partir de los razonamientos anteriores, podemos escribir fácilmente la relación entre la señal discreta y continua de un conversor D/C tanto en el dominio del tiempo: xc (t) = X n t − n Ts x[n] sinc Ts (1.7) 8 CAPı́TULO 1. MUESTREO como en el de la frecuencia: ( Xc (fc ) = Ts X(ejΩ Ts ) |fc | < fs /2 0 resto (1.8) Nótese finalmente que, en el caso de no existir aliasing (figura 1.2), existe una correspondencia biunı́voca entre los puntos del eje de frecuencias continuas y discretas: fd ←→ fc = fs fd |fd | < 0,5 |fc | < fs /2 1.2.2. Consideraciones prácticas En este apartado veremos algunas de las consideraciones de tipo práctico que es necesario tener presente. 1. Necesidad del filtrado previo al muestreo de las señales. La mayorı́a de las señales reales que se pueden encontrar en la práctica tienen un ancho de banda limitado. Sin embargo, muchas veces interesa únicamente la parte de bajas frecuencias de una señal para, de ese modo, poder muestrear a una frecuencia más baja. En esos casos se hace necesario un filtrado analógico previo al muestreo de la señal. Incluso si se puede considerar el ancho de banda de la señal a muestrear limitado a fs /2, se hace necesario filtrar la misma debido a que normalmente ésta contendrá ruido fuera de la banda de la señal que habrá de ser eliminado antes del muestreo. 2. Bandas de guarda. Dado que los filtros antialiasing y de reconstrucción tienen bandas de transición de anchura finita, será necesario muestrear a frecuencias superiores al doble del ancho de banda si se desea poder recuperar la señal en la práctica. Como ejemplo, la señal de audio de 20 kHz se muestrea a 44.1 kHz en el Compact Disc. 3. Muestreo y retención en el D/C. Para recuperar la señal, en la figura 1.5 se propone generar un tren de impulsos xs (t). Esta señal no se puede generar en la práctica, por tratarse de impulsos infintamente estrechos y altos. En su lugar se suele utilizar un tren de impulsos cuadrados (Muestreo y Retención, sample and hold ): x0s (t) = X n x[n] Y t − n Ts Ts (1.9) 9 1.3. Procesado discreto de señales continuas Es fácil observar que: x0s (t) = xs (t) ∗ Y t Ts (1.10) Por lo que: fc (1.11) fs es decir, se obtiene lo mismo que en el caso ideal pero multiplicado por un sinc. Este producto tiene dos efectos: Xs0 (fc ) = Xs (fc ) Ts sinc Un primer efecto desfavorable: una atenuación creciente con la frecuencia (máxima a fc ≈ fs /2). Un segundo efecto favorable: Atenuación de las componentes espectrales de xs (t) en torno a fs , 2 fs , . . . y ganancia de Ts . Este efecto hace que el filtro de reconstrucción deba tener ganancia 1 en su banda de paso, y que su diseño sea más sencillo si el conversor es del tipo Sample and Hold, pues las repeticiones espectrales están preatenuadas por los nulos del sinc. La salida de un convertidor de este tipo tiene un aspecto de escalera en el dominio del tiempo. Este efecto se debe a las repeticiones del espectro (atenuadas por el sinc) centradas en los armónicos de la frecuencia de muestreo. Para eliminar dicho efecto es necesario el filtro de reconstrucción anteriormente mencionado. 1.3. Procesado discreto de señales continuas El muestreo de una señal analógica suele realizarse para: Transmitir dichas muestras digitalmente. Almacenar las muestras, para su posterior reproducción, análisis, etc. Procesarlas para obtener otro conjunto de muestras que volverá a ser convertido a continuo. Este último punto es el que trataremos en esta sección. Considérese un diagrama como el de la figura 1.6, en el que se muestrea una señal analógica cuyas muestras son procesadas para obtener un nuevo conjunto de muestras y[n] que dará lugar a una señal analógica de salida. En el caso más simple h[n] = δ[n] serı́a el sistema identidad. En ese caso yc (t) coincide con xc (t) si xc (t) es paso-bajo y el muestreo se realiza sin aliasing. 10 CAPı́TULO 1. MUESTREO x[n] xc (t) - C/D - y[n] h[n] - 6 D/C yc (t) - 6 fs fs Figura 1.6: Procesado discreto de una señal continua. En el caso más general de que h[n] sea un filtro digital arbitrario, tendremos: Y (ejω ) = X(ejω ) H(ejω ) (1.12) Concatenando esta ecuación con las correspondientes al conversor C/D (1.4) y al D/C (1.8) resulta la siguiente expresión para el espectro de yc (t). Yc (fc ) = X H(ejΩ Ts ) Xc (fc − k fs ) |fc | < fs /2 k 0 (1.13) resto Si la señal xc (t) se muestreó sin aliasing (como en la figura 1.2), entonces del anterior sumatorio sólo es no nulo el término correspondiente a k = 0, resultando en ese caso: Yc (fc ) = H(ejΩ Ts ) Xc (fc ) |fc | < fs /2 (1.14) Es decir, si la señal de entrada se muestrea sin aliasing, y sus muestras se filtran digitalmente, el efecto es producir un filtrado analógico equivalente sobre la señal de entrada por un filtro: Hef f (fc ) = H(ejΩ Ts ) (1.15) Dicha expresión nos indica que la respuesta en frecuencia analógica equivalente es simplemente una desnormalización del eje de frecuencias del sistema discreto empleado. Por poner un ejemplo, si se utiliza una frecuencia de muestreo de 10 kHz, y tuviéramos un filtro discreto h[n] paso-bajo de frecuencia de corte discreta 0.1, el conjunto de la figura 1.6 equivaldrı́a a un filtro paso-bajo analógico de 1 kHz. de ancho de banda. En la figura 1.7 se muestra un resumen de las relaciones entre espectros al filtrar señales analógicas de forma discreta. 11 1.3. Procesado discreto de señales continuas Xc (fc ) 6 1 @ @ @ −W 1/Ts @ 6 @ @ @ @ −1/Ts −1 @ @ @ @ −W −0,5 - fc W Xs (fc ) 1/Ts W 0,5 0 1 - fc - fd H(ejω ) 1 6 −1 −f1 f1 1 - fd Y (ejω ) @ @ −1 1/Ts 6 @ @ @ @ −f1 1 f1 - fd Ys (fc ) 6 Ts Hr (fc ) 1/Ts @ @ −1/Ts @ @ −f1 /Ts f1 /Ts @ @ 1/Ts - fc Figura 1.7: Relaciones de espectros en el filtrado discreto de una señal continua. Conviene recalcar que para que un sistema discreto produzca el efecto de un filtrado analógico, son necesarias dos cosas: Que no exista aliasing. Que el sistema discreto sea LTI. 12 CAPı́TULO 1. MUESTREO Nótese igualmente que la expresión (1.15) es válida únicamente en el margen |fc | < fs /2 que es donde la señal de entrada puede tener componentes espectrales no nulas para no tener aliasing. Un aspecto interesante es que la respuesta en frecuencia analógica equivalente depende de: La respuesta en frecuencia del filtro discreto. La frecuencia de muestreo. Este hecho puede ser usado, por ejemplo, para implementar filtrados analógicos diferentes (distintas frecuencias de corte) con un mismo filtro digital cambiando únicamente la frecuencia de muestreo. 1.4. Muestreo y reconstrucción de señales paso-banda Un tipo de señales especialmente útil en telecomunicaciones es el de las señales paso-banda. Algunos campos donde podemos encontrar estas señales son en radiocomunicaciones, multiplex por división en frecuencia, radar, . . . La figura 1.8 muestra una señal de este tipo. Dicha señal podrı́a muestrearse usando la misma regla aplicada para señales paso-bajo, a una frecuencia de muestreo que fuera el doble de la máxima frecuencia de la señal, es decir fs = 2f2 Sin embargo, esto no es lo más eficiente posible, pues si dicha frecuencia f2 es mucho mayor que el ancho de banda W = f2 − f1 (cosa que suele suceder en la práctica), la frecuencia de muestreo necesaria serı́a muy alta, lo que llevarı́a a los siguientes problemas: Tecnológico: Tal vez no sea posible el muestreo a la suficiente velocidad. Coste: Suponiendo que sea posible técnicamente, los convertidores rápidos son más caros. Volumen de información: Suponiendo que se pudiera realizar la conversión, la cantidad de muestras por segundo generadas harı́a su procesamiento difı́cil y costoso, cuando no imposible. La ineficiencia del muestreo se manifiesta en que en el espectro de la señal discreta resultante aparecerı́an amplios huecos. Vamos a ver en este punto dos técnicas que se utilizan para que la frecuencia de muestreo necesaria no sea tan grande. La idea subyacente en ambas es que la cantidad de información 13 1.4. Muestreo y reconstrucción de señales paso-banda Xc (fc ) 16 @ @ @ @ - f1 f0 f2 fc Figura 1.8: Espectro de una señal paso-banda. que transporta una cierta señal es proporcional a su ancho de banda y no a su frecuencia máxima. Cuando traducimos la frase anterior en términos de frecuencia de muestreo, diremos que la frecuencia de muestreo deberá ser proporcional a la cantidad de información de la señal y, por tanto, a su ancho de banda. Las muestras obtenidas contendrán toda la información de la señal paso-banda y, por ello, cabrá hacer con ellas todo tipo de demodulaciones, filtrados, etc. pero de forma discreta. 1.4.1. Muestreo de señales paso-banda como señales reales Consideremos las operaciones que se describen en la figura 1.9. La señal de entrada xc (t) corresponde con la señal paso-banda que deseamos muestrear (cuyo espectro se muestra en la figura 1.8). La señal x1 (t) es una señal pasobajo de ancho de banda W = f2 − f1 que puede muestrearse tal y como se vio en la sección 1.2. Nótese que en el esquema de dicha figura existe un preprocesado analógico previo al muestreo. El espectro de la señal x1 (t) se muestra en la figura 1.11. Puede observarse que dicha señal es paso-bajo y real. Es decir, podremos utilizar una frecuencia de muestreo: fs = 2 W = 2 (f2 − f1 ) (1.16) para que seamos capaces de recuperarla a partir de sus muestras. continuo xc (t) - × - Hlp (fc ) 6 cos 2πf1 t - discreto x1 (t) - C/D - x[n] 6 fs Figura 1.9: Diagrama de bloques para muestrear de forma eficiente una señal paso-banda como una señal real. 14 CAPı́TULO 1. MUESTREO Obsérvese que hemos muestreado una señal paso-banda con una frecuencia de muestreo igual (como mı́nimo) al doble de su ancho de banda. Para poder recuperar la señal analógica original, hay que conocer los siguientes elementos: La frecuencia de muestreo fs . Saber que no se ha producido solapamiento espectral al muestrear x1 (t). Las muestras x[n]. La frecuencia f1 que se utilizó en el mezclador previo al muestreo. La banda de frecuencias f1 -f2 ocupada por la señal original. Conociendo estos elementos, es posible recuperar la señal analógica original mediante el esquema que se muestra en la figura 1.12. Esta técnica de muestreo puede considerarse como el muestreo de una señal paso-banda real de frecuencia central mı́nima, de tal modo que la señal que se muestrea realmente, x1 (t), es, de hecho, una señal paso-bajo. 1.4.2. Muestreo de señales paso-banda como señales complejas Otra posibilidad para muestrear una señal paso-banda consiste en desplazar el espectro de la señal original xc (t) una cantidad f0 = (f1 + f2 )/2 y filtrar paso-bajo, tal y como se muestra en la figura 1.14. Recordemos que, filtrar una señal compleja, como x2 (t), con un filtro de respuesta impulsional real hlp (t), produce una señal compleja en la que la parte real de la salida es el resultado de filtrar la parte real de la entrada y lo mismo con la parte imaginaria. x2 (t) = (xc (t) e−jΩ0 t ) ∗ hlp (t) = = (xc (t) cos Ω0 t) ∗ hlp (t) − j (xc (t) sen Ω0 t) ∗ hlp (t) Hlp (fc ) 16 - f2 − f1 fc Figura 1.10: Filtro tras el mezclador previo al muestreo de la señal paso-banda. 15 1.4. Muestreo y reconstrucción de señales paso-banda X1 (fc ) 1/2 6 @ @ @ @ - fc f2 − f1 Figura 1.11: Espectro de x1 (t). La señal x2 (t) recibe el nombre de envolvente compleja y su espectro se muestra en la figura 1.17. La parte real de la envolvente compleja recibe el nombre de componente en fase y la parte imaginaria, el de componente en cuadratura. El módulo de x2 (t) recibe el nombre de envolvente de la señal xc (t) (y no depende de Ω0 ) mientras que la fase de x2 (t) recibe el nombre de fase instantánea y su derivada, frecuencia instantánea. Para recuperar xc (t) a partir de x2 (t) hay que deshacer los pasos hechos. En primer lugar, obtendremos x+ (t), señal compleja correspondiente a las frecuencias positivas de la señal paso-banda: x+ (t) = x2 (t) · ejΩ0 t - Continuo Discreto x[n] - (1.17) x1 (t) D/C 6 fs - × - Hbp (fc ) 6 - xc (t) cos 2πf1 t Figura 1.12: Recuperación de una señal paso-banda a partir de sus muestras. Hbp (fc ) 46 - f1 f2 fc Figura 1.13: Filtro para recuperar la señal paso-banda. 16 CAPı́TULO 1. MUESTREO A continuación obtendremos la parte correspondiente a las frecuencias negativas: x− (t) = x?+ (t) (1.18) para finalmente obtener la señal paso-banda original xc (t) = x+ (t) + x− (t) = 2 Re{x+ (t)} = = 2 ( Re{x2 (t)} cos Ω0 t − Im{x2 (t)} sen Ω0 t) (1.19) contı́nuo xc (t) - × - Hlp (fc ) 6 - discreto x2 (t) - C/D - x[n] 6 e−jΩ0 t fs Figura 1.14: Diagrama de bloques del muestreo de una señal pasobanda real como señal paso-bajo compleja. Las lı́neas gruesas representan señales complejas. El conversor C/D de señales complejas muestrea cada uno de los canales de entrada (parte real e imaginaria) a una frecuencia fs . xc (t) - × - Hlp (fc ) 6 − sen Ω0 t xc (t) Re{x2 (t)} - - Re{x[n]} 6 cos Ω0 t ? - × - Hlp (fc ) C/D fs ? - C/D - Im{x[n]} Im{x2 (t)} Figura 1.15: Idem a la figura anterior pero con tadas las señales reales. Nótese la existencia de dos canales, uno para la parte real y otro para la imaginaria. 17 1.4. Muestreo y reconstrucción de señales paso-banda Hlp (fc ) 16 - fc f2 − f1 2 Figura 1.16: Respuesta en frecuencia del filtro de las figuras 1.14 y 1.15. X2 (fc ) 16 - fc f2 − f1 2 Figura 1.17: Espectro de x2 (t). X+ (fc ) 16 - f1 f2 fc ? (−f ) X− (fc ) = X+ c 16 @ @ @ @ −f2 - fc −f1 Figura 1.18: Espectro de x+ (t) y x− (t). Frecuencias positivas y negativas respectivamente de xc (t). Dado que tanto la parte real como la imaginaria de x2 (t) son señales pasobajo reales, se puede muestrear cada una de ellas con una frecuencia de muestreo mı́nima igual al doble de su ancho de banda, es decir fs ≥ 2 f2 − f1 = f2 − f1 2 (1.20) 18 CAPı́TULO 1. MUESTREO Nótese que, dado que la señal x2 (t) es compleja, el número total de muestras por segundo será el doble de la cantidad de la ecuación (1.20), y coincide con el dado por la ecuación (1.16). Ello es consistente con que el número de muestras por segundo mı́nimo para representar una señal debe ser el mismo, se considere ésta real o compleja. 1.5. Cambio de la velocidad de muestreo En esta sección nos ocuparemos de un problema que aparece a menudo en la práctica. Supongamos que x1 [n] sea un conjunto de muestras de una señal continua xc (t), tomadas con una frecuencia de muestreo fs1 . Pretendemos encontrar otro conjunto de muestras x2 [n] que corresponda al muestreo de la misma señal analógica con una frecuencia de muestreo fs2 . Una posibilidad trivial para resolver el problema anterior consisitirı́a en recuperar la señal analógica a partir de las muestras x1 [n] para, a continuación, volver a muestrear la señal a la nueva frecuencia de muestreo. Esquemáticamente dicha posibilidad se muestra en la figura 1.19. No obstante, vamos a proponer una solución totalmente discreta al problema anterior, en la que no sea necesario pasar por la señal analógica. Abordaremos el problema por fases, estudiando primero los casos sencillos de relaciones enteras entre las frecuencias de muestreo: Caso en que fs2 = fs1 /M siendo M entero. Denominaremos este caso diezmado por un factor entero. Caso en que fs2 = L fs1 siendo L entero. Denominaremos esta operación interpolación por un factor entero. Caso en que fs2 = (L/M ) fs1 , es decir, que exista una relación racional entre las frecuencias de muestreo. Dependiendo de si L/M es mayor o menor que la unidad hablaremos de interpolación o diezmado por un factor racional. xc (t) x1 [n] - D/C 6 fs1 - C/D x2 [n] - 6 fs2 Figura 1.19: Solución trivial al problema del cambio de la frecuencia de muestreo. 19 1.5. Cambio de la velocidad de muestreo 1.5.1. Diezmado por un factor entero Si la frecuencia de muestreo final, es M veces menor que la inicial, es decir: fs2 = fs1 M el problema es relativamente sencillo. Bastará con tomar una de cada M muestras de la señal de entrada y copiarlas en la salida. Es decir el sistema con la relación E/S siguiente nos hará la tarea: x2 [n] = x1 [M n] (1.21) La figura 1.20 muestra la representación esquemática del sistema descrito por la ecuación (1.21). x1 [n] x2 [n] ↓M - - Figura 1.20: Representación gráfica de un diezmador por M . La figura 1.21 muestra la relación en el dominio del tiempo entre las muestras. Cuando se diezma una señal como se acaba de describir, existe un peligro que consiste en que es posible que aunque x1 [n] no contenga aliasing, dado que x2 [n] corresponde a una frecuencia de muestreo menor, es posible que x2 [n] r ··· x [n] r r r 1 6 r r r r r r r r ··· 6 - r r ··· r 1 2 x2 [n] r 6 r 3 4 5 r n ··· r 3 - 1 2 r n Figura 1.21: Efecto de un diezmador por M = 2 en el dominio del tiempo. 20 CAPı́TULO 1. MUESTREO x1 [n] - H(ejω ) - ↓M x2 [n] - Figura 1.22: Filtrado previo necesario antes del diezmador. sı́ que tenga aliasing. De hecho, para que al diezmar por M no existiese aliasing, el ancho de banda de la señal original W deberı́a ser: fs2 fs1 = 2 2M Normalmente se cumplirá únicamente que W < fs1 /2, por lo que será necesario realizar un filtrado paso-bajo digital previo de la señal x1 [n] antes de ser diezmada. Para determinar la frecuencia de corte discreta necesaria es preciso conocer: W < La frecuencia de corte analógica equivalente necesaria: fs1 /2M La frecuencia de muestreo a la que trabajará el filtro: fs1 La frecuencia de corte discreta será pues 1 fs1 /2 M = fs1 2M Por tanto el filtro digital que se debe anteponer antes del diezmado será un filtro digital paso-bajo de frecuencia de corte 1/2M . En la figura 1.22 se muestra el diezmador con el filtro paso-bajo discreto previo para evitar el aliasing. Es posible encontrar también una relación en el dominio de la frecuencia entre la entrada y la salida de un diezmador (sin filtro) como el de la figura 1.20. Para ello, si suponemos que x1 [n] y x2 [n] corresponden a sendos muestreos de una misma señal analógica podemos escribir: 1 X fd − n X1 (e ) = Xc Ts1 n Ts1 (1.22) 1 X fd − r Xc Ts2 r Ts2 (1.23) jω X2 (ejω ) = En esta última expresión, vamos a hacer r = i + k M con 0 ≤ i < M y k variando de −∞ a ∞. El sumatorio se convierte en el siguiente doble sumatorio: X2 (ejω ) = −1 1 X fd − (i + k M ) 1 MX Xc M i=0 Ts1 k Ts1 M 21 1.5. Cambio de la velocidad de muestreo X1 (ejω ) A A ··· 6 A A A A A A A W Ts1 ω X1 (ej M ) -1 -2 A A A 1 @ @ @ @ W Ts1 M 1 ω−2π X1 (ej M ) -1 -2 ··· - fd A 2 6 @ @ @ @ ··· A A 2 ··· @ - fd 6 @ @ ··· @ @ @ -1 -2 ··· @ - fd 1 2 @ @ @ ··· @ @ - fd X2 (ejω ) @ @ ··· @ -2 6 @ @ @ @ @ @ @ 1 -1 2 Figura 1.23: Relación entre espectros en el diezmado por M = 2. −1 1 MX 1 X X2 (e ) = Xc M i=0 Ts1 k jω −k ! Ts1 −1 ω−2πi 1 MX X1 ej M M i=0 X2 (ejω ) = 1.5.2. fd −i M (1.24) Interpolación por un factor entero En este caso se pretende que la frecuencia de muestreo de salida sea un múltiplo entero de la de la entrada, es decir: fs2 = L fs1 Ahora no puede aparecer aliasing por el cambio de frecuencia de muestreo, pues la nueva frecuencia de muestreo es mayor. Consideremos inicialmente un x1 [n] - ↑L y[n] - Figura 1.24: Diagrama de un insertador de ceros. 22 CAPı́TULO 1. MUESTREO r x1 [n] r ··· 6 r r r ··· r 3 - 1 r y[n] r ··· r r r r 6 2 r r r r ··· r r 1 r 6 5 r r 2 3 4 n r n Figura 1.25: Relación entre muestras en un insertador de ceros por L = 2. sistema denominado insertador de ceros por L cuya relación E/S es: ( y[n] = x1 [n/L] n múltiplo de L 0 resto (1.25) Conceptualmente este sistema inserta L − 1 ceros entre cada dos muestras de la señal de entrada. La figura 1.25 ilustra el funcionamiento del insertador de ceros en el dominio del tiempo. El espectro de la señal rellenada por ceros vale: Y (ejω ) = X y[n] e−jωn = n X x1 [n] e−jωnL = X1 (ejωL ) (1.26) n Es decir, corresponde a una compresión del espectro por un factor L. Para lograr la señal interpolada x2 [n] (ver figura 1.26) deberemos: Eliminar las repeticiones de los espectros centradas en 1/L, 2/L, . . . , L− 1/L Multiplicar la repetición centrada en el origen por L. Ambos efectos se pueden lograr filtrando la señal y[n] con un filtro pasobajo de respuesta en frecuencia: ( jω H(e ) = L |fd | < 1/2L 0 1/2L < |fd | < 0,5 (1.27) 23 1.5. Cambio de la velocidad de muestreo X (ejω ) :6 1 fs1 @ @ @ @ @ @ @ @ ··· @ -2 -1 fs1 A A ··· A A A A A A -2 A A A @ @ 1 2 A A A A A A A A A A A A A -1 1 2 A A A A ··· @ - fd @ 1/2 X1 (ejωL ) X z6 X A A A @ @ ··· - fd X2 (ejω ) A A ··· :6 fs2 A A A A -2 A A -1 A 1/2L A 1 ··· A 2 - fd Figura 1.26: Relaciones en el dominio de la frecuencia en la interpolación. Un aspecto importante a tener en cuenta es que la interpolación de señales no crea nueva información, pues las nuevas muestras de x2 [n] se obtienen a partir de las originales de x1 [n]. Dicho de otro modo las muestras interpoladas constituyen información redundante. x1 [n] - ↑L - H(ejω ) x2 [n] - Figura 1.27: Diagrama de bloques de la interpolación de señales. Interpoladores lineales Acabamos de ver que para interpolar una señal, es necesario realizar un relleno por ceros y un filtrado paso-bajo con un filtro de respuesta impulsiva: h[n] = sinc n L Dicho filtro es irrealizable y, por tanto, se hace necesaria una aproximación a dicha respuesta impulsiva. Un filtro que se suele utilizar a menudo es el que se 24 CAPı́TULO 1. MUESTREO conoce como interpolador lineal. Se conoce con este nombre porque las nuevas muestras se calculan trazando lı́neas rectas entre las disponibles. La figura 1.28 ilustra el proceso de interpolación lineal. Cabrı́a preguntarse qué relación existe entre dicha interpolación y la ideal con filtro paso-bajo. La respuesta es que la interpolación lineal equivale a un relleno por ceros seguido de un filtro de respuesta impulsiva triangular, como la mostrada en la figura 1.29. La figura 1.30 compara la respuesta en frecuencia del interpolador ideal con el lineal. Podemos apreciar las siguientes diferencias: El interpolador lineal atenúa la parte alta de la banda de paso del ideal. El interpolador lineal no elimina totalmente las repeticiones intermedias de la figura 1.26, excepto en torno a las frecuencias k/L, donde la atenuación es alta. r x1 [n] r ··· 6 r r r ··· r 3 - 1 r ··· x2 [n] ? r ? r 6 r ? ? 1 r 2 2 ? 3 r ··· r 4 n ? 5 6 r n Figura 1.28: Relación entre muestras en un interpolador lineal por L = 2. Los valores interpolados se representan con ∗. h[n] 1 r6 r r r r r r r r r r r r r r- L n Figura 1.29: Respuesta impulsiva de un interpolador lineal. 25 1.5. Cambio de la velocidad de muestreo Figura 1.30: Comparación de los módulos de las respuestas en frecuencia del filtro de un interpolador ideal y de uno lineal. Por todo ello, debe concluirse que en el caso en que la señal a interpolar tenga su espectro concentrado en torno a fd = 0, es decir, esté sobre-muestreada, el interpolador lineal constituye una buena aproximación al interpolador pasobajo ideal. 1.5.3. Cambio de la frecuencia de muestreo por un factor racional A veces, el factor de cambio de frecuencia no es entero. Supongamos que deseamos realizar el cambio de frecuencia: fs2 = L fs1 M Es fácil darse cuenta de que concatenando una interpolación y un diezmado por factores enteros L y M respectivamente se logra el objetivo deseado. Cabrı́a la duda de qué debe realizarse antes, la interpolación o el diezmado. Para responder a esta pregunta hay que recordar que el diezmado destruye información, hasta dejar la señal analógica equivalente con un ancho de banda fs1 /(2M ). Como dicho ancho de banda será menor que el de la señal final, se hace necesario realizar primero la interpolación y luego el diezmado. Es decir, primero se realizará lo mostrado en la figura 1.27, seguido de lo mostrado en la figura 1.22. Al concatenar estas operaciones, aparecen dos filtros en cascada 26 CAPı́TULO 1. MUESTREO que pueden sustituirse por un único filtro cuya respuesta en frecuencia sea el producto. El diagrama global para el cambio de frecuencia de muestreo por un racional se muestra en la figura 1.31. La respuesta en frecuencia del filtro paso-bajo de dicha figura es: Ancho de la banda de paso: mı́n (0,5/M, 0,5/L). Ganancia en la banda de paso: L. Es importante notar que, de las tres frecuencias de muestreo presentes en la figura 1.31, el filtro trabaja a la más alta de todas, es decir a fs1 L. x1 [n] - ↑L - H(ejω ) - ↓M x2 [n] - Figura 1.31: Diagrama de bloques de cambio de frecuencia de muestreo por un racional. Consideraciones prácticas Acabamos de ver un procedimiento para el cambio de la frecuencia de muestreo por un factor racional. Sucede a menudo que aunque la frecuencia de muestreo no cambie por un factor excesivamente grande, los términos M y L de la fracción, pueden serlo. Hemos comprobado que si se intenta el cambio de frecuencia de muestreo en una única etapa, la frecuencia de trabajo del filtro necesario puede ser muy alta. Para solucionar el problema hay que hacer lo siguiente: Factorizar M y L. Realizar cambios de frecuencia de muestreo por factores de muestreo racionales resultado de agrupar los factores de M con los de L, de forma que la frecuencia de muestreo en ningún punto de la cadena sea menor que mı́n(fs2 , fs1 ). Veamos un ejemplo de lo que estamos diciendo. Supongamos que desamos cambiar de la frecuencia normalizada del CD 44.1 kHz. a una de las frecuencias 27 1.5. Cambio de la velocidad de muestreo normalizadas del DAT 48 kHz. Tendremos fs2 = 48000 = fs1 L L = 44100 M M es decir L 480 160 = = M 441 147 Si intentáramos realizar el cambio directamente, el filtro intermedio trabajarı́a a una frecuencia de 44100 × 160 ≈ 7 106 hz. Factorizando M y L se obtiene: 160 2×2×2×2×2×5 = 147 3×7×7 Serı́a posible por ejemplo la siguiente factorización: 160 845 = 147 737 De este modo, la primera etapa cambiarı́a la frecuencia de muestreo por 8/7 siendo la frecuencia de trabajo del filtro de fs1 ×8. La segunda etapa, cambiarı́a la frecuencia de muestreo por 4/3 y su correspondiente filtro trabajarı́a a fs1 × 8/7 × 4 y, por último, el filtro de la tercera etapa trabajarı́a a una velocidad fs1 × 8/7 × 4/3 × 5 1.5.4. Aplicación del diezmado a la conversión C/D Supongamos que tenemos una señal continua paso-bajo xc (t) de la cual nos interesa el margen de frecuencias 0–W . Dicha señal puede tener un ancho de banda mayor o bien estar inmersa en un fondo de ruido de banda ancha. Dado que únicamente estamos interesados en el margen 0–W tratarı́amos de muestrear dicha señal con una frecuencia de muestreo fs = 2W . Sin embargo, para poder hacer esto deberı́amos realizar un filtrado previo analógico para prevenir el aliasing. Dicho filtro tendrı́a que tener unas bandas de transición muy estrechas. Supongamos que no se quisiera utilizar filtros analógicos de bandas de transición muy estrechas (orden alto). Vamos a ver como el diezmado nos puede solucionar el problema. Supongamos que la señal a muestrear xc (t) sea la mostrada en la figura 1.32 y que el filtro antialiasing utilizado sea el de la misma figura. Nótese que este filtro analógico tiene bandas de transición suaves. La señal a la salida del filtro será la yc (t) de la figura. Ésta es la señal que muestrearemos. Es fácil darse cuenta de que si muestreamos con una frecuencia de muestreo fs1 > f1 + W no se nos va a producir solapamiento espectral en la banda 28 CAPı́TULO 1. MUESTREO 0–W . Una vez obtenidas las muestras, podremos filtrar digitalmente con un filtro paso-bajo cuya frecuencia de corte sea W/fs1 , habiendo eliminado de este modo el aliasing. Para lograr las muestras a una velocidad fs = 2W sólo resta realizar un diezmado. Elegiremos fs1 = L fs : f1 + W = L2W → f1 = W (2L − 1) A medida que L es mayor, el filtro analógico tiene bandas de transición más anchas (es más fácil de construir), pero por contra el muestreo deberemos realizarlo a una velocidad mayor, lo que implica, además, que el filtro digital previo al diezmador trabaja más deprisa y tiene más coeficientes. Xc (fc ) 6 L L L L L - W Haa (fc ) fc 6 @ @ @ @ W Yc (fc ) f1 6 L L L L XX XX L W f1 - fc - fc Figura 1.32: Aplicación del diezmado a la conversión C/D. Espectros de las señales involucradas. 1.5.5. Aplicación de la interpolación a la conversión D/C En los apartados 1.2.1 y 1.2.2 hemos visto como se puede recuperar una señal a partir de sus muestras. Vimos que era necesario el uso de un filtro analógico de reconstrucción. Dicho filtro deberı́a tener las siguientes caracterı́sticas: 29 1.5. Cambio de la velocidad de muestreo Banda de paso constante entre fc = 0 y fc = W , siendo W el ancho de banda de la señal analógica. Atenuación infinita (o muy grande) a partir de fc = fs − W . Banda de transición entre W y (fs − W ). Si fs ≈ 2 W , la banda de transición resultante puede ser muy estrecha, lo que requerirı́a de un filtro analógico de orden alto. Con el fin de que el filtro analógico sea más sencillo, lo que se hace a veces es elevar la frecuencia de muestreo digitalmente justo antes de la conversión. En aplicaciones de audio las interpolaciones se hacen por factores tı́picamente entre 4–8, hablándose de convertidores four times oversampling DAC. Interpolar la señal antes de su conversión también reduce el efecto del muestreo y retención. La máxima atenuación por muestreo y retención se produce a la frecuencia W y tiene un valor: W α(dB) = −20 log sinc fs A medida que la frecuencia de muestreo aumenta (gracias a la interpolación), dicha atenuación máxima disminuye. La tabla siguiente muestra los valores de atenuación para distintos factores de interpolación: L 1 2 4 8 α(dB) 3.9 0.9 0.2 0.06 Además, los nulos del sinc producen una atenuación mı́nima de las diferentes repeticiones espectrales de: fs − W α(dB) = −20 log sinc fs L 1 2 4 8 α(dB) 3.9 10.45 17.13 23.58 30 CAPı́TULO 1. MUESTREO 1.6. Introducción a la codificación de señales. Codificación PCM En los apartados anteriores, hemos estudiado cómo se puede pasar de una señal continua a una señal de tiempo discreto. Es interesante destacar que los valores de las muestras tenı́an para nosotros precisión infinita, es decir, considerábamos que eran números reales. Sin embargo, cuando se desea transmitir, almacenar o procesar las señales de forma digital, es necesario obtener una representación binaria de los valores de dichas muestras. En este apartado trataremos este aspecto. La codificación PCM (Pulse Code Modulation) o MIC (Modulación por Impulsos Codificados) constituye la técnica más sencilla de codificación de una señal. Vemos un diagrama conceptual de este tipo de codificación en la figura 1.33. En dicha figura se pueden distinguir las siguientes operaciones: Muestreo lo visto en la parte precedente del tema. Cuantificación Consiste en dividir el eje real de amplitudes en intervalos y determinar a cuál de ellos, k, pertenece la muestra. La figura 1.34 muestra la relación entrada-salida del cuantificador para el caso de un cuantificador uniforme, en el que todos los intervalos tienen el mismo ancho. Esta operación es irreversible, pues a partir del ı́ndice del intervalo k es imposible saber el valor de la muestra dentro del intervalo. Codificación consiste en asignar una palabra binaria para cada valor de k. Es un proceso reversible. Desde el punto de vista del procesado digital de la señal no tiene importancia la palabra binaria concreta que se use para representar a k, y se suele usar complemento a 2 o alguna otra representación de tamaño de palabra fijo. Sin embargo desde el punto de vista de la codificación es importante asignar palabras binarias más cortas a aquellos ı́ndices k más probables en aras a lograr un volumen medio de bits inferior. Los bits producidos por el codificador son los que fı́sicamente se almacenan, se manipulan por el hardware o se transmiten. - xc (t) C/D - x[n] Cuantif. - Codificación k - 1001101 · · · Figura 1.33: Diagrama de bloques conceptual de la codificación PCM. 31 1.6. Codificación de señales 8 6 4 k 2 0 −2 −4 −6 −8 −1.5 −1 −0.5 0 x 0.5 1 1.5 Figura 1.34: Relación entrada-salida de un cuantificador. 1.6.1. Recuperación de la señal El proceso global de recuperación de la señal se muestra en la figura 1.35. Tal y como acabamos de ver, en el sistema MIC se obtiene un número entero k por cada muestra de la señal x[n]. Dicho número entero se representa con una serie de bits en el codificador. Para recuperar (una aproximación de) la señal lo que se hace es invertir los pasos anteriores: Decodificación Consiste en obtener k a partir de los bits. Este proceso es exacto (si no hay errores de transmisión), es decir el ı́ndice obtenido es el mismo que se tenı́a en el codificador. Cuantificador inverso Asociado con cada intervalo de cuantificación, existe un valor reconstruido. Al valor reconstruido del intervalo k lo denominaremos yk . La figura 1.36 muestra la relación entre el número de intervalo k y su correspondiente valor reconstruido yk . En los cuantificadores - Decodif. 1001101 · · · - k Q−1 - xq [n] D/C - x0c (t) Figura 1.35: Diagrama de bloques conceptual de la decodificación PCM. 32 CAPı́TULO 1. MUESTREO 1.5 1 yk 0.5 0 −0.5 −1 −1.5 −8 −7 −6 −5 −4 −3 −2 −1 0 k 1 2 3 4 5 6 7 8 Figura 1.36: Relación entre ı́ndices k y valores reconstruidos yk en un cuantificador uniforme. uniformes, dicho valor suele coincidir con el centro del intervalo de cuantificación. Además en los cuantificadores uniformes existe una relación lineal k ↔ yk . Ello es importante de cara a procesar señales, pues se puede operar con los valores enteros k en vez de los valores reales yk . Al proceso k → yk se le suele llamar Cuantificador Inverso, y se representa como Q−1 , aunque realmente la cuantificación sea un proceso irreversible. Nótese que el proceso x[n] → k → yk hace que yk ≈ x[n]. Por ello se dice que yk es x[n]-cuantificado o abreviadamente xq [n]. Además es posible establecer la relación directa x → xq . En la figura 1.37 se muestra dicha relación global. En dicha gráfica se observa una zona de saturación y una zona con forma de escalera. La zona de saturación viene definida por un umbral de amplitud máxima (Amáx ). Dicho umbral se obtiene fácilmente a partir de la gráfica de la figura 1.38 que muestra el error ε = xq [n] − x[n] cometido en el proceso de cuantificación; Amáx corresponde al punto en que el error excede el máximo error de un intervalo de cuantificación de los “normales”.2 2 En el caso de un número de intervalos de cuantificación par (caso habitual), el valor de saturación positivo y negativo es ligeramente diferente, debido a que el número de niveles de cuantificación en la parte positiva y negativa del eje difiere en uno. 33 1.6. Codificación de señales 1.5 1 xq 0.5 0 −0.5 −1 −1.5 −1.5 −1 −0.5 0 x 0.5 1 1.5 Figura 1.37: Relación entre x y su correspondiente valor cuantificado xq . Adviértase que la señal de salida no coincide con la de la entrada, incluso en ausencia de aliasing, debido a que x[n] 6= xq [n]. 1.6.2. El ruido de cuantificación Los valores cuantificados que resultan de la codificación/decodificación son: como: xq [n] = x[n] + ε[n] (1.28) Si el número de niveles de cuantificación es grande dicho error de cuantificación se suele modelar como un proceso aleatorio discreto llamado ruido de cuantificación. En el caso de un cuantificador uniforme tendremos las siguientes propiedades del ruido de cuantificación: La función densidad de probabilidad es uniforme entre −∆/2 y ∆/2. (Véase la figura 1.39) ∆ = uk − uk−1 = 2Amáx 2B ∀k 34 CAPı́TULO 1. MUESTREO 0.5 0.4 0.3 0.2 ε 0.1 0 −0.1 −0.2 −0.3 −0.4 −0.5 −1.5 Amax −1 −0.5 0 x 0.5 1 1.5 Figura 1.38: Error de cuantificación en función del valor de entrada. Sat. y0 y−5 y−4 y−3 y−2 y−1 y1 y2 y3 y4 r r r r r r r r r r u−5 u−4 u−3 u−2 u−1 u0 u1 u2 u3 u4 u5 Sat. - x Figura 1.39: Intervalos de cuantificación (uk+1 –uk ) y valores reconstruidos (yk ) en un cuantificador uniforme. La potencia es: σε2 = ∆2 12 Es ruido blanco, es decir, los valores de ruido de cuantificación en instantes diferentes de tiempo están incorrelados. De acuerdo con el modelo de ruido de cuantificación aditivo, cuando las muestras cuantificadas se pasan por el D/C, a la salida se obtiene la señal (supuesto que no existe aliasing): x0c (t) = xc (t) + r(t) donde r(t) es el ruido de cuantificación analógico añadido resultado de aplicar ε[n] al conversor D/C, y que es un proceso aleatorio de varianza σr2 = ∆2 /12 cuyo espectro es plano en la banda de −fs /2 a fs /2. 35 1.6. Codificación de señales Si suponemos que el cuantificador está normalizado, es decir Amáx = 1, podemos calcular la relación S/N del proceso codificación/decodificación PCM cuando se usan B bits como: S (dB) = 10 log N σx2 σr2 ! = 10 log σx2 ∆2 /12 ! = 10 log σx2 (2/2B )2 /12 ! = S (dB) = σx2 (dB) + 4,7 + 6B (1.29) N Nótese que la anterior expresión indica que por cada bit que añadamos, mejoramos en 6 dB la relación S/N (reducimos la potencia del ruido de cuantificación a la cuarta parte). La relación S/N depende también, como es lógico, de la potencia de señal que tengamos, pero es interesante el hecho de que aumentando el número de bits podamos hacer el ruido tan pequeño como se quiera (y la tecnologı́a permita en un momento dado). Pongamos un ejemplo numérico para ver valores tı́picos de estas relaciones S/N. Si suponemos que la señal xc (t) es un tono de amplitud 1/2, su potencia será 1/8. Por tanto tendremos: B 8 12 16 S/N (dB) 43.74 67.64 91.74 A la hora de procesar digitalmente muestras de señales, como ya se ha indicado, nosotros operaremos normalmente con los ı́ndices k de los intervalos de cuantificación. Interesará que exista una relación de proporcionalidad entre los ı́ndices k y los valores de reconstrucción asociados yk , para que operar con los ı́ndices k equivalga a procesar los valores yk escalados. Los cuantificadores que cumplen esto son los cuantificadores uniformes. Finalmente, conviene mencionar que los diagramas de bloques presentados en las figuras 1.33 y 1.35 son conceptuales y no corresponden al funcionamiento interno de ningún circuito. Igualmente, el modelo de ruido aditivo es válido para señales y conversores habituales, en los que el número de niveles de cuantificación es alto y la señal atraviesa muchos niveles de cuantificación entre dos muestras consecutivas. 1.6.3. Cuantificación no uniforme En el apartado anterior acabamos de ver los cuantificadores uniformes. Éstos presentan la particularidad de que todos sus intervalos de cuantificación son iguales. En realidad no existe a priori ninguna razón para elegir los intervalos de ese modo. 36 CAPı́TULO 1. MUESTREO 1.5 1 xq 0.5 0 −0.5 −1 −1.5 −1.5 −1 −0.5 0 x 0.5 1 1.5 Figura 1.40: Relación entrada salida en cuantificador no uniforme. Podrı́a pensarse en elegir los intervalos de cuantificación y los valores de reconstrucción correspondientes de forma óptima. Ello es posible si se conoce la función densidad de probabilidad de las muestras a cuantificar x[n]. La idea subyacente consiste en elegir intervalos de cuantificación más estrechos allá donde la señal x[n] sea más probable. No estudiaremos aquı́ el diseño de cuantificadores óptimos. Sin embargo, mencionaremos que, en el caso de las señales de voz, las amplitudes pequeñas son más probables que las grandes. Ello hace que en el campo de la telefonı́a se haya estandarizado el uso de dos cuantificadores no uniformes conocidos como ley µ (EE.UU. y Japón) y ley A (Europa), que hacen que en las amplitudes pequeñas los intervalos de cuantificación sean más pequeños. En la figura 1.40 se muestra el aspecto que presenta la relación entrada/salida de un cuantificador no uniforme. Compárese con la de la figura 1.37. Un cuantificador no-uniforme se puede considerar también como una ley de compresión seguida de un cuantificador uniforme y un expansor, como se muestra en la figura 1.41. Tanto la ley A como la ley µ utilizan 8 bits por muestra, y las correspondientes leyes de compresión son: Fµ (x) = Sig(x) log(1 + µ |x|) log(1 + µ) |x| ≤ 1 (1.30) 37 1.6. Codificación de señales FA (x) = 1 + ln A |x| Sig(x) 1 + ln A 1 ≤ |x| ≤ 1 A (1.31) A |x| Sig(x) |x| ≤ 1 + ln A 1 A Los valores de los parámetros normalizados en telefonı́a son: USA y Japón: µ = 100 Europa: A = 87,6 En ambos casos la varianza del ruido de cuantificación es menor para las muestras pequeñas que en el caso de un cuantificador uniforme del mismo número de bits, y más grande para las muestras grandes. Dado que una señal contendrá muestras pequeñas y grandes, dependiendo de la probabilidad de tener muestras grandes o pequeñas (es decir de la función densidad de probabilidad de la señal a codificar) el ruido de cuantificación será diferente. En el caso de la ley A, los intervalos de cuantificación más pequeños (en torno al origen) tienen la misma anchura que un cuantificador uniforme de 12 bits. Desde el punto de vista del tratamiento de las señales, es interesante destacar que el ı́ndice k no es proporcional al valor reconstruido. Ello hace que NO se deba operar con dichos ı́ndices para realizar filtrados, etc. La mayorı́a de los DSPs poseen instrucciones para convertir palabras de 8 bits correspondientes a cuantificaciones no uniformes a 16 bits uniforme. Compresor F (x) Expansor F −1 (x) 6 - x[n] 6 - - Cuantif. Unif. q- - - xq [n] Cuantif. No-Unif. -k Figura 1.41: Cuantificador no uniforme. 38 CAPı́TULO 1. MUESTREO Capı́tulo 2 Transformada Discreta de Fourier 2.1. Introducción Hasta ahora hemos visto que para realizar el análisis en frecuencia de una señal discreta x[n], se aplica sobre ella la Transformada de Fourier, obteniéndose X(ejω ). Dicha transformada es una función continua y por lo tanto no se puede manejar de forma discreta. Serı́a interesante disponer de una representación frecuencial discreta que nos facilitara la manipulación de los datos en el dominio de la frecuencia de forma discreta por medio de un procesador de señal u ordenador. En este capı́tulo se presenta la herramienta que nos permite representar el espectro de forma discreta, llamada Transformada Discreta de Fourier (DFT). Para el cálculo de dicha Transformada Discreta de Fourier existen algoritmos muy eficientes que permiten el cálculo de la misma con un número reducido de operaciones. Ello ha permitido que la DFT constituya una herramienta básica no sólo para el análisis frecuencial sino en numerosas aplicaciones. 2.2. Representación de Fourier de secuencias de duración limitada. La DFT Supongamos una secuencia de duración limitada x[n] tal que: ( x[n] = 6= 0 0 ≤ n ≤ N − 1 0 resto 39 40 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER Se define la Transformada Discreta de Fourier (DFT) de dicha señal como: X[k] = N −1 X x[n] e−j 2 πkn/N k = 0, . . . , N − 1 (2.1) n=0 y la Transformada Discreta de Fourier Inversa (DFT−1 ) como: −1 1 NX x[n] = X[k] ej 2 πkn/N N k=0 n = 0, . . . , N − 1 (2.2) Por tanto, la DFT puede considerarse como una transformación que toma las N muestras de una señal para dar lugar a N coeficientes X[k] y viceversa. Relación con la Transformada de Fourier La señal x[n] tiene una transformada de Fourier que viene dada por: X(ejω ) = ∞ X x[n] e−jωn = N −1 X n=−∞ x[n] e−jωn (2.3) n=0 donde la última igualdad se debe al hecho de que la señal x[n] es de duración limitada. Comparando la anterior ecuación con la definición de DFT se puede ver que: X[k] = X(ejωk ) donde ωk = 2πk , N fk = k , N 0≤k ≤N −1 (2.4) es decir los N valores de la DFT son muestras de la Transformada de Fourier X(ejω ) de la señal x[n]. Nótese que las muestras tienen un espaciamiento en frecuencia ∆f = 1/N , y que cubren de forma completa un periodo de la Transformada de Fourier Extensión de la señal con ceros Es interesante notar que una señal de duración real M muestras puede ser considerada también como de duración ficticia N , siendo N > M . Para ello basta considerar que las muestras en exceso son nulas. Esta observación nos permite, usando la DFT, calcular muestras de la Transformada de Fourier de una señal, con un espaciamiento arbitrariamente pequeño sin más que añadir ceros a la señal hasta completar una duración ficticia igual al número de muestras espectrales que deseemos. 41 2.3. Propiedades de la DFT La relación entre el valor del ı́ndice de la transformada y la frecuencia de la Transformada de Fourier es: k −→ fk = 2πk k −→ ωk = N N (2.5) Periodicidad de la DFT Si en la ecuación 2.1 intentamos calcular X[k] para un valor k ≥ N se puede comprobar que: X[k + N ] = X[k] 0≤k≤N Lo mismo sucede con la transformada inversa. En otras palabras, aunque la DFT se calcula normalmene en el intervalo 0 ≤ k ≤ N − 1, la expresión 2.1 se puede calcular para cualquier valor de k y resulta ser periódica de periodo N . Esta periodicidad tiene su reflejo en todas las propiedades de la DFT Notación Denotaremos como ((n))N , y leeremos n módulo N a lo siguiente: ((n))N = resto(n/N ) N − resto(|n|/N ) 0 n≥0 n < 0, |n| no múltiplo de N n < 0, |n| múltiplo de N Es fácil observar que se cumple siempre: 0 ≤ ((n))N ≤ N − 1 2.3. ∀n Propiedades de la DFT Linealidad Sean dos secuencias x1 [n] y x2 [n] de duraciones N1 y N2 .1 La secuencia suma de ambas, x3 [n], tendrá una duración N que será el máximo de N1 y N2 . La DFT de N puntos de x3 [n] será: x3 [n] = x1 [n] + x2 [n] DFTN ←→ X3 [k] = X1 [k] + X2 [k] 1 Las señales se consideran no nulas en el intervalo 0, . . . , N1 − 1 y 0, . . . , N2 − 1 respectivamente. 42 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER x[((n − 2))6 ] x[n] 6 r r r r r 6 r r r r r r r - 5 - n 2 5 n Figura 2.1: Desplazamiento circular de señales. siendo X1 [k] y X2 [k] las DFTs de (N = máx(N1 , N2 )) muestras de x1 [n] y x2 [n] respectivamente (aumentando con ceros la duración de la más corta). Desplazamientos circulares Sea x[n] una señal de duración finita N , definida entre 0 y N − 1. Se define el operador desplazamiento circular o cı́clico como: y[n] = x[((n − n0 ))N ] siendo n0 un desplazamiento entero. El efecto que causa un desplazamiento cı́clico sobre una señal se muestra en la figura 2.1. Puede observarse que: La señal desplazada cı́clicamente también es de duración finita N y no nula en el intervalo 0 ≤ n ≤ N − 1. El desplazamiento circular es similar a uno normal (llamado en este contexto lineal) salvo por el hecho de que las muestras que al desplazar se saldrı́an del intervalo 0 ≤ n ≤ N − 1 reaparecen circularmente por el otro extremo. Si la secuencia x[n] de duración N tiene por DFT de N puntos (DFTN ) a X[k] entonces: x[((n − n0 ))N ] DFTN ←→ e−j 2π N n0 k X[k] Nótese que los desplazamientos circulares únicamente afectan a la fase de la DFT. 43 2.3. Propiedades de la DFT x[n] 6 r r r r r x[((−n))6 ] 6 r r r r r r r - 5 - n 2 5 n Figura 2.2: Inversión circular de señales. Dualidad e inversión cı́clica Sea x[n] una señal de duración finita N , definida entre 0 y N − 1. Se define el operador inversión circular o cı́clica como: y[n] = x [((−n))N ] El efecto que causa una inversión cı́clica sobre una señal se muestra en la figura 2.2. Puede verse lo siguiente: La señal invertida circularmente también es de duración finita N y no nula en el intervalo 0 ≤ n ≤ N − 1. La inversión cı́clica conserva la muestra de n = 0 en su ubicación y el resto de muestras cambian de orden. La inversión circular de la inversión circular es la señal original, es decir si y[n] = x [((−n))N ] entonces y [((−n))N ] = x[n] Sea una secuencia x[n] de duración finita N tal que: x[n] entonces: X[n] DFTN −→ DFTN −→ X[k] N x[((−k))N ] es decir, si se calcula la DFT (directa) sobre el resultado de una DFT se obtiene la inversión circular de la señal original (salvo el factor de escala N ). Esta propiedad puede ser útil para calcular DFTs inversas mediante DFTs directas y un cierto reordenamiento del resultado. 44 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER Simetrı́as Sea una secuencia x[n] de duración N tal que: x[n] DFTN −→ X[k] entonces se tienen las siguientes relaciones: x[((−n))N ] x∗ [n] DFTN ←→ x∗ [((−n))N ] DFTN ←→ X[((−k))N ] X ∗ [((−k))N ] DFTN ←→ X ∗ [k] Por tanto, la DFT de una señal real que cumple que x[n] = x∗ [n] se tiene que X[k] = X ∗ [((−k))N ] Esta es la propiedad de simetrı́a conjugada usual en las transformadas de Fourier de señales reales. Para que la DFT de una señal sea real debe cumplirse x[n] = x∗ [((−n))N ], que en el caso de que la señal x[n] sea real implica x[n] = x[((−n))N ]. Modulación Sea una secuencia x[n] de duración finita N tal que: x[n] entonces: x[n] ej2πk0 n/N DFTN −→ DFTN ←→ X[k] X[((k − k0 ))N ] Convolución circular Sean dos secuencias x1 [n] y x2 [n] ambas de duración N (N = max{N1 , N2 }, completando con ceros la más corta si fuera necesario) cuyas DFTN son, respectivamente, X1 [k] y X2 [k]. Supongamos que calculamos: X3 [k] = X1 [k] X2 [k] k = 0, . . . , N − 1 45 2.3. Propiedades de la DFT y que obtenemos la secuencia x3 [n]: x3 [n] = DFT−1 (X3 [k]) n = 0, . . . , N − 1 La relación que existe entre x3 [n] y x1 [n] y x2 [n] es: x3 [n] = N −1 X x1 [m] x2 [((n − m))N ] (2.6) m=0 y recibe el nombre de convolución circular. Se suele escribir: x3 [n] = x1 [n] N x2 [n] En la figura 2.3 puede verse un ejemplo de convolución circular entre dos secuencias de duración limitada. El valor de N seleccionado para realizar la convolución es el máximo de las duraciones de ambas secuencias, en este caso N = 5. Dicho ejemplo puede compararse con la convolución lineal de ambas secuencias mostrada en la figura 2.4. Comparando ambas convoluciones podemos observar que la circular es distinta de la lineal por la aparición de las muestras que entran al intervalo de suma por la derecha debidas a la inversión ((−m))N , que coinciden con las que aparecen en la parte de m < 0 en la convolución lineal. Con respecto a la convolución circular cabe hacer una serie de observaciones: En general, la convolución circular de dos secuencias NO coincide con la convolución lineal. La convolución circular, en la práctica, no se calcula nunca aplicando la ecuación (2.6). En la práctica, la convolución circular se calcula siempre mediante DFT inversa del producto de dos DFTs. Ello se debe a la existencia de algoritmos muy eficientes de cálculo de la DFT que se estudian al final del tema (FFT). La convolución lineal es útil para calcular la salida de filtros. La convolución circular no sirve para nada. Podrı́amos resumir lo anterior diciendo que la convolución circular es algo que se calcula muy rápido pero no sirve para nada. 46 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER intervalo de suma - 6x1 [m] q q q q q - m x2 [m] 6 q q q q q - m x2 [((−m))N ] 6 q q q q q - m x2 [((1 − m))N ] 6 q q q q q - m Figura 2.3: Procedimiento de convolución circular módulo 5 entre dos secuencias. En realidad la convolución circular sı́ tiene una utilidad y ésta es que, bajo determinadas condiciones, puede lograrse que la convolución circular coincida con la convolución lineal (recordemos que en general esto no sucede). En ese caso se tiene la eficiencia computacional de la convolución circular y la utilidad de la lineal. En la siguiente sección nos ocuparemos de ver las condiciones para que esto suceda. 2.4. Relación entre convolución circular y lineal En el apartado anterior hemos visto que en general la convolución circular y lineal son diferentes. En este punto veremos que bajo ciertas condiciones se 47 2.4. Relación entre convolución circular y lineal intervalo de suma - 6x1 [m] q q q q q - m x2 [m] 6 q q q q q - m x2 [−m] 6 q q q q q q q q - m x2 [1 − m] 6 q q q q q q q - m Figura 2.4: Procedimiento de convolución lineal entre dos secuencias x1 [n] y x2 [n]. puede lograr que algunos e incluso todos los valores de la convolución circular sean idénticos a la convolución lineal. Esto nos será de utilidad en la siguiente sección en la que veremos cómo se pueden realizar filtrados (convoluciones lineales) usando convoluciones circulares (productos de DFTs, que se calculan con pocas operaciones). 48 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER 2.4.1. Condiciones para la igualdad entre convolución lineal y circular En este apartado vamos a establecer las condiciones bajo las cuales la convolución circular y la lineal coinciden. Supongamos que tenemos dos señales de duración finita: x[n] de duración L muestras. h[n] de duración P muestras. Llamemos N = máx(L, P ) y calculemos z[n] = x[n] N h[n] e y[n] = x[n] ∗ h[n]. En las figuras 2.3 y 2.4 podemos ver cuál es la causa de que convolución lineal y circular no coincidan. Las diferencias se deben a las muestras que intervalo de suma - 6x[m] q q q q q q q q q q L−1 N −1 - m h[m] 6 q q q q q q q q q q P −1 N −1 - m h[((−m))N ] 6 q q q q q q q q q q - N −1 N −P +1 m h[((1 − m))N ] 6 q q q q q q q q q q - m Figura 2.5: Determinación del periodo N para realizar la convolución circular. Hay que lograr que (N − P + 1) > (L − 1). N −1 49 2.4. Relación entre convolución circular y lineal aparecen en la parte derecha en torno a m = N − 1 en la convolución circular (figura 2.5). La idea para lograr que ambas coincidan es hacer que dichas muestras se multipliquen por cero. Para ello, deberemos calcular la convolución circular de un tamaño superior a L y P . El valor mı́nimo de N necesario es: N =L+P −1 (2.7) Ya hemos indicado que las convoluciones circulares se calculan en la práctica mediante DFTs. Por tanto, podremos resumir el procedimiento a seguir para realizar la convolución lineal mediante DFTs del siguiente modo: 1. Añadir ceros por la derecha a x[n] y h[n] hasta completar un tamaño N ≥ (L + P − 1) 2. Calcular las DFTN tanto de x[n] como de h[n]. 3. Realizar el producto elemento a elemento de los vectores X[k] y H[k], con k = 0, . . . , N − 1. 4. Calcular la DFT inversa del resultado del producto anterior. Para finalizar, en la figura 2.6 se muestra gráficamente el método anterior. h[n] - Rell. 0 - DFTN ? × x[n] - Rell. 0 - DFTN 6 -DFT−1 N x[n] - ∗ h[n] Figura 2.6: Método de cálculo de la convolución lineal usando DFT 50 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER 2.4.2. Coincidencias entre la convolución lineal y la circular En este apartado supondremos que tenemos dos señales: x[n] de duración L muestras. h[n] de duración P muestras. donde P < L. Supongamos ahora que calculamos c[n], la convolución circular módulo N de ambas señales, tomando N = L. c[n] = x[n] N h[n] Sea z[n] la convolución lineal entre x[n] y h[n]. z[n] = x[n] ∗ h[n] Para calcular dichas convoluciones, y teniendo en cuenta que x[n] sólo es no nula para 0 ≤ n ≤ N − 1 z[n] = x[n] ∗ h[n] = ∞ X x[m] h[n − m] == m=−∞ c[n] = x[n] N h[n] = N −1 X x[m] h[n − m] m=0 N −1 X x[m] h[((n − m))N ] m=0 donde podemos observar que la única diferencia consiste en que la inversión y los desplazamientos de la señal h son lineales para la convolución lineal y circulares para la convolución cı́clica. La figura 2.7 ilustra este hecho. En ella se puede apreciar que las diferencias surgen por las muestras de la derecha de la versión desplazada circularmente. Sin embargo, conforme n aumenta resulta que cada vez hay menos muestras en la parte de la derecha hasta que para n ≥ 2 (en este ejemplo), se da la siguiente situación h[2 − m] = h[((2 − m))N ] 0≤m≤N −1 A partir de ese momento, si seguimos desplazando hasta llegar a n = N − 1, las versiones desplazadas cı́clica y linealmente coinciden, y con ellas coinciden los correspondientes valores de la convolución lineal y circular. 51 2.4. Relación entre convolución circular y lineal intervalo intervalo de suma x[m] 6 q q q q q q q q q q de suma x[m] 6 q q q q q q q q q q - m m h[m] 6 q q q h[m] 6 q q q q q q q q q q - m P −1 q q q q q q q q q q - m m 6 q q q q q q q q q q q q - m h[1 − m] 6 q q q q q q q q q q q - m h[((2 − m))N ] 6 q q q - h[−m] h[((1 − m))N ] 6 q q q q q q q q q P −1 h[((−m))N ] 6 q - q q q q q q q q - m h[2 − m] 6 q q q q q q q q q q N −1 - m q q q q q q q N −1 a) - m b) Figura 2.7: Comparación entre los deplazamientos que suceden cuando la convolución circular se realiza de un tamaño igual a la longitud de la señal más larga. a) Convolución circular. b) Convolución lineal. Analizando un poco la figura, es fácil darse cuenta que en general los P − 1 primeros valores de la convolución circular no coinciden con los de la convolución circular, es decir z[n] 6= c[n] 0≤n<P −1 pero el resto sı́ que coinciden z[n] = c[n] P − 1 ≤ n ≤ N − 1 El hecho de que aunque no sean idénticas por completo, sin embargo tengan algunos valores comunes será utilizado por uno de los métodos que se detallan en la sección 2.5. 52 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER 2.5. Implementación de filtros LTI utilizando DFT Acabamos de ver cómo se puede utilizar la DFT para realizar convoluciones lineales. En esta sección veremos cómo utilizarla para filtrar señales. Consideraremos únicamente filtros FIR causales cuya respuesta impulsiva será de duración P muestras (definida entre n = 0, . . . , P − 1). Si la señal a filtrar x[n] es de duración finita, podemos aplicar lo visto en el punto anterior. No obstante, si la señal a filtrar tuviera duración infinita, el método anterior no podrı́a llevarse a la práctica. En general tendremos problemas cuando: La señal tenga un comienzo, pero no se sepa cuando termina. En ese caso deberemos esperar hasta que se dé por terminada x[n]. En aplicaciones interactivas (telefonı́a) esto puede ser inaceptable. Otro problema será el retardo: para calcular la DFT (y por tanto la convolución) se necesita que estén presentes todas las muestras de la señal a filtrar (x[n]), por lo que tendremos un retardo algorı́tmico igual a la duración de la señal. Para mitigar los anteriores problemas se utilizan dos métodos basados en las siguientes ideas: 1. Se divide la señal de entrada en trozos de duración razonable para que el retardo no sea muy largo. 2. Se calcula la salida para cada trozo. 3. Finalmente, se combinan las respuestas de cada trozo de forma adecuada. Los dos métodos para filtrar señales basándonos en la DFT se conocen como el método de solape- suma y el de solape-almacenamiento. En los siguientes apartados se describen los mismos. Método de solape-suma Los pasos a seguir para filtrar una señal x[n] de duración infinita (o desconocida) con un filtro h[n] de duración P utilizando este método son: 1. Se divide x[n] en trozos de longitud L, sin solape y sin dejar huecos. Es decir, el primer bloque (bloque 0) incluirá las muestras de n = 0, . . . , L − 1, el segundo (bloque 1) las muestras n = L, . . . , 2L − 1, y 53 2.5. Implementación de filtros LTI utilizando DFT x0 [n] x1 [n] x2 [n] - - L - L L y0 [n] + P −1 y1 [n] + y2 [n] Figura 2.8: Método Solape-Suma ası́ sucesivamente. Llamaremos xk [n] al bloque k-ésimo de muestras de entrada. Nótese que x[n] = ∞ X xk [n] k=0 2. Como cada bloque es de duración finita se calcula la respuesta a cada bloque utilizando el método visto en la sección 2.4. Para ello: Se desplaza previamente cada trozo al origen: x0k [n] = xk [n + kL] Se calcula y 0 [k] utilizando el esquema de la figura 2.6. Se desplaza la salida k-ésima a su posición. yk [n] = yk0 [n − kL] 3. La salida total se calcula como: y[n] = ∞ X yk [n] k=0 Dado que los bloques y[k] tienen una duración mayor que la de los bloques x[k], existirá un solapamiento entre las respuestas de los distintos bloques, lo que obligará a tener que realizar sumas de las colas de un bloque con el comienzo del siguiente. La cantidad de nuestras que se solapan es P − 1. (Ver figura 2.8). 54 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER Método de solape-almacenamiento La señal, como en el caso anterior, x[n] de duración infinita, se pretende filtrar con un filtro h[n] de duración P , para lo cual se debe seguir: 1. Se divide x[n] en trozos de longitud L, (en este método L > P ). Llamaremos a cada trozo xk [n] con k = 0, 1, . . . 2. Se calculan las DFTs de L puntos tanto del trozo k-ésimo como de h[n]. Se multiplican y se calcula la DFT inversa de L puntos. El resultado, como sabemos, es un vector de L muestras que contiene la convolución circular. zk [n] = xk [n] L yk [n] De cada vector zk [n]: Las primeras P − 1 muestras no coinciden con la convolución lineal y se desechan. Las muestras de n = P, . . . , L−1 coinciden con las de la convolución lineal. 3. Al tomar el bloque siguiente (k + 1), previendo que sus primeras P − 1 muestras de la convolución circular van a ser erróneas, se elige el bloque de modo que sus P −1 primeras muestras coincidan con las P −1 muestras finales del bloque k. Finalemente, se desplaza cada salida a su lugar correspondiente para componer la señal de salida. 4. De ese modo, la salida final, se obtiene yuxtaponiendo las muestras de cada bloque que coinciden con la convolución lineal. En el bloque inicial, como no hay bloque anterior con el que solapar las P − 1 primeras muestras, se anteponen P − 1 ceros. La figura 2.9 muestra el procedimiento. 2.6. Muestreo de la Transformada de Fourier Sea x[n] una secuencia cualquiera con transformada de Fourier X(ejω ). Dicha señal podrá tener duración finita o infinita. Supongamos ahora que tomamos N muestras equiespaciadas de su transformada de Fourier en fk = Nk (ωk = 2πk/N ) con k = 0, . . . , N − 1. El anterior conjunto de N muestras de la Transformada de Fourier podrı́amos suponer que son los coeficientes de la DFS de una señal periódica x̃[n]. Lo que 55 2.6. Muestreo de la Transformada de Fourier x[n] x0 [n] 0..,0 P− -1 x1 [n] - L x2 [n] z0 [n] @ @ z1 [n] @ @ z2 [n] @ @ y[n] Figura 2.9: Método Solape-Almacenamiento vamos a hacer en este apartado es encontrar la relación existente entre la señal x[n] cuya transformada de Fourier se muestrea y la señal periódica x̃[n] resultado del cálculo de la DFS−1 sobre las muestras de la Transformada de Fourier. Las ecuaciones involucradas se muestran a continuación. En primer lugar se calcula la TF de la señal x[n]: ∞ X jω X(e ) = x[m] e−jωm (2.8) m=−∞ En segundo lugar se muestrea dicha TF: X̃[k] = X(ejω ) ω=2πk/N = X(ej2πk/N ) (2.9) 56 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER Obsérvese que X̃[k] es periódica por serlo X(ej ω ). El periodo de X(ej ω ) es 2π y la separación entre muestras es 2π/N , con lo que el periodo de X̃[k] resultará ser N . Por otro lado la DFS−1 de los X̃[k] obtenidos resulta ser: x̃[n] = −1 1 NX X̃[k] ej2πkn/N N k=0 (2.10) Sustituyendo en la ecuación (2.10) la expresión de X(ej ω ) dada por la ecuación (2.8) se obtiene: x̃[n] = −1 X ∞ 1 NX x[m] e−j2πkm/N ej2πkn/N N k=0 m=−∞ Reordenando los sumatorios tenemos: ∞ X x̃[n] = x[m] m=−∞ −1 2π 1 NX ej N (n−m) k N k=0 donde: −1 2π 1 NX ej N (n−m) k = N k=0 ( 1 si n − m = r N 0 resto ) = ∞ X δ[n − m − rN ] r=−∞ obteniéndose finalmente: x̃[n] = ∞ X m=−∞ x[m] ∞ X δ[n − m − rN ] = x[n] ∗ δ[n − rN ] r=−∞ r=−∞ x̃[n] = ∞ X ∞ X x[n − r N ] (2.11) r=−∞ La ecuación (2.11) indica que la secuencia periódica x̃[n], que tiene como DFS los coeficientes obtenidos al muestrear la transformada de Fourier de la secuencia x[n], se obtiene repitiendo la propia secuencia x[n] cada N muestras y posteriormente sumando todas las repeticiones, como puede verse en el ejemplo de la figura 2.10. Podemos realizar las siguientes observaciones: Si la duración de la secuencia original x[n] es menor o igual que N (y por tanto finita) no habrá solape entre las distintas repeticiones. Si conocemos el intervalo en que la señal x[n] era no nula será posible recuperar dicha señal a partir de x̃[n]. 57 2.6. Muestreo de la Transformada de Fourier ... ... q q q x[n] 6 q q q q q q ... - n x[n] ∗ δ[n − 3] 6 q q q ... q q q q q q q q - n q ... x̃[n] 6 q q q q q q q q ... - n Figura 2.10: Obtención de x̃[n] a partir de x[n] (periodo N=3). Si la duración de la secuencia original x[n] es mayor que N habrá solape. En ese caso no es posible conocer la secuencia inicial a partir de x̃[n]. El razonamiento anterior nos viene a decir que si la señal es de duración finita y menor que el número de muestras tomadas de la TF, las muestras de la TF (coeficientes de la DFS de x̃[n]) contienen toda la información de x[n] (o de forma equivalente de su TF X(ejω )). Nótese la dualidad que existe entre el muestreo de la TF de una señal discreta y el muestreo de señales continuas en el tiempo: En el caso del muestreo en el dominio del tiempo, para que el muestreo de una señal continua x(t) contenga toda la información de la señal, la separación de las muestras mı́nima debe ser: ∆t = 1 Ancho del espectro donde ancho del espectro es la anchura del intervalo del eje de frecuencias (positivas y negativas) en que la TF de la señal es no nula. En el caso del muestreo de la TF, la separación entre muestras espectrales debe ser: 1 ∆f = Duración de la señal en ambos casos la separación entre muestras consecutivas debe ser menor que la inversa de la extensión de la señal en el dominio contrario al que se muestrea. 58 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER 2.7. Cálculo eficiente de la Transformada Discreta de Fourier (La FFT) La FFT es un método rápido de cálculo de la transformada discreta de Fourier que fue publicado en 1964 por Cooley y Tukey, el cual es ya conocido universalmente por sus siglas en inglés FFT (Fast Fourier Transform). La eficiencia de este método se muestra en la tabla 2.1, donde se compara el número de operaciones a realizar para implementar la DFT de N puntos por el método directo (N 2 ) y por el algoritmo rápido (N log2 N ), ası́ como la N2 eficiencia conseguida utilizando la FFT ( N log N ). 2 N 32 64 128 256 . . . 4096 Directo 1024 4096 16384 65536 . . . ≈ 17,106 FFT 160 384 896 2048 . . . ≈ 49,103 Eficiencia 6.4 10.7 18.3 32 . . . 341 Cuadro 2.1: Eficiencia de la FFT La FFT es un método muy eficiente de cálculo, como puede verse en la tabla 2.1, si se requieren los N valores de X[k]; si no, puede resultar ineficiente. En este capı́tulo veremos dos tipos de algoritmos para implementar la FFT: Algoritmos de diezmado en el tiempo. Algoritmos de diezmado en frecuencia. 2.7.1. Consideraciones previas Antes de proceder a describir los algoritmos realizaremos algunas consideraciones previas. Número de operaciones en el método directo En este apartado trataremos de establecer de forma aproximada el número de operaciones necesario para el cálculo de la DFT directa e inversa. La DFT 59 2.7. La FFT (o su inversa) consisten en calcular las expresiones de las ecuaciones (2.12 y 2.13), que se reproducen a continuación: Ecuación de Análisis (Transformada Directa) X[k] = N −1 X x[n] WNk n (2.12) n=0 donde WN = e−j2π/N Ecuación de Sı́ntesis (Transformada Inversa) x[n] = −1 1 NX X[k] WN−k n N k=0 (2.13) Ası́, según la ecuación (2.12), para implementar la DFT por el método directo, para cada valor de k (o para cada n si se trata de la DFT inversa) se deben realizar N productos complejos y N − 1 sumas complejas, por lo que en total, el número de operaciones a realizar será: Nvalores de k Nproductos complejos + (N − 1)sumas complejas 2 Num. de ops. = Nproductos complejos + N (N − 1)sumas complejas Los productos complejos tienen mayor carga computacional2 , por lo que para medir el número de operaciones se mide el número de productos complejos necesarios, que en el caso del cálculo de la DFT es N 2 . Por otro lado, el número de operaciones reales que habrá que realizar siempre será proporcional al número de productos complejos, ya que: 2 2 2 Num. de ops. ≈ 4 Nproductos reales +4 Nsumas reales ∝ Nproductos complejos 2 Sean dos números complejos z1 = a + j b y z2 = c + j d, el número de operaciones reales necesarias para realizar su suma es: z1 + z2 = (a + c) + j (c + d) −→ 2 sumas reales y para calcular su producto: z1 × z2 = (ac − bd) + j (ad + bc) −→ 4 productos reales y 2 sumas reales 60 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER Propiedades de las exponenciales complejas Las propiedades de las exponenciales complejas a usar para disminuir el número de operaciones necesarias son: Simetrı́a conjugada. k (N −n) WN = WN−k n = (WNk n )∗ Periodicidad en n y en k. k (n+N ) WNk n = WN (k+N ) n = WN Si N par, entonces: r+N/2 WN = −WNr WN/2 = WN2 Transformada inversa En el resto del tema, sólo desarrollaremos los distintos tipos de algoritmos para el cálculo de la DFT, ya que las estructuras necesarias para implementar la DFT inversa son similares (únicamente se diferencian en los coeficientes multiplicativos). Además, la DFT inversa se puede incluso calcular utilizando el algoritmo rápido de cálculo de la DFT ya que hay relaciones entre ellas que nos permiten hacerlo. Como ejemplo, presentaremos dos formas de relacionar ambas transformaciones: 1. DFT y DFT inversa se diferencian únicamente en el factor 1/N y en 2π el signo de la exponencial ej N k , como puede observarse comparando las ecuaciones de análisis y sı́ntesis (2.12 y 2.13). Por tanto, se podrı́a realizar la DFT inversa usando una FFT y utilizando la expresión (2.14), resultando un algoritmo cuyo diagrama de bloques se muestra en la figura 2.11. !∗ −1 1 NX ∗ −j 2Nπ n k x[n] = X [k] e (2.14) N k=0 2. Aplicando la propiedad de la dualidad de la DFT. Si x[n] DFT −→ X[k] 61 2.7. La FFT entonces DFT −→ X[k] N x[((−n))N ] 0≤n≤N −1 Basándonos en esta expresión podemos obtener x[n] utilizando un algoritmo FFT al que se introduce como entrada los coeficientes de la DFT (X[k]), simplemente reordenando el resultado y multiplicando las muestras de salida por un factor 1/N . 2.7.2. Algoritmos de diezmado en el tiempo En esta sección se van a explicar el primer tipo de algoritmos FFT, los de diezmado en el tiempo. Estos algoritmos, al igual que los de diezmado en frecuencia que veremos en la sección 2.7.3, son más eficientes si la DFT a calcular es de N puntos, con N potencia de 2 (N = 2υ υ ∈ Z). Sin embargo, en la sección 2.7.5 veremos una generalización de los mismos para el caso en que N no sea potencia de 2. Los algoritmos de diezmado en el tiempo se basan en descomponer x[n] en subsecuencias recursivamente, calcular las DFTs de cada subsecuencia y combinarlas para componer la DFT de subsecuencias mayores, hasta llegar a la secuencia x[n] de N puntos. Tomando como partida la ecuación de análisis de la DFT, X[k] = N −1 X x[n] WNk n n=0 se separa el sumatorio en términos de n par e impar, resultando: X[k] = X n N 2 = par N 2 x[2 r] WN2 r k r=0 X[k]- ( )∗ n −1 X X x[n] WNk n + - FFT + x[n] WNk n = impar −1 X (2 r+1) k x[2 r + 1] WN r=0 - ( )∗ - 1 N x[n]- Figura 2.11: FFT inversa usando la FFT directa. 62 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER x[0] b - 0 x[2] b - 1 G[0] 0 - b 1 DFTN/2 x[4] b - 2 2 x[6] b - 3 3 x[1] b - 0 0 x[3] b - 1 1 DFTN/2 x[5] b - 2 2 x[7] b - 3 3 b X[0] @ WN0 b b @ - G[1] X[1] @ @ WN1 @ b b @ - G[2] @ X[2] @ @ @ 2 R @ W @ @ N b X[3] b @ - G[3] @ - @ @ @ @ R @ @ WN3 @ @ @ @ @ @ @ @ @ R @ @ @ @ @ @ @ b X[4] - b @ @ @ @ H[0] 4 R @ @ @WN @ @ @ b X[5] - b @ @ H[1] 5 @ @WN @ @ b X[6] - b @ H[2] 6 @WN @ b X[7] - b - H[3] WN7 Figura 2.12: Algoritmo FFT de diezmado en el tiempo (N = 8): descomposición inicial. A a -a aB B =a×A A a - aB B=A A a - a C * C =A+B a B Figura 2.13: Sı́mbolos utilizados en los diagramas de bloques del algoritmo FFT. Si se tiene en cuenta que: WN2 = W N 2 63 2.7. La FFT resulta: N 2 X[k] = −1 X r=0 N 2 X rk x[2 r] W N + 2 −1 r=0 rk k x[2 r + 1] W N WN 2 llamando: N/2−1 G[k] = X rk x[2 r] WN/2 r=0 N/2−1 H[k] = X rk x[2 r + 1] WN/2 r=0 se obtiene la nueva ecuación de análisis reducida. X[k] = G[k] + H[k] WNk (2.15) Obsérvese que G[k] es la DFT de N/2 puntos de las muestras pares de x[n] y H[k] de las impares, sin embargo, la ecuación (2.15) es válida para k = 0 . . . N − 1. Para completar la DFT de N puntos se utiliza la propiedad de periodicidad, ya que ambas DFTs calculadas (G[k] y H[k]) son periódicas en k, de periodo N/2. La figura 2.12 muestra cómo serı́a el cálculo de la DFT realizada de la forma vista arriba para una secuencia de N = 8 muestras. El significado de los distintos elementos que aparecen en dicha figura están especificados en la figura 2.13. El número de operaciones necesarias para llevar a cabo la DFT de la forma mostrada en la figura 2.12 serán las necesarias para realizar dos DFTs de 4 puntos y 8 productos complejos. Generalizando a una DFT de N puntos, el número de operaciones (productos complejos) será: 2× N 2 2 +N =N + N2 productos complejos 2 es decir, las necesarias para realizar dos DFTN/2 más N productos. Si N > 2 −→ N + N 2 /2 < N 2 , ası́ pues, se demuestra que con este método el número de operaciones será menor (si N > 2) que con el método directo. El proceso puede repetirse para cada una de las DFTs de N/2 puntos de la figura 2.12 (en nuestro ejemplo, DFTs de 4 puntos como la de la figura 2.14), para ello, cada bloque de DFT de N/2 se divide en dos de N/4 seleccionando muestras pares e impares, resultando el diagrama de la figura 2.15. Si además, aplicamos a las exponenciales que aparecen en figura 2.15 la k propiedad WN/2 = WN2k , obtenemos la figura 2.16 en la que todas las exponenciales aparecen expresadas en la misma base (WN ). 64 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER Iterando, se podrı́a llegar a DFTs de dos puntos, como la de la figura 2.17. Si sustituimos en nuestro ejemplo cada bloque DFT de N/4 puntos por el grafo de la figura 2.17 se obtine el diagrama de bloques de la FFT de 8 puntos (figura 2.18). Como puede observarse en la figura 2.18, el algoritmo se divide en 3 etapas, en general en log2 N etapas. Cada una de ellas parte de N valores de entrada y obtiene N valores de salida, combinando los valores de entrada por medio de una serie de productos y sumas. x[0] c x[2] c - G[0] 0 0 - c @ DFTN/2 G[1] @ 1 1 - c @ - c X[0] WN0 c X[1] @ @ R WN1 @ @ @ @ @ @ R @ @ @ @ c X[2] c 0 0 @ H[0] 2 @ WN DFTN/2 @ @ c X[3] 1 1 - c @ x[1] c x[3] c - H[1] WN3 Figura 2.14: Algoritmo FFT de diezmado en el tiempo (N = 4). 65 2.7. La FFT x[0] c x[4] c - x[2] c x[6] c - x[1] c x[5] c - x[3] c x[7] c - 0 0 DFTN/4 1 1 - 0 0 DFTN/4 1 1 - 0 0 DFTN/4 1 1 - 0 0 DFTN/4 1 1 - c c cX[0] @ @ 0 0 R @ WN WN/2 @ @ c c c @ @ X[1] @ @ @ 1 1@ R @ WN @ @ @ WN/2 @ R @ @ @ @ @ @ @ @ @ @c cX[2] c @ @ 2 @ @ R @ W 2 WN @ @ N/2 @ @ @ @ @c c cX[3] @ @ 3 @ @ @ @ WN/2 3 @ @ @ WN @ R @ @ @ @ @ @ @ @ @ @ cX[4] c c @ @ 4 @ @ R @ W 0 R @ @ N @ @ WN/2 @ @ @ @ cX[5] c c @ @ @ @ @ @ WN5 1 R @ @ @ @ @ WN/2 @ @ @ @ @ @ @ @ @ cX[6] @c c @ @ 2 6 W @WN @ N/2 @ @ @ cX[7] @c c 3 WN/2 WN7 Figura 2.15: Algoritmo FFT de diezmado en el tiempo (N = 8): resultado de descomponer las DFTs de N/2 en DFTs de N/4. El número de operaciones (productos complejos) del algoritmo FFT, desarrollado hasta las DFTs de 2 puntos (como el de la figura 2.18) será:3 N productos × N umetapas = N × log2 N etapa En la figura 2.18 se observa también que el procedimiento para pasar de una etapa a la siguiente se basa en el grafo de la figura 2.19, el cual a partir de un par de valores de una etapa y dos exponenciales, potencias de WN con 3 El número de operaciones calculado es para cálculos generalizados, pero particularizando se podrı́an optimizar más, por ejemplo, eliminando la multiplicación por coeficientes que valen la unidad. Por contra, no están contabilizadas las operaciones de control (por ejemplo el control de las iteraciones de los bucles). No obstante la mayorı́a de los DSPs tienen arquitecturas que hacen que el coste computacional de estas operaciones sea nulo. 66 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER x[0] c x[4] c - x[2] c x[6] c - x[1] c x[5] c - x[3] c x[7] c - 0 0 DFTN/4 1 1 - 0 0 DFTN/4 1 1 - 0 0 DFTN/4 1 1 - 0 0 DFTN/4 1 1 - c c cX[0] @ @ 0 0 R @ WN @ WN @ c c c @ @ X[1] @ @ @ 1 2@ R @ WN @ @ @ WN @ R @ @ @ @ @ @ @ @ @ @c cX[2] c @ @ @ 4 @ R @ 2 W WN @ @ N @ @ @ @ @c c cX[3] @ @ @ @ @ 3 WN6 @ @ @ @ WN @ R @ @ @ @ @ @ @ @ @ @ cX[4] c c @ @ 4 @ @ R @ W 0 R @ @ N @ @ @ WN @ @ @ cX[5] c c @ @ @ @ @ @ WN5 2 R @ @ @ @ @ WN @ @ @ @ @ @ @ @ @ cX[6] @c c @ @ 6 4 WN @WN @ @ @ @ cX[7] @c c - WN6 WN7 Figura 2.16: Algoritmo FFT de diezmado en el tiempo (N = 8): dos etapas finales. x[0] b- b X[0] @ R @ 0 @ WN = 1 @ @ -@ X[1] b x[1] b N WN2 = −1 Figura 2.17: Algoritmo FFT de diezmado en el tiempo (N = 2). exponentes separados N/2, obtiene un par de valores de la etapa siguiente. El grafo de la figura 2.19 representa la estructura de cálculo más básica y recibe el nombre de mariposa, debido a su forma. 67 2.7. La FFT b X[0] b - b1 @ PP @ 0 0 @ R 0 W W N PPPN WN @ @ Pb b X[1] b - b- @ @ @ @ 1 WN4 R @ @ @ WN W2 @ R @ @ N @ @ @ @ @ @ @ b X[2] b b bP @ @ q PP 1 @ 4 R @ PP 0 @ @ @ 2 WN WN @ WN P P @ @ @ P @b- @ Pb b X[3] b @ @ @ 3 WN6 @ WN4 @ @ @ @ WN R @ @ @ @ @ @ @ -@ b bP b - b @ q PP - 1 @ @ @ W 4 X[4] R @ PP @ 0 @ R 0 W @ @ N PPPN WN @ @ Pb b b -@ b X[5] @ @ @ @ @ WN5 WN4 R @ @ 2 @ W @ @ N @ @ @ @ @ @ -@ b @ b bP b @ q PP 1 @ W 6 X[6] 4 PP @WN 0 W P @ N PPN @ @b Pb b -@ b X[7] x[0] bP q PP x[4] x[2] x[6] x[1] x[5] x[3] x[7] WN7 WN6 WN4 Figura 2.18: Algoritmo FFT de diezmado en el tiempo (N = 8). Si se tiene en cuenta que: N 2π N )2 WN2 = e−j( N r+ N 2 y por tanto el factor WN por: que aparece en la mariposa puede ser sustituido r+ N 2 WN = e−j π N = WN2 WNr = −WNr el cálculo de la mariposa de la figura 2.19 puede simplificarse, resultando la bb @ R @ WNr @ etapa m etapa m − 1 @ @ -@ b b r+ N 2 WN Figura 2.19: Grafo de una mariposa genérica de la figura 2.18. 68 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER de la figura 2.20, la cual requiere únicamente un producto complejo en lugar de dos para calcular los dos valores de salida. a- aR @ etapa m − 1 Wr a- N a a etapa m @ −1 - @a @ Figura 2.20: Grafo simplificado de una mariposa. Usando la estructura de mariposa simplificada de la figura 2.20 en el grafo del algoritmo de la FFT de 8 puntos de la figura 2.18, se obtiene el grafo de la figura 2.21. Con esta simplificación se consigue reducir el número de operaciones finales por un factor 2, ya que el número de productos complejos a realizar en cada mariposa se reduce a la mitad. Ası́, el número de operaciones totales queda reducido a: num. de ops = N log2 N 2 b- b x[0] b- bP qP P 1 P @ R @ P 0 PP @ W P b b b b N x[4] −1 @ R @ @ - b - b @ @ @ @ W0 @ bx[2] b- bP b- Nb qP P 1 @ −1 P PP @ PP bWN0 b WN2b @ bx[6] b- b - bX[0] @ b @ - bX[1] @ @ @ @ @ @ b - bX[2] @ @ @ @ @ b @ - bX[3] @ @ @ −1 −1 @ @ @ @@ @ @ @ @@ @ 0 @ @ @ R W @ @ bX[4] - b- N b x[1] b- bP @ b- b qP P 1 @ @ −1 @ P @ R @ @ P @ @ PP @ R WN0 b WN1 b P b- b @ - bx[5] b@ @@ -@ bX[5] @ −1 −1 @ R @ @ @@ @ @ @ @@ @ W2 0 @ @ @ R W @ @ bX[6] @ b- N b b- Nb x[3] b- bP qP P 1 @ @ −1 −1 @ P P @ @ W3 PP @ R WN0 b WN2b @ bX[7] @ b- N b P bx[7] b- −1 −1 −1 Figura 2.21: Algoritmo FFT de diezmado en el tiempo (N = 8) con mariposas simplificada. 69 2.7. La FFT 2.7.3. Algoritmos de diezmado en frecuencia Como hemos visto en el punto 2.7.2, los algoritmos de diezmado en el tiempo se basan en dividir la secuencia de entrada x[n] en subsecuencias, las cuales se vuelven a dividir hasta obtener una subsecuencia de tamaño 2. Luego, las DFTs de estas subsecuencias se combinan para obtener la DFT completa. Si en vez de dividir x[n] lo que se divide en subsecuencias es X[k], el algoritmo resultante recibe el nombre de algoritmo de diezmado en frecuencia. Sea x[n] una secuencia de N puntos, donde N es potencia de 2 y cuya DFT es X[k]: X[k] = N −1 X x[n] WNn k n=0 Si separamos X[k] en dos subsecuencias de coeficientes en función del valor de k, tenemos: k par −→ k = 2 r −→ X[2 r] = N −1 X x[n] WNn 2 r (2.16) n=0 k impar −→ k = 2 r + 1 −→ X[2 r + 1] = N −1 X n (2 r+1) x[n] WN (2.17) n=0 Empezaremos el estudio por los valores que ocupan una posición par en la secuencia de coeficientes de la DFT. Separando el sumatorio de la ecuación (2.16) en dos sumatorios tenemos: N/2−1 X[2 r] = X nr x[n] WN/2 + n=0 N −1 X nr x[n] WN/2 n=N/2 Arreglando el segundo sumatorio para que ambos tengan los mismos lı́mites, se obtiene: N/2−1 N/2−1 X[2 r] = X n=0 nr x[n] WN/2 + X n=0 r (n+N/2) x[n + N/2] WN/2 70 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER x[0] c - g[0] c - 0 0 - cX[0] c - g[1] - 1 1 - cX[2] - g[2] c - 2 2 - cX[4] - g[3] c - 3 3 - cX[6] 0 W -N 0 0 - cX[1] 1 W -N 1 1 - cX[3] @ @ x[1] c @ @ @ x[2] c @ @ @ @ @ @ x[3] c @ @ @ @ @ @ x[7] c @ @ @ @ @ @ @ @ R @ @ @ @ @ @h[0] c @ @ @ @ −1 @ @ @ R @ @ @ @ @ @h[1] c @ @ @ −1 @ @ R @ @ @ @ @h[2] c @ @ −1 @ @ R @ @ @h[3] c - @ x[6] c @ @ @ x[5] c @ @ @ x[4] c DFTN/2 @ @ @ @ −1 DFTN/2 2 W -N 2 2 - cX[5] 3 W -N 3 3 - cX[7] Figura 2.22: Algoritmo FFT de diezmado en frecuencia (N = 8): descomposición inicial. Aplicando la propiedad de periodicidad de las exponenciales N/2−1 N/2−1 X[2 r] = X 4 nr x[n] WN/2 + X rn x[n + N/2] WN/2 n=0 n=0 N/2−1 X[2 r] = X nr (x[n] + x[n + N/2]) WN/2 n=0 4 La exponencial es periódica, de periodo N/2, por lo que: r (n+N/2) WN/2 rn = WN/2 (2.18) 71 2.7. La FFT Procediendo de la misma forma con los coeficientes de orden impar, desarrollaremos la ecuación (2.17), obteniendo: N/2−1 X[2 r + 1] = X nr x[n] WN/2 WNn + n=0 N −1 X nr x[n] WN/2 WNn n=N/2 Arreglando los lı́mites de los sumatorios: N/2−1 X[2 r + 1] = X N/2 nr x[n] WN/2 WNn + n=0 X (n+N/2) r x[n + N/2] WN/2 n+N/2 WN n=0 Si aplicamos, ahora, la propiedad de periodicidad en N/2 de la exponencial: N/2−1 X[2 r + 1] = X N/2 nr x[n] WN/2 WNn + n=0 X n+N/2 nr x[n + N/2] WN/2 WN n=0 x[n] 6 HH H N/2 - n 6 - N/2 − 1 n +m- g[n] ? 6 HH H 6 - N/2 − 1 n 6 - N/2 − 1 n 6 H + ? m- h[n] − 6 HH - N/2 − 1 n Figura 2.23: Obtención de g[n] y h[n] a partir de x[n]. 72 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER n+N/2 Teniendo en cuenta que WN = −WNn : N/2−1 X[2 r + 1] = X N/2 nr x[n] WN/2 WNn + n=0 X nr x[n + N/2] WN/2 (−WNn ) n=0 Finalmente, se obtiene la expresión (2.19) que nos permite obtener los coeficientes impares de X[k] a partir de muestras de x[n] N/2−1 X[2 r + 1] = X nr (x[n] − x[n + N/2]) WN/2 WNn (2.19) n=0 Si en las ecuaciones (2.18) y (2.19) hacemos el cambio: x[n] + x[n + N/2] = g[n] y x[n] − x[n + N/2] = h[n] se obtienen dos nuevas ecuaciones (2.20 y 2.21) que nos sirven de base para el desarrollo del grafo que representa el algoritmo de diezmado en frecuencia. Gráficamente, puede observarse en la figura 2.23 cómo se obtendrı́an g[n] y h[n] a partir de x[n]. N/2−1 X[2 r] = X nr g[n] WN/2 (2.20) n=0 N/2−1 X[2 r + 1] = X nr (h[n] WNn ) WN/2 (2.21) n=0 El grafo para realizar la FFT de 8 puntos con un algoritmo de diezmado en frecuencia serı́a el de la figura 2.22. De la misma manera que en los algoritmos de diezmado en el tiempo, se podrı́a seguir iterando hasta descomponer X[k] en subsecuencias de 2 elementos. 2.7.4. Consideraciones adicionales sobre la FFT Una vez vistos los dos tipos de algoritmos para realizar la FFT, en este punto vamos a ocuparnos de una serie de consideraciones prácticas a tener en cuenta a la hora de implementarlos, como: Cantidad de memoria utilizada en la implementación del algoritmo, la cual se minimiza con los algoritmos en el sitio. 73 2.7. La FFT x[0] b- bP PP q b1 P P W 0 PPP bx[4] b- N b - b - b@ R @ - bb @ −1 @ R @ @ @ @ 0 @ @W @ bx[2] b- bP b- Nb qP P @ −1 1 P P @ W 0 PPP bWN2 b @ bx[6] b- N b - b - bX[0] @ - bX[1] b @ @ @ @ @ @ @ b - bX[2] @ @ @ @ @ - bX[3] b @ @ @ @ @ −1 −1 @ @ @ @ @ @ @ @ @ @ 0 @ @ @ @ R @ W @ bX[4] b- b - b- N b @ x[1] b- bP qP P @ 1 @ @ −1 @ P R @ @ P @ @ @ R @ W 0 PPP b- b @ WN1 b @ @ bX[5] - b@ x[5] b- N b @ @ @ −1 −1 @ R @ @ @ @ @ @ @ @ @ 0 2 @ @ @ @ R @ W W @ b- N b @ bX[6] x[3] b- bP b- Nb qP P @ 1 @ @ −1 −1 P P @ @ @ R @ W 0 PPP bWN2 b WN3 b @ b@ bX[7] x[7] b- N b −1 −1- −1 - etapa 1 etapa 2 etapa 3 Figura 2.24: Algoritmo FFT de diezmado en el tiempo (N = 8) con mariposa simplificada. Ordenación de los datos de entrada al algoritmo. Formas alternativas de realizar el algoritmo FFT. Minimización de los cálculos de las exponenciales involucradas en el proceso utilizando distintas estrategias. Algoritmos en el sitio El diagrama de flujo de la FFT (figura 2.21) representa el algoritmo a implementar. Dentro de este grafo aparecen una serie de nodos que representan las variables necesarias para realizar el programa, es decir, la cantidad de almacenamiento necesario. En un grafo como el de la figura 2.24 se observa que el algoritmo se divide en υ = log2 N etapas, en nuestro ejemplo el número de etapas es 3. Cada etapa obtiene N complejos de salida (8 en el ejemplo), a partir de otros N complejos de entrada. Una forma de almacenar los datos y resultados necesarios para realizar el programa que implemente un algoritmo como el de la figura 2.24 es utilizando vectores que permitan almacenar los valores complejos de las entradas y las salidas de las distintas etapas. Para tener almacenados N complejos de entrada 74 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER Xm−1 (p) c - c@ R @ @ c Xm (p) @ Wr Xm−1 (q) c - N c @ @ −1 - @ c Xm (q) Figura 2.25: Obtención de los elementos p y q para la etapa m. y otros N de salida en cada etapa se necesitan 2 vectores de complejos para todo el algoritmo, ya que el vector de salida de una etapa se convierte en el vector de entrada de la siguiente, y por tanto, en principio sólo se necesita el vector con los resultados de la etapa anterior y el correspondiente a los resultados que se están calculando en la etapa actual. Los elementos de cada vector de salida se obtienen como resultado de aplicar sobre los elementos del vector de entrada estructuras mariposas como la de la figura 2.25, en la que Xm (l) representa el elemento l-ésimo del vector de salida de la etapa m-ésima. En la primera etapa, X0 será la secuencia de entrada x[n], mientras que en la última, Xυ serán los coeficientes de la DFT. En la figura 2.25 puede observarse que para obtener los valores de cualquier par de elementos de una etapa (Xm (p) y Xm (q)) sólo se necesitan los valores de los elementos que están en la misma posición en el vector de la etapa anterior (Xm−1 (p) y Xm−1 (q)). Por este motivo, de los dos vectores que necesitábamos inicialmente para implemtar el algoritmo, podemos prescindir de uno. Ası́, el almacenamiento necesario en el programa será solamente un vector de complejos junto con una variable auxiliar. Los cálculos realizados de esta forma reciben el nombre de cálculos en el sitio, ya que los resultados se almacenan en el mismo vector que contenı́a los datos. Orden de los datos En el punto anterior hemos visto que en el grafo del algoritmo FFT se utilizan estructuras del tipo de la de la figura 2.25, las cuales nos permiten realizar los cálculos en el sitio. Este tipo de estructuras ha sido propiciado por el hecho de que los datos de entrada están ordenados en orden bit inverso. Para explicar el significado de orden bit inverso vamos a ver un ejemplo de una secuencia de 8 muestras, la cual hay que ordenar. En esta secuencia de 8 muestras, el orden que ocupa cada una de ellas puede almacenarse con 3 bits 75 2.7. La FFT n2 n1 -0 -0 -1 x[n2 n -1 n0 ] -0 -1 -1 n0 -0 x[000] = x[0] -1 x[001] = x[1] -0 x[010] = x[2] -1 x[011] = x[3] -0 x[100] = x[4] -1 x[101] = x[5] -0 x[110] = x[6] -1 x[111] = x[7] Figura 2.26: Ordenamiento de una secuencia en orden natural. x[n2 n1 n0 ], donde n0 es el bit menos significativo (LSB), de tal forma que el orden de cada muestra viene dado por una combinación de estos tres bits. La forma de ordenación más normal es el orden natural, mostrado en la figura 2.26, el cual consiste en ir dividiendo la secuencia en función del valor de estos tres bits, empezando por el más significativo (n2 ); es decir, si n2 es 0 la muestra quedará ordenada en una mitad, si es 1 en la otra. A continuación se repite el proceso en ambas mitades, pero observando ahora el bit n1 . Finalmente se repite el proceso para todas las subsecuencias obtenidas en el paso anterior teniendo en cuenta el bit n0 . Otra forma de ordenar la secuencia es en orden bit inverso, como en la figura 2.27, donde la filosofı́a de ordenación es la misma que en el orden natural pero el sentido de la misma es del bit menos significativo (n0 ) al más significativo (n2 ). En los diagramas de flujo que representan el algoritmo de la FFT (2.18 y 2.21) se observa que antes de empezar el algoritmo, la secuencia debe ser ordenada en orden bit inverso, para poder ası́ implementar un algoritmo en el sitio, resultando una secuencia de coeficientes X[k] ordenada en orden natural. En la figura 2.12 podemos observar que la secuencia x[n] se divide en muestras pares (mitad superior) e impares (mitad inferior), lo cual equivale a una separación de las muestras examinando el LSB (n0 ), es decir, las muestras con n0 = 0 (pares) quedarán ordenadas en la mitad superior y las que tienen 76 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER n0 n1 -0 -0 -1 x[n2 n -1 n0 ] -0 -1 -1 n2 -0 x[000] = x[0] -1 x[100] = x[4] -0 x[010] = x[2] -1 x[110] = x[6] -0 x[001] = x[1] -1 x[101] = x[5] -0 x[011] = x[3] -1 x[111] = x[7] Figura 2.27: Ordenamiento de una secuencia en orden bit inverso. n0 = 1 (impares) pasarán a la mitad inferior. Para las dos subsecuencias obtenidas se debe repetir el mismo proceso (N veces), hasta obtener subsecuencias de un solo elemento (figuras 2.17 y 2.15). Ası́ pues, la ordenación bit inverso de la figura 2.27 es equivalente a separar la secuencia en muestras que ocupan lugares pares o impares en la misma. Formas alternativas Si observamos las figuras que representan el grafo del algoritmo FFT (figuras 2.18 y 2.21) podemos darnos cuenta que podrı́amos cambiar el orden de los datos de entrada al algoritmo FFT siempre y cuando, con la nueva ordenación, una muestra siga el mismo proceso, es decir, pase por las mismas ramas que en el algoritmo original. Lo realmente importante es que una muestra sufra los cálculos necesarios para que a la salida se obtengan los coeficientes de la DFT, sin importar el orden en que se realicen los mismos. Ası́ pues, se podrı́a pensar en nuevas ordenaciones de los datos que den lugar a nuevos grafos para representar el algoritmo FFT. En la figura 2.28 puede observarse la forma del grafo cuando el orden de la secuencia de entrada corresponde al orden natural, que es, precisamente, el grafo original presentado por Cooley y Tukey. Las implementaciones con las muestras de entrada en orden natural son muy útiles en procesos en los que haya que concatenar FFT e FFTi, por ejemplo un filtrado (figura 2.29). De esta forma se pueden evitar varias ordenaciones 77 2.7. La FFT x[0] b x[1] b x[2] b x[3] b W0 x[4] b - N W0 x[5] b - N x[6] b WN0 - W0 x[7] b - N b @ b - b @ @ @ b b b @- b @ @ @ @ @ R @ WN0 b @ -@ @ @ @b b b @ @ @ −1 @ @ @ @ R @ @ W0 @ @b b -@ @- b - N b @ @ −1 @ @ @ @ R @ @ @ @ @b b b - b @ @ @ −1 @ @ @ @ R @ @ @ @ b b @- @ b @- b @ −1 @ @ @ @ R @ R @ @ @ W2 @ b @- @ b - N b @- @ b −1 −1 @ @ R @ R @ WN2 b @b @b b -@ -@ - b - −1 −1 b - b X[0] H * H H H WN0 b jH H H b X[4] - −1 bH - b X[2] * H H H 2 WN b -H jH H b X[6] - −1 bH - b X[1] * H H H 1 WN b -H jH H b X[3] - −1 - b X[5] * H H 3 H WN b -H jH H b X[7] - bH −1 Figura 2.28: Algoritmo FFT de diezmado en el tiempo (N = 8) con entrada en orden natural. orden orden natural natural Relleno - FFTN con 0 x[n] h[n]- Relleno - FFTN con 0 orden orden natural natural orden bit inverso ? - FFT−1 × N orden bit inverso 6 - orden natural orden bit inverso Figura 2.29: Filtrado utilizando FFTs. de la secuencia, proceso que puede resultar cada vez más lento a medida que N crece. Además de la estructura de la figura 2.28 existen otras formas derivadas de las distintas ordenaciones de los datos de entrada y los nodos intermedios, de las cuales no vamos a ocuparnos aquı́. 78 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER Cálculo de coeficientes Como hemos visto anteriormente, para implementar el algoritmo FFT hace falta una serie de coeficientes exponenciales WNr donde r = 0 . . . (N/2) − 1, cuyo cálculo es un proceso que debe ser optimizado. Para ello se utilizan dos métodos diferentes: Uso de una tabla: calcular previmente todos los coeficientes necesarios para implementar el algoritmo y guardarlos en una tabla. Este método minimiza el tiempo de cálculo, pero necesita memoria para almacenar la tabla. Cálculo recursivo: consiste en calcular los coeficientes cuando sean necesarios. En una etapa dada todos los coeficientes necesarios son múltiplos de WN . Para optimizar se aplica la siguiente fórmula recursiva: (l−1) WNl = WN WN es decir, para obtener el l-ésimo múltiplo de WN se necesita esta base y el último coeficiente calculado. Este método minimiza la memoria necesaria optimizando también el tiempo de cálculo. Sin embargo, hay que tener en cuenta que los coeficientes sufren un error de cuantificación al almacenarlos, el cual se irá acumulando al ir aplicando la recursión, haciéndose inaceptable si N crece mucho. Este problema tiene un pequeño arreglo introduciendo puntos de inicialización en la recursión, por N ejemplo WN4 = −j. 2.7.5. Algoritmos con N 6= 2υ Hasta ahora hemos visto únicamente algoritmos rápidos de cálculo de la DFT si la secuencia sobre la que se quiere realizar tiene un número de puntos potencia de 2 (N = 2υ ). Estos algoritmos pueden generalizarse para valores de N 6= 2υ , aunque ya no son tan eficientes. Los pasos a llevar a cabo para implementar el algoritmo, en el caso general, serı́an los siguientes: 1. Descomponer el número de puntos en factores primos N = n1 n2 . . . nL . 2. La DFT de N puntos se divide en n1 DFTs de N/n1 combinándolas por medio de unas operaciones auxiliares. 3. Cada DFT de N/n1 puntos se dividen en n2 DFTs de N/(n1 n2 ) puntos. 79 2.7. La FFT 4. El proceso continuarı́a hasta tener que implementar DFTs de nL puntos, las cuales habrı́a que realizarlas por el método directo, por eso interesa que nL sea el factor más pequeño. El caso óptimo de este algoritmo general serı́a que todos los factores fueran iguales e igual, a su vez, al factor primo menor, es decir, n1 = n2 = . . . = nL = 2; este serı́a el caso visto en secciones anteriores N = 2υ . El caso peor serı́a que N fuera un número primo, ya que entonces no se podrı́a descomponer en factores y habrı́a que calcular una DFT de N puntos por el método directo. Vamos a ver un ejemplo que nos ayudará a comprender cómo se extenderı́an estos algoritmos de diezmado en el tiempo al caso general en que N 6= 2υ . Ejemplo: N = 3γ Tendremos que realizar 3 DFTs de N/3 puntos. X[k] = N −1 X x[n] WNk n n=0 ◦ ◦ ◦ Separando las muestras en las situadas en 3, 3 +1 y 3 +2, tenemos5 : N 3 X[k] = N 3 −1 X x[3 r] WN3 r k + r=0 N 3 −1 X x[3 r + (3 r+1) k 1] WN r=0 + −1 X (3 r+2) k x[3 r + 2] WN r=0 siendo rk WN3 r k = W N 3 tenemos finalmente que: N 3 X[k] = −1 X r=0 N −1 −1 3 X X rk r k r k k 2k x[3 r] W N x[3 r + 1] W N x[3 r + 2] W N + WN + WN 3 N 3 r=0 3 3 r=0 (2.22) N 3 En la ecuación (2.22) puede observarse que −1 X r=0 N 3 y N 3 rk x[3 r] W N , 3 −1 X rk x[3 r + 1] W N r=0 −1 X rk , son DFTs de N/3 puntos combinadas entre sı́ por coefix[3 r + 2] W N 3 r=0 cientes exponenciales múltiplos de WN . Este proceso debe iterarse hasta obtener DFTs simples de 3 puntos. Con esto queda visto que el algoritmo general 5 ◦ La notación 3 indica múltiplos de 3. 3 80 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER conserva la misma idea que los algoritmos de diezmado en el tiempo (idem para frecuencia) vistos en secciones anteriores para N = 2υ , aunque en nuestro ejemplo la base en vez de 2 es 3. Si los factores en los que se descompone N son diferentes (n1 6= n2 6= . . . 6= nL ), la base será mixta. 2.8. Problemas 1. Demuestre las propiedades de la sección 2.3. 2. Sea x[n] una señal real de duración N . Se define la señal x1 [n] de la siguiente forma: ( x1 [n] = x[n] 0≤n≤N −1 x[2N − 1 − n] N ≤ n ≤ 2N − 1 Dibuje una señal arbitraria de 3 puntos y su correspondiente x1 [n] Si llamamos X1 [k] a la DFT de 2N puntos de x1 [n], demuestre que: Cx [k] = ejπk/2N X1 [k] es real. Encuentre qué simetrı́as existen en los valores de Cx [k]. Demuestre que se puede obtener x[n] a partir de Cx [k], 0, . . . , N − 1 e indique cómo. 6 k = 3. Considere que x[n] sea una señal real y par que sea no nula en el intervalo n = −M, . . . , M . Indique de qué señal z[n] (no nula de n = 0, . . . , N − 1 habrı́a de calcularse la DFTN para que los N valores obtenidos constituyan muestras de X(ejω ). 4. Demuestre que para una secuencia de N muestras, y su correspondiente DFT de N muestras se cumple: −1 1 NX |X[k]|2 |x[n]| = N n=0 k=0 N −1 X 2 5. Sean dos señales de duración finita x[n] e y[n] tal que ( x[n] = 6 x[n] si 0 ≤ n ≤ 19 0 resto ( y[n] = A Cx [k] se le denomina Transformada del coseno. y[n] si 0 ≤ n ≤ 4 0 resto 81 2.8. Problemas a) ¿Cuál es el máximo número posible de valores distintos de 0 en el resultado de la convolución lineal entre x[n] e y[n]? b) La convolución circular de 20 puntos de x[n] e y[n] es: x[n] 20 y[n] = 15 0 ≤ n ≤ 19 Los primeros 4 puntos de la convolución lineal de x[n] e y[n] son: x[n] ∗ y[n] = 4 0≤n≤3 Determine el valor del máximo número posible de puntos de la convolución lineal entre x[n] e y[n]. 6. Determine el número medio de operaciones por muestra en los métodos solape-suma y solape- almacenamiento usando FFTs. 7. Indique cómo generalizar el método de diezmado en frecuencia al caso N = 3ν . Indique cuánto vale el número de productos complejos en este caso. 8. Demuestre que una DFT de 4 puntos se puede realizar sin productos complejos. 9. Desarrolla hasta la FFT2 el algoritmo de diezmado en frecuencia para N = 8 de la figura 2.22. 10. Dibuje el diagrama de flujo del algoritmo FFT de diezmado en el tiempo cuando N = 9 (ver sección 2.7.5).¿Cuál será en este caso el orden de los datos de entrada?. ¿Cuántas operaciones por etapa se realizan? ¿Cuántas operaciones totales?. 11. Determine el número de operaciones a realizar para implementar el algoritmo FFT de diezmado en el tiempo cuando N = aγ siendo a, γ ∈ Z. 82 CAPı́TULO 2. TRANSFORMADA DISCRETA DE FOURIER Capı́tulo 3 Implementación de Filtros Digitales 3.1. Introducción En este tema se estudian los filtros digitales desde el punto de vista de su implementación. Es decir, partiendo de su función de transferencia, H(z), se tratan las técnicas para llevar a la realidad el filtro. Aunque el enfoque del tema es genérico en cuanto a la tecnologı́a (hardware cableado o programado), en algunas secciones se tratan aspectos especı́ficos de dispositivos programables para tratamiento de señal (DSP). También se estudian en el tema los efectos de precisión finita en filtros digitales. 3.1.1. Aplicaciones de los filtros Los filtros, sean estos digitales o analógicos, tienen un gran número de aplicaciones. En este punto veremos algunas de ellas que permitan ilustrar brevemente el gran número de aplicaciones que poseen los conceptos que se irán estudiando a lo largo del tema. En casi todas las aplicaciones subyace una de las dos posibles formas de considerar un filtro: En el dominio de la frecuencia: como sabemos, los filtros actúan modificando la amplitud y fase de las componentes sinusoidales de una señal. Recordemos que cualquier señal puede considerarses como suma de sinusoides a través de la transformada de Fourier. Este hecho es usado en distintas aplicaciones que veremos a continuación para: 83 84 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS • Eliminar determinadas componentes espectrales. • Enfatizar o atenuar algunas componentes espectrales. • Desfasar de forma distinta las diferentes componentes espectrales En el dominio del tiempo: en este dominio, como es conocido, la relación entre la entrada y la salida de un filtro viene dada por la convolución. Notemos que la convolución indica que la señal de salida, para un cierto instante, no es otra cosa que una suma (finita o infinita) de valores ponderados de la entrada en ciertos instantes (normalmente próximos). En función de los coeficientes de ponderación, que dependen de la respuesta impulsional, encontraremos filtros que realizan un promedio en un determinado intervalo de tiempo, o que buscan las transiciones en el mismo,. . . Pasemos a continuación a revisar algunas de las posibles aplicaciones y observemos cómo siempre corresponden a una de las dos formas anteriores de considerar las señales. Limitación del ancho de banda En telecomunicación, existe muy a menudo la necesidad de limitar el ancho de banda de las señales. Algunos ejemplos de esta necesidad los encontramos en: Multiplexado por división en frecuencia. Mediante esta técnica se comparte un mismo medio fı́sico para transmitir diversas señales. Para ello se desplaza cada una de las señales mensaje mediante una portadora a una frecuencia diferente. A cada mensaje se le reserva un cierto ancho de banda. Normalmente, el ancho de banda de las señales mensaje es mayor que el asignado al mismo. Para evitar que los espectros de los distintos mensajes se solapen se hace necesario que antes de mezclar los distintos mensajes se asegure que sus espectros no se solaparán. El filtrado se puede realizar tanto en banda base como en paso-banda, pero en cualquier caso siempre antes de la mezcla de las señales. Multiplexado por división en tiempo. La idea es también transmitir por un mismo medio fı́sico diversos mensajes, aunque en este caso la forma de realizarlo es mediante la transmisión cı́clica de muestras de los distintos mensajes. Dado que se transmiten muestras, es necesario que las mismas se hayan obtenido de modo que no exista aliasing. Ello implica la necesidad de que el ancho de banda de las señales, antes de ser muestreadas, sea menor que la mitad de la frecuencia de muestreo. 3.1. Introducción 85 Separación de señales multiplexadas en frecuencia Tal y como se acaba de mencionar, cuando se multiplexan señales en frecuencia, cada una de ellas ocupa una banda de frecuencias diferente. Para extraer una señal es necesario el uso de un filtro que deje pasar la banda de frecuencias ocupada por la misma y atenúe el resto. Si se desean obtener todas las señales será necesario el uso de banco de filtros. Controles de tono en audio De todos son conocidos los controles de graves y agudos de los equipos de audio. Estos controles no son otra cosa que filtros cuyas caracterı́sticas podemos variar mediante un mando, de forma que enfaticemos o atenuemos a voluntad bien las frecuencias altas, bien las bajas. Ecualizadores de audio Permiten controlar de forma más flexible la respuesta en frecuencia. Consisten normalmente en agrupaciones en cascada o paralelo de filtros paso-banda centrados en distintas frecuencias en los que es posible variar su ganancia. Dado que permiten variar individualmente la respuesta en frecuencia en un número más grande de frecuencias, permiten un control más exacto de la respuesta en frecuencia que los controles de tono. Interpolación y diezmado de señales discretas Esta es una aplicación tı́pica de los filtros digitales. Recordemos que la señal debe ser prefiltrada antes de ser diezmada, y cuando se interpola hay que filtrar la señal tras el relleno por ceros. Conversión D/A Para eliminar las frecuencias imagen, es necesario el uso de un filtro reconstructor tras la conversión D/A. La anterior relación no pretende ser exhaustiva y únicamente pretende ilustrar algunas de las aplicaciones más conocidas de los filtros. 3.1.2. Ventajas e inconvenientes de los filtros digitales A la hora de plantearse la realización de un filtro, hay que realizar una primera elección en cuanto a si el diseño lo realizaremos de forma analógica o digital. Cada una de estas alternativas presenta ventajas e inconvenientes, siendo misión del ingeniero que realice el diseño decidir la mejor opción en cada caso. De entre las ventajas de los filtros digitales podemos citar: Posibilidad de lograr fase lineal exacta. 86 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS Insensibilidad a condiciones externas, especialmente la temperatura. No precisan calibración ni compensaciones. Posibilidad de filtrar varias señales a la vez. Dado que normalmente se implementan mediante programas en un microprocesador (DSP), es posible filtrar varias señales sin más que añadir conversores A/D y D/A extra de modo que se puede rentabilizar el uso del DSP. Posibilidad de integración. Dado que existen DSP’s con conversores A/D y D/A integrados, es posible integrar varios filtros en un único chip. Gran margen dinámico. En filtros analógicos es difı́cil lograr en la práctica atenuaciones mayores de 60–70 dB. En digital el lı́mite viene impuesto por la calidad de los conversores A/D y D/A y el número de bits usados en la aritmética del DSP. Repetitividad. Un aspecto importante en la producción en serie es el ser capaz de realizar cientos o miles de filtros idénticos. En el caso de filtros digitales esto se logra sin más que ejecutar el mismo programa en cada DSP. Con filtros analógicos, y dado que todos los componentes tienen una cierta tolerancia, esto es difı́cil de lograr especialmente si el orden del filtro es alto. Posibilidad de reprogramación. Para cambiar la repuesta en frecuencia del filtro basta con cambiar el programa que ejecuta el DSP. No será necesario realizar un nuevo hardware. Posibilidad de realizar funciones adicionales. Dado que normalmente la capacidad de cálculo del DSP permite disponer de tiempo de sobra para realizar otras funciones, es posible utilizar este tiempo para realizar cosas tales como codificar, controlar, etc. Posibilidad de uso en muy bajas frecuencias. Los filtros analógicos destinados a trabajar en muy bajas frecuencias precisan de capacidades e inductancias grandes, lo que normalmente es problemático a la hora de reducir el volumen y el coste. Los filtros digitales, tienen un comportamiento normalizado con respecto a la frecuencia, es decir, el filtro digital trabaja de la misma forma con altas o bajas frecuencias analógicas con tal de que su frecuencia digital normalizada sea la misma (recordemos que la frecuencia normalizada depende de la frecuencia de muestreo). Pasemos a comentar brevemente ahora los inconvenientes y limitaciones fundamentales de los filtros digitales: 87 3.2. Planteamiento general del filtrado digital x[n] y[n] x(t) y(t) - A/D - 6 fs h[n] - D/A - 6 fs Figura 3.1: Esquema de filtrado de una señal analógica mediante un filtro digital. Calidad del A/D y el D/A. Cuando un filtro digital se usa para filtrar señales analógicas, (figura 3.1) es necesario un interfaz analógico. La calidad en cuanto a número de bits, linealidad, etc. de los conversores va a condicionar mucho la calidad del filtrado analógico equivalente que se logre. Velodidad del A/D y el D/A. Para poder filtrar señales analógicas usando filtros digitales ya hemos dicho que se hace necesario un interfaz analógico. En la medida en que se disponga de conversores suficientemente rápidos y precisos se podrá llevar a cabo el filtrado digital. Actualmente (1998) la tecnologı́a ofrece conversores de muy bajo coste y alta calidad en frecuencias de audio (fs ≈ 45 Khz), donde es posible encontrar conversores de más de 20 bits. En el margen de frecuencias de video (fs ≈ 13 Mhz) existen conversores estandar de 8 bits, pero se pueden encontrar de 10 y 12. Existen también conversores A/D y D/A para aplicaciones especiales capaces de trabajar a frecuencias muy elevadas (con pocos bits). De entre ellos se puede mencionar los que utilizan algunos osciloscopios digitales con frecuencias de muestreo de 2 Ghz, con 6 bits de resolución. Efectos de precisión finita. Se deben a redondeos en las operaciones que realizan los filtros digitales. Se estudiarán a lo largo del tema. Tiempo y coste del desarrollo del hardware. Un filtro digital implicará normalmente el desarrollo de un sistema microprocesador con interfaz analógico. 3.2. Planteamiento general del filtrado digital Las propiedades que caracterizan totalmente un filtro digital son una de las siguientes: La respuesta impulsional h[n]. 88 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS La respuesta en frecuencia H(ejω ). La función de transferencia H(z) más una región de convergencia (ROC) que suele corresponder a las condiciones de estabilidad y/o causalidad. Para que un filtro digital sea implementable, se deben dar las siguientes circunstancias: Causalidad. Este requerimiento sólo afecta a los sistemas que funcionan en tiempo real. En aquellos casos en los que el filtro digital opere sobre señales almacenadas previamente, o cuando la variable independiente no sea el tiempo, este requisito no es necesario. No obstante nosostros supondremos, salvo indicación en contra, que los filtros serán causales. Estabilidad. Aunque estrictamente no es necesaria, suele cumplirse siempre en los sistemas prácticos para evitar que la señal de salida crezca indefinidamente. Prácticamente todos los filtros que estudiaremos serán estables y salvo que se indique lo contrario asumiremos la estabilidad. Cantidad de almacenamiento finita. Como veremos, un filtro digital calcula valores de la salida en función de valores anteriores de la entrada y de la propia salida. Para que el filtro no se colapse y pueda seguir funcionando por tiempo indefinido, es necesario que la cantidad de valores a almacenar no crezca con el tiempo. Cantidad de operaciones por muestra de salida finita. Relacionado con el anterior punto, el número de operaciones por muestra a realizar debe ser finito, es decir, no crecer con el tiempo. Esta condición (y la anterior) imponen ciertas limitaciones a la hora de saber qué filtros son implementables y cuáles no. Los filtros analógicos suelen implementarse con elementos circuitales que dependen de la frecuencia, tı́picamente bobinas, condensadores, lineas de transmisión, . . . Los diferentes métodos de cálculo de la salida y(t) en función de la entrada x(t) tienen por tanto un carácter analı́tico o de diseño pero nunca de implementación. Por contra, la expresión de la convolución: y[n] = x[n] ∗ h[n] = ∞ X h[k] x[n − k] (3.1) k=−∞ sirve no sólo para analizar el comportamiento del filtro sino para implementarlo. Ello es debido a que la expresión (3.1) incluye únicamente productos y 89 3.2. Planteamiento general del filtrado digital sumas que son realizables en un microprocesador. Si en dicha expresión (3.1) imponemos la causalidad, resulta: y[n] = x[n] ∗ h[n] = ∞ X h[k] x[n − k] (3.2) k=0 3.2.1. Implementabilidad de filtros FIR En el caso en que el filtro a implementar sea FIR, es decir de respuesta impulsional finita, la expresión (3.2) se convierte en: y[n] = L X h[k] x[n − k] (3.3) k=0 Es fácil ver que para calcular cada valor de la salida y[n] es necesario: Realizar L + 1 productos. Realizar L sumas. Almacenar L valores anteriores de la entrada x[n] Dado que tanto la cantidad de almacenamiento como el número de operaciones por muestra de salida es finito podemos decir que los filtros FIR son implementables, y que la expresión de la convolución constituye una forma directa de implementación. Ya se han estudiado otras formas de implementar filtros FIR como las vistas en el tema de DFT/FFT. Éstas no serán objeto de tratamiento aquı́. Más adelante, estudiaremos otras formas de implementar filtros FIR. Recordemos que la función de transferencia de un filtro FIR causal es de forma polinómica: H(z) = h[0] + h[1] z −1 + h[2] z −2 + · · · + h[L] z −L (3.4) en la que se puede observar que los coeficientes de la función de transferencia (3.4) coinciden con los de la expresión (3.3) de filtrado. Un aspecto importante que conviene tener presente y en el que luego se insistirá, es que un mismo filtro puede ser implementado de formas diferentes. Podrı́a surgirnos la pregunta ¿Qué interés puede tener conocer distintas implementaciones posibles de un mismo filtro? Si la aritmética utilizada fuera de precisión infinita, es decir, si dispusieramos de un microprocesador con capacidad de manejar tamaños de palabra infinitos, la respuesta a esta pregunta serı́a ninguno. Ahora bien, si la aritmética empleada es de precisión finita, puede tener ventajas el uso de una u otra implementación. 90 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS Cuando el filtro digital se utilice para el filtrado de señales analógicas con la configuración mostrada en la figura 3.1, las muestras de la entrada serán proporcionadas de forma secuencial al filtro digital. Para que pueda funcionar, el tiempo necesario para realizar los cálculos necesarios para calcular un valor de la salida (L + 1 productos y L sumas) debe ser menor que el periodo de muestreo Ts . 3.2.2. Implementabilidad de filtros IIR En el caso de filtros IIR causales, la ecuación (3.2) siempre contendrá un número infinito de términos y por tanto no será util a la hora de implementar filtros. Existen no obstante algunos filtros IIR que permiten ser implementados con un número finito de operaciones por muestra. La clave para que esto resulte posible no es otra que: Procesar las muestras de salida en orden creciente, es decir, calcular y[n] desde n = −∞ hacia n = ∞. Los filtros FIR también calculan la salida normalmente de esta forma, aunque no existe ninguna razón para ello, ya que los distintos valores de y[n] se calculan de forma independiente. Utilizar valores de la salida calculados previamente, para calcular y[n] En otras palabras, aquellos filtros IIR que permitan ser expresados como: y[n] = L X k=0 bk x[n − k] + N X ar y[n − r] (3.5) r=1 y siempre y cuando los valores de x[n] se vayan teniendo disponibles secuencialmente y los de y[n] se tengan que calcular del mismo modo (caso habitual), podrán ser implementados con un número finito de operaciones por muestra. La función de transferencia de los sistemas IIR que se pueden escribir la forma de la ecuación (3.5) es: H(z) = b0 + b1 z −1 + · · · + bL z −L 1 − a1 z −1 − · · · − aN z −N (3.6) es decir, de forma racional. Este tipo de funciones de transferencia tiene una respuesta impulsional en forma de suma de exponenciales. Podemos decir por tanto que, aquellos sistemas IIR causales cuya respuesta impulsiva sea una suma de exponenciales serán implementables con un número finito de operaciones por muestra. 3.2. Planteamiento general del filtrado digital 3.2.3. 91 Proceso de implementación de un filtro digital En esta sección veremos cuales son los principales pasos que deberemos seguir desde que decidimos construir un filtro digital hasta que lo tenemos funcionando. 1. Obtención de especificaciones. El primer paso de todo diseño consiste en establecer lo que se quiere realizar. Este primer paso no es en absoluto trivial, pues tiene influencia en el resto de procesos. En concreto habrá que tener en cuenta que: Las especificaciones dependen de la aplicación. Las especificaciones pueden venir dadas por normas. En general, cuanto más exigentes seamos con las especificaciones mayor será el coste del diseño. 2. Diseño del filtro. Consiste en obtener los coeficientes de H(z). A este punto le dedicaremos un tema. 3. Selección del hardware. En este punto existen varias opciones: Hardware dedicado. Se trata de construir un circuito integrado especı́fico para realizar este filtrado. Normalmente sólo es rentable si se pretenden construir grandes series, y/o si la (alta) frecuencia de muestreo impide el uso de dispositivos programables. Hardware programable (DSP): Se trata en este caso de usar microprocesadores especializados para el tratamiento de señal en tiempo real. Dentro de estos a su vez hay dos alternativas básicas: • DSP coma fija. Suelen tener un menor coste que los de coma flotante. El consumo es menor, lo que los hace preferibles en aplicaciones portátiles basadas en baterı́as. Existen versiones con velocidades mayores de reloj. Como contrapartida el software es más costoso de programar, lo que incrementa el coste de este aspecto. Un ejemplo tı́pico de aplicación de este tipo de DSP es en los terminales de telefonı́a móvil GSM. • DSP coma flotante. Tienen como principal ventaja la menor dificultad del desarrollo del software. La elección del DSP a usar debe depender de su capacidad para realizar las operaciones requeridas por unidad de tiempo (depende del orden del filtro y de la frecuencia de muestreo), ası́ como de otros aspectos como la facilidad del desarrollo (disponibilidad de herramientas de diseño), soporte del fabricante, precio unitario,. . . 92 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS 4. Elección de la estructura del filtro. Una vez elegido el hardware es necesario realizar un programa que ante una muestra de la entrada calcule una muestra de la salida. Existen diversas formas, que veremos más adelante, todas ellas equivalentes con precisión infinita en los cálculos, para calcular las muestras de la salida. Cada una de estas formas recibirá el nombre de estructura. 5. Análisis de los efectos de precisión finita. Sobre todo con los DSP de punto fijo es necesario realizar un estudio de los efectos secundarios que se producen por el hecho de no usar aritmética de precisión infinita. 6. Implementación del hardware incluyendo interfaz analógico. Será básicamente un diseño digital con microprocesador. 7. Implementación del software. Consiste en programar en el lenguaje adecuado la rutina que ante una muestra de la entrada calcula la muestra de la salida. Puede ser desarrollado en lenguajes de alto nivel (normalmente C) y mediante un compilador generar el código. No obstante, sobre todo en diseños crı́ticos, muchas veces se prefiere la programación directa en ensamblador ya que de esta forma el código puede ser optimizado más. 3.3. Implementación de filtros digitales En este apartado supondremos que conocemos los coeficientes de un filtro, y pretendemos implementarlo, es decir, pretendemos realizar algo que dada una señal cualquiera de entrada x[n] vaya calculando las muestras de la señal filtrada y[n]. Ası́ mismo, en esta sección veremos los efectos de precisión finita sobre los filtros digitales. 3.3.1. Diagramas de flujo Consideremos, por ejemplo, el caso de un sistema IIR causal. La ecuación (3.5) que reproducimos a continuación expresa una forma de implementar el filtrado. En otras palabras, expresa explı́citamente qué operaciones hay que realizar para calcular de forma recursiva la salida. y[n] = L X k=0 bk x[n − k] + N X ar y[n − r] (3.7) r=1 Resulta útil realizar una representación gráfica de las operaciones que expresa la ecuación (3.7). Para ello utilizaremos los denominados diagramas de 93 3.3. Implementación de filtros digitales flujo o grafos. Un diagrama de flujo es una red de ramas dirigidas que interconectan nodos. Los nodos corresponden normalmente a variables y tienen asociado un cierto valor. Las ramas son conexiones orientadas que en su origen están conectadas a un nodo del que toman su valor, y tras aplicarle una cierta operación entregan, a otro nodo, el valor procesado de su entrada. Los tipos de rama que consideraremos en los filtros lineales son: Constantes multiplicativas El valor de salida de la rama es el de la entrada multiplicado por una cierta constante. Se representa como muestra la figura 3.2. b a - b Figura 3.2: Rama multiplicativa. Retardo Los valores de los nodos deben ser recalculados cada vez que llega una nueva muestra. Interesa a menudo guardar el valor de un nodo para el instante siguiente. Esto lo haremos con ramas de retardo y lo representaremos como se muestra en la figura (3.3). b −1 z- b Figura 3.3: Rama Retardo. Conexión La salida de la rama es igual a su entrada. Equivale a una rama multiplicativa cuya constante vale a = 1. No representaremos el valor de a. Observemos que en ambos tipos de rama, la etiqueta corresponde con la función de transferencia de la misma. En cuanto a los nodos serán los puntos donde confluyan ramas. Distinguiremos los siguientes tipos de nodo: Nodo fuente A él no entran ramas, únicamente salen. Suele corresponder con generadores o fuentes de señal. Nodos sumidero De él no salen ramas, únicamente entran. Suelen corresponder con la salida de los filtros. Nodos intermedios Son los que tienen ramas entrantes y salientes. El valor del nodo es la suma de los valores de salida de las ramas que entran. Si hay varias ramas de salida, el valor del nodo es pasado a todas ellas. 94 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS x[n] r r - b 0 - z −1 ? r b 1 - r - r 6 6 r r - y[n] r - z −1 ? a1 * rX y X z −1 z −1 XX x[n − 1] ? r b 2 - z −1 ? r b 3 - z −1 ? r b 4 - 6 6 r r 6 6 r r 6 6 r r r y[n − 1] ? a2 r z −1 ? a3 r z −1 ? a4 r Figura 3.4: Representación mediante diagrama de flujo de las operaciones para implementar un filtro IIR en forma directa I. La figura se ha particularizado para L = N = 4. Una vez definidos los elementos básicos de un grafo, veamos en la figura 3.4 la representación gráfica de la ecuación (3.7). La misma muestra una descripción gráfica de las operaciones a realizar cada vez que llega una nueva muestra de entrada. Los nodos normalmente se asocian con variables en un programa. Todos los nodos deben actualizar su valor cada vez que llega una nueva muestra de entrada. El nodo marcado con x[n] es un nodo fuente. El nodo y[n] es un nodo sumidero. Puede observarse también las cadenas de elementos retardadores de la entrada y de la salida que permiten almacenar los valores de instantes anteriores de ambas señales. 3.3.2. Formas directas La figura 3.4 muestra lo que se conoce como Forma Directa I de un filtro IIR. Se pueden distinguir claramente dos etapas. Como cada una de ellas es un LTI es posible permutarlas. Si además, tras la permutación, se repara en que ambas cadenas de retardadores son alimentadas con las mismas muestras, es posible llegar a la estructura que se muestra en la figura 3.5. La misma expresa una forma alternativa de realizar los cálculos necesarios para determinar cada 95 3.3. Implementación de filtros digitales x[n] r - r - a1 a2 a3 r r a4 r y[n] - r r 6 b 2 - r 6 b3 - z −1 ? 6 r - z −1 ? 6 r r r 6 b1 z −1 ? 6 r b 0 - z −1 ? 6 r r r 6 b 4 - r Figura 3.5: Representación mediante diagrama de flujo de las operaciones para implementar un filtro IIR en forma directa II. muestra de la salida ante una nueva muestra de la entrada. Esta estructura recibe el nombre de Forma Directa II de un filtro IIR. Tiene como principal ventaja el hecho de que como normalmente N = L se precisa la mitad de la memoria (elementos z −1 ). Mediante los diagramas de flujo hemos sido capaces de encontrar dos formas distintas de calcular las muestras de salida. Ambas son equivalentes con precisión infinita. Los diagramas de flujo proponen una implementación hardware directa de los filtros digitales. Nótese que las cadenas de retardadores se pueden implementar con registros de desplazamiento y los sumadores y multiplicadores son circuitos digitales combinacionales. También existen dispositivos analógicos de tiempo discreto que utilizan estructuras como las mostradas en las figuras 3.4 y 3.5. Un ejemplo de los mismos son los filtros con tecnologı́a CCD empleados en los receptores de TV. En cuanto a los filtros FIR, la ecuación (3.3) permite dibujar el grafo de la figura 3.6. Dicha estructura se corresponde con la llamada forma directa de un filtro FIR. También se le suele denominar filtro transversal. 96 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS x[n] r - r −1 z- r −1 z- r −1 z- r −1 z- r h[0] ? h[1] ? h[2] ? h[3] ? h[4] ? r r r r r - - - - - r y[n] Figura 3.6: Forma Directa de un filtro FIR. 3.3.3. Realización en Cascada Dada la función de transferencia racional de un filtro, es posible factorizarla: L Y H(z) = z −1 z −L (1 − ck z −1 ) b0 + b1 + · · · + bL = b0 k=1 −1 N 1 − a1 z − · · · − aN z −N Y (1 − dk z −1 ) (3.8) k=1 donde ck son los ceros de H(z) y y dk sus polos. Una vez realizada la factorización, es posible descomponer H(z) como producto (cascada) de secciones de orden 1 (ceros/polos reales) u orden 2 (ceros /polos complejos agrupados por pares conjugados). Veamos un ejemplo. Supongamos la siguiente función de transferencia: H(z) = = 1 − 0,8z −1 + 0,37z −2 − 0,05z −3 = 1 + 0,9z −1 + 0,4z −2 + 0,1z −3 (1 − 0,6z −1 + 0,25z −2 ) (1 − 0,2z −1 ) (1 + 0,5z −1 ) (1 + 0,4z −1 + 0,2z −2 ) A través de esta factorización, es inmediata la implementación que se muestra en la figura 3.7. Obsérvese que: En la figura 3.7 las secciones de orden 1 ó 2 se han realizado con formas directas II. También podrı́an haberse realizado con secciones en forma directa I. Aunque la relación entrada-salida es la misma que si se hubiera implementado en forma directa el filtro de orden 3, los cálculos intermedios involucrados son diferentes. El orden de las secciones podrı́a ser cambiado. La relación E/S no cambiarı́a pero sı́ las operaciones internas. 97 3.3. Implementación de filtros digitales La forma de emparejar los ceros y los polos puede cambiar. Es decir, podrı́a haber emparejado el cero real con los polos complejos y haber formado ası́ una de las secciones. Resumiendo, podemos decir que existen múltiples posibilidades de realización en cascada todas ellas equivalentes con precisión infinita. Los filtros FIR también admiten una realización en cascada. r - r - r - r r - - r - r x[n] r - y[n] z −1 ? -0.5 r z −1 ? 6 -0.2 - -0.4 r r 6 -0.6 - r z −1 ? −0,2 0.25 - Figura 3.7: Realización en cascada del ejemplo del texto. r - r - r - r x[n] - r y[n] z −1 ? 6 r −0,9 −0,4 r −0,1 r r 6 0,37 - z −1 ? 6 r - z −1 ? 6 r r 6 −0,8 r 6 −0,05 - r Figura 3.8: Realización en forma directa II del ejemplo de la figura 3.7. 98 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS 3.3.4. Realización en paralelo Consideremos la función de transferencia H(z) de un filtro IIR de coeficientes reales: L X H(z) = bk z −k k=0 N X 1− (3.9) an z −n n=1 En el caso más general podemos descomponer la anterior expresión como suma de fracciones simples: H(z) = Np X k=0 ck z −k + N1 X N 2 X Bk (1 − ek z −1 ) Ak + 1 − dk z −1 k=1 (1 − fk z −1 ) (1 − fk∗ z −1 ) k=1 (3.10) donde: El primer término sólo existe si el grado del numerador de H(z) en z −1 es mayor o igual que el del denominador. En ese caso Np = L − N . El segundo término existe únicamente si H(z) tiene polos reales. En ese caso N1 es el número de polos reales. El tercer término existe si H(z) tiene polos complejos. En ese caso N2 es el número de pares de polos complejos conjugados. Veamos un ejemplo que sólo tiene polos reales: H(z) = 1 + 2 z −1 + z −2 18 25 =8+ − 1 − 0,75 z −1 + 0,125 z −2 1 − 0,5z −1 1 − 0,25z −1 Dado que los filtros FIR no tienen polos, estos no admiten realización en paralelo. 3.3.5. Formas transpuestas Existe un teorema de la teorı́a de grafos (cuya demostración no veremos) que dice: En sistemas con una entrada y una salida, si se invierte el sentido de todas las ramas de un grafo sin cambiar sus pesos, el sistema obtenido es equivalente 99 3.3. Implementación de filtros digitales - 8 r - r r - - r 18 - r - x[n] r y[n] z −1 ? r - 0.5 r - r -25 - z −1 ? 0.25 r Figura 3.9: Realización en paralelo del ejemplo del texto. Nótese que para aplicar el teorema anterior hay que considerar la entrada del nuevo sistema (con las ramas en sentido inverso) en el punto donde el sistema original tenı́a la salida y viceversa. El anterior teorema puede aplicarse a cualquier grafo: FIR, IIR, cascada, paralelo, . . . Veamos un ejemplo. En la figura 3.11 vemos cómo serı́a la forma directa II de un filtro cuya función de transferencia es: H(z) = r - r b0 + b1 z −1 + b2 z −2 1 − a1 z −1 − a2 z −2 - r - r x[n] (3.11) - r y[n] z −1 ? 6 r 0,75 2 - z −1 ? 6 r r 6 −0,25 r r 6 - r Figura 3.10: Realización en forma directa del ejemplo de realización en paralelo de la figura 3.9. 100 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS r - r - r b 0 - r - x[n] r y[n] z −1 ? 6 r a1 - z −1 ? 6 r r 6 b1 a2 r r 6 b2 - r Figura 3.11: Realización en forma directa II de la función de transferencia de la ecuación (3.11). r - r b 0 - r - r x[n] - r y[n] z −1 6 ? r b 1 - r a1 ? r z −1 6 b 2 - r a2 Figura 3.12: Forma transpuesta de la forma directa II de la función de transferencia de la ecuación (3.11). Si cambiamos el sentido de todas las ramas, obtenemos el grafo de la figura 3.12 correspondiente a la forma transpuesta de la figura 3.5. Aunque en principio la apariencia de la forma transpuesta es similar a la original, un examen detallado de las ramas permite descubrir que las operaciones intermedias realizadas son totalmente distintas en ambos casos. Aunque no veremos una demostración del teorema de transposición de grafos, en la sección siguiente comprobaremos que la función de transferencia H(z) de la forma transpuesta coincide con la original de la ecuación (3.11). 3.3.6. Determinación de la función de transferencia de un grafo En esta sección presentaremos un procedimiento general de análisis de grafos que nos permitirá determinar su H(z). Para centrar la explicación utilizare- 101 3.3. Implementación de filtros digitales mos como ejemplo la forma transpuesta de la figura 3.12 de la que calcularemos su función de transferencia. Para analizar un grafo, los pasos a seguir son: Asignar variables a los distintos nodos. El nodo de la entrada lo llamaremos x, el de la salida y, y al resto vk . Hay que tener presente que: • si en un nodo entra una sola rama de peso 1, la variable de ese nodo será la misma que la del nodo origen de la rama. • podemos reducir el número de nodos si eliminamos aquellos que correspondan a sumas parciales. En el ejemplo analizado, la figura 3.13 muestra los nombres dados a cada nodo. Dado que el grafo representa las operaciones a realizar por muestra, si consideramos todos los instantes de tiempo tendremos una secuencia para cada nodo. El siguiente paso consiste en establecer las relaciones entre (las transformadas Z de) los distintos nodos. Tendremos que plantear tantas ecuaciones como nodos intermedios tengamos más uno (de la salida). En nuestro ejemplo: y v1 v2 Y (z) = b0 X(z) + V1 (z) z −1 V1 (z) = b1 X(z) + V2 (z) z −1 + a1 Y (z) V2 (z) = b2 X(z) + a2 Y (z) Finalmente, dado que tendremos una ecuación menos que incógnitas (la entrada no tiene ecuación), sólo resta despejar la relación Y (z)/X(z) = r - r b 0 - r x y r - r ? 6 b1 - r r y z −1 ? - v1 a1 r z −1 6 b 2 - r v2 a 2 Figura 3.13: Forma transpuesta con variables asignadas a nodos. 102 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS H(z) para obtener la función de transferencia. Realizando esto en nuestro caso se obtiene: H(z) = Y (z) b0 + b1 z −1 + b2 z −2 = X(z) 1 − a1 z −1 − a2 z −2 que puede comprobarse que coincide con (3.11) de la forma directa de la figura 3.11. 3.3.7. Secuencia de cálculo Los grafos indican las operaciones a realizar cada vez que llega una nueva muestra de entrada. En muchas ocasiones, dichas operaciones deben ser programadas en un lenguaje que realice las operaciones de forma secuencial. En ese caso habrá que realizar un programa que implemente exactamente las operaciones descritas en el grafo. El primer paso consiste en asignar a cada nodo una variable. Los programas realizados tendrán el aspecto de una subrutina en el que todas las variables deben actualizar sus valores de forma ordenada. Inicialmente, consideraremos las siguientes reglas a la hora de decidir el orden de actualización: Al comienzo de la subrutina, todas las variables se considerarán del instante n − 1. Cuando una variable se actualiza pasa a ser del instante n. A la salida de la subrutina todas las variables se considerarán del instante n. Cuando se suman variables, tienen que corresponder al mismo instante. Hay que evitar sobreescribir cosas que puedan ser necesarias. Veremos a continuación algunos ejemplos para centrar las ideas. Ejemplo 1: Forma directa II de un filtro IIR Consideremos la estructura de la figura 3.14 en la que se han se señalado los nodos. El procesador sobre el que se vaya a implementar el filtrado, en estado normal estará sin hacer nada (IDLE). Supondremos que cuando el A/D digitaliza una nueva muestra se genera una interrupción. El programa que realmente realiza el filtrado será una rutina de interrupción. Inicialmente se está en estado de reposo. Este estado suele corresponder a un modo de bajo consumo de los DSP. De este estado se sale únicamente cuando se produce una interrupción (debida a la llegada de una muestra del 103 3.3. Implementación de filtros digitales r x - r - 6 r a1 6 r a2 v b r 0 -0 r z −1 ? 6 v b r 1 -1 r z −1 ? 6 r v2 b2 - - r y r Figura 3.14: Forma directa II con asignación de variables a nodos. VARS ESPERAR: x, y, v0 , v1 , v2 IDLE GOTO ESPERAR INTERR: X=INPUT V2=V1 V1=V0 V0=X+ A1 V1 V0=V0 + A2 V2 Y=B0 V0 + B1 V1 Y=Y+B2 V2 OUT (Y) RTI /* Leer muestra de A/D */ /*Sacar muestra al D/A */ /*Retorno de interrupcion*/ Figura 3.15: Programa en pseudocódigo que implementa la forma directa II de la figura 3.14. A/D). Al llegar la interrupción se ejecuta la rutina de atención de la misma y se pasa a ejecutar la siguiente instrucción, que nos devuelve al estado IDLE hasta que llegue una nueva muestra. El programa que implementarı́a los cálculos de la figura 3.14 se muestra en la figura 3.15. Existe una primera sección con la declaración de las varia- 104 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS bles necesarias, un pequeño programa principal y la rutina de atención a la interrupción que es propiamente lo que nos interesa. Dicha rutina comienza leyendo la nueva muestra del A/D. A continuación hemos de actualizar el resto de los nodos. Cabrı́a preguntarse ¿Por qué se comienza por V2? La respuesta serı́a: por eliminación. Si hubiéramos empezado por V1 hubiéramos perdido su valor en el instante anterior, que ya no habrı́amos podido copiar a V2. Lo mismo con respecto a empezar por V0. Y no puede ser calculado al principio pues para ello son necesarios los valores en el instante actual de V0, V1 y V2. Por lo tanto el único orden posible es el que se muestra en la figura 3.15. Ejemplo 2: Forma directa de un filtro FIR (versión 1) Consideremos ahora la forma directa de un filtro FIR de orden 4 que se muestra en la figura 3.16. En ella ya se han representado las variables que utilizaremos en nuestro programa. El programa necesario para implementar los cálculos que expresa la figura 3.16 se muestra en la figura 3.17. Hay que notar que el orden en que se han de realizar las operaciones es necesariamente el mostrado, por las mismas razones que en el ejemplo 1. Se pueden realizar las siguientes observaciones. Los cálculos que se hacen en los filtros suelen ser de la forma Y = Y + A · B, es decir un producto y una acumulación (MAC: Multiply and Acumulate). La mayorı́a de los DSP comerciales son capaces de realizar estas operaciones en una única instrucción. El resto de las operaciones son simples desplazamientos de datos. Nótese que en este caso la cantidad de instrucciones útiles es prácticamente la misma que de desplazamientos (inútiles). X r - Xr −1 V 1 z −1 V 2 z −1 V 3 z −1 V 4 zr r r r - b1 ? b0 ? r - r b2 ? - r b3 ? - r b4 ? - r - rY Figura 3.16: Forma directa con variables asignadas a nodos de un filtro FIR. 105 3.3. Implementación de filtros digitales VARS ESPERAR: X, Y, V1, V2 ,V3, V4 IDLE GOTO ESPERAR INTERR: V4=V3 V3=V2 V2=V1 V1=X X=INPUT Y= B0 X Y= Y + B1 V1 Y=Y+B2 V2 Y=Y+B3 V3 Y=Y+B4 V4 OUT (Y) RTI /* Lee muestra de A/D */ /*Saca muestra al D/A */ /*Retorno de interrupcion*/ Figura 3.17: Programa en pseudocódigo que implementa la forma directa del filtro FIR de la figura 3.16. Para evitarnos las instrucciones de los desplazamientos, los DSP tienen alguna de las siguientes soluciones: • Al mismo tiempo que hago el MAC copio uno de los factores a una posición de memoria correlativa. Llamaremos a esta instrucción MACD (MAC con Desplazamiento). Es tı́pica de los DSP de la marca Texas Instruments entre otros. En la figura 3.18 se muestra como deberı́a reescribirse el programa para reducir a aproximádamente la mitad el número de instrucciones que ejecuta el DSP. Nótese que el orden en que se realizan las sumas es el inverso al de la figura 3.17. Esto es necesario para poder utilizar las instrucciones MACD. Nótese también que a diferencia de lo explicado más arriba, cada ciclo de la interrupción prepara las variables para el instante siguiente, es decir a la entrada de la rutina de interrupción las variables son del instante n y al final de la misma son las del instante n + 1. 106 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS VARS ESPERAR: X, Y, V1, V2 ,V3, V4 IDLE GOTO ESPERAR INTERR: X=INPUT Y= B4 V4 /* Leer muestra de A/D */ Y=Y+B3 V3 V4=V3 /*1a instrucción MACD */ Y=Y+B2 V2 V3=V2 /*2a instrucción MACD */ Y=Y+B1 V1 V2=V1 /*3a instrucción MACD */ Y=Y+B0 X V1=X /*4a instrucción MACD */ OUT (Y) RTI /*Sacar muestra al D/A */ /*Retorno de interrupcion*/ Figura 3.18: Programa en pseudocódigo que implementa la forma directa del filtro FIR de la figura 3.16 utilizando instrucciones MACD. • Uso de buffers circulares por hardware. Consiste en no mover las muestras, sino variar un puntero. Ejemplos tı́picos de DSP que tienen este tipo de recurso son el TMS32050 (Texas Instruments) la familia 2100 de Analog Devices entre otros. Buffers Ciculares Consisten básicamente en una zona de memoria, a la que se accede con un puntero. Sobre dicho puntero se pueden realizar operaciones aritméticas del tipo incremento o decremento con las siguientes particularidades: Cuando al incrementar el puntero se supera la última dirección de memoria del buffer, automáticamente se apunta a la primera. 107 3.3. Implementación de filtros digitales Puntero Muestras ? Buffer Muestras x[n] x[n − 1] @@ x[n − M ] x[n − 2] x[n − M − 1] x[n − L] Buffer Coeficientes b0 b1 bL 6 Puntero Coeficientes Figura 3.19: Buffer Circular. Cuando se decrementa el puntero y se supera la primera dirección, automáticamente el puntero apunta a la última. Los DSP que utilizan esta técnica tienen una arquitectura que permite realizar los incrementos y comprobaciones de si se ha alcanzado el final por hardware (sin necesitar instrucciones adicionales). El esquema de cómo se podrı́a realizar un filtrado FIR utilizando esta técnica se muestra en la figura 3.19. Supongamos, por ejemplo, un filtro FIR: y[n] = L X h[k] x[n − k] k=0 Para calcular un valor de la salida, nos hacen falta la muestra actual x[n] y L muestras anteriores de la entrada. Supondremos que tenemos un buffer de L + 1 elementos que contiene dichas muestras y un puntero que apunta a la muestra actual. Cuando llega una nueva muestra: 1. El puntero se incrementa. Ahora apunta a la muestra más antigua del buffer 2. Se escribe la nueva muestra en el lugar apuntado por el puntero. Tras esto, el puntero apunta a la muestra más reciente. A continuación, para realizar los productos y sumas, se realizan L + 1 operaciones, de decremento sobre el puntero de las muestras, y de incremento (circular) sobre el de los coeficientes, de forma que se va recorriendo las mismas y se van efectuando los 108 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS productos y sumas. Nótese que como el buffer es de tamaño L+1, si realizamos L + 1 incrementos (o decrementos) el puntero tendrá la misma posición al final que la que tenı́a al inicio. Obsérvese que, dado que además, el control de los bucles no consume ciclos de CPU en la mayorı́a de DSP, es posible implementar un filtro FIR con una instrucción por muestra. 3.4. Efectos de precisión finita En esta sección se estudian los efectos que se producen debido a que los números involucrados en la implementación de filtros digitales (coeficientes y muestras) están cuantificados. Los efectos de precisión finita son normalmente despreciables si se emplea aritmética de coma flotante. Sin embargo si la aritmética es de coma fija es necesario tenerlos presentes. En el resto de esta sección se presentan los diferentes efectos debidos a la precisión finita en sistemas con aritmética de coma fija. 3.4.1. Cuantificación de los coeficientes Cuando se diseña un filtro, se emplean diversos métodos que proporcionan un conjunto de coeficientes bk y ak para numerador y denominador respectivamente. A la hora de implementar el filtro, dichos coeficientes deben ser introducidos en un programa y por lo tanto codificados con un número finito de bits. N (z) H(z) = (3.12) D(z) Si consideramos una forma directa, los coeficientes a introducir en el procesador serán directamente los coeficientes de H(z). Centrémonos por ejemplo en el numerador: N (z) = b0 + b1 z −1 + b2 z −2 + · · · + bM z −M (3.13) Si llamamos b̂k a los coeficientes cuantificados (los que utilizamos realmente en el DSP): b̂k = Q[bk ] y consideramos el polinomio formado por los coeficientes cuantificados N̂ (z) = b̂0 + b̂1 z −1 + b̂2 z −2 + · · · + b̂M z −M es fácil darse cuenta que: (3.14) 109 3.4. Efectos de precisión finita El hecho de que los coeficientes estén cuantificados cambia la respuesta en frecuencia del filtro. Para ello basta con darse cuenta que la respuesta en frecuencia es el cociente de los polinomios numerador y denominador particularizados en z = ejω Al cuantificar los coeficientes de un polinomio (numerador o denominador), sus raı́ces cambian de lugar. Si llamamos zj a las raı́ces, tenemos: ẑj = zj + ∆zj La cuantificación de los coeficientes en una forma directa afecta de forma independiente al numerador y al denominador. Es decir, la cuantificación de los coeficientes del numerador afecta sólo a los ceros, mientras que los del denominador a los polos únicamente. Mediante un análisis de sensibilidad, se puede llegar a la conclusión de que lo que se mueve una raı́z, ∆zj , por el hecho de cuantificar los coeficientes del polinomio: Es mayor cuantos menos bits se empleen en cuantificar los coeficientes. Es mayor cuanto mayor es el grado del polinomio. Cuanto mayor es el grado del polinomio, más coeficientes se cuantifican, y dado que todos los coeficientes influyen en cada raı́z, ésta se moverá más. Es mayor si la raı́z tiene raı́ces próximas. Los filtros suelen tener muchos polos próximos si el filtro tiene una respuesta en frecuencia abrupta. IMPORTANTE: Al cuantificar los coeficientes del denominador de un filtro IIR puede suceder que alguna raı́z (polo) se salga de la circunferencia unidad. Ello provocarı́a que aunque el filtro con los coeficientes sin cuantificar sea estable, el filtro de coeficientes cuantificados sea inestable. Esta situación se dará si tenemos muchos polos y/o están muy próximos entre sı́ y/o se usan pocos bits y/o los polos están muy próximos a la circunferencia unidad. Si tenemos sospechas de que puede suceder esto, deberemos comprobar siempre la estabilidad del filtro con los coeficientes cuantificados. En la figura 3.20 se muestra un ejemplo correspondiente a un filtro IIR de Butterworth, en el que se puede apreciar en la figura (a) el efecto sobre la banda de paso por el hecho de que los coeficientes estén cuantificados y en la figura (b) el efecto sobre la banda atenuada. Nótese, que normalmente la 110 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS Butterworth-8 Butterworth-8 0 -10 Coef. cuantif. 8 bits Coef sin cuantificar 1 -20 -30 Coef. cuantif. 8 bits Coef sin cuantificar -40 -50 -60 -70 -80 -90 0 0 0.25 f (a):Escala lineal 0.5 -100 0 0.25 f 0.5 (b):Escala en dB Figura 3.20: Efectos en la respuesta en frecuencia de la cuantificación de los coeficientes. cuantificación de los coeficientes empeora la respuesta en frecuencia (mayor rizado en la banda de paso y menor atenuación en la banda atenuada. En la figura 3.21 se muestran los polos del mismo filtro de Butterworth con coeficientes sin cuantificar y cuantificados con 8 bits. Puede apreciarse cómo los polos cambian de ubicación. Nótese como los polos que tienen menos polos cerca (el D y el D’) se mueven menos que aquellos que tienen más polos próximos (el A y el A’). Para reducir los efectos de la cuantificación de los coeficientes interesarı́a que: Los polinomios del numerador y denominador tuvieran un grado pequeño. Los polos estuvieran lo más separados posible. La forma en cascada, como hemos visto, descompone H(z) como producto de secciones de orden 1 y 2. De esta forma cada coeficiente influye únicamente en un par de raı́ces complejas conjugadas. Además los coeficientes del denominador influyen únicamente en los polos y los del numerador en los ceros. Es por ello que la respuesta en frecuencia de las secciones en cascada se degrada menos que en una forma directa, especialmente si el orden del filtro es alto y/o los polos están muy próximos. En cuanto a la forma paralelo, ésta descompone H(z) como suma de fracciones simples. Cada una de ellas tiene un denominador que corresponde a un 111 3.4. Efectos de precisión finita Polos Butterworth 8. o: cuantif. 8 bits 90 0.9 120 D *: Sin cuantif 60 0.6 C 150 30 B A 180 0 A' B' 210 330 C' D' 300 240 270 Figura 3.21: Movimiento de los polos de un filtro de Butterworth de orden 8 al cuantificar los coeficientes. polo real o un par de polos complejos conjugados. Por tanto los coeficientes del denominador de una fracción sólo influyen en los polos asociados a la misma (lo mismo que en la forma en cascada). Por contra, en la forma paralelo, los ceros dependen de todos los coeficientes de los denominadores y todos los de los numeradores. Cabe esperar por tanto que los ceros se muevan más que en la forma directa. En general, con respecto a la cuantificación de los coeficientes, la mejor es la forma en cascada, seguida por la forma en paralelo, y finalmente la forma directa. Como contrapartida, las formas cascada y paralelo suelen requerir un mayor número de operaciones por muestra para ser implementadas. Mallas de raı́ces en secciones de segundo orden En la sección anterior hemos visto que interesa descomponer polinomios de grados altos en productos de polinomios de grados 1 y 2. Vamos a estudiar en este punto, las raı́ces de los polinomios de segundo grado con coeficientes 112 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS 6 bits 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 −1 −0.5 0 0.5 1 Figura 3.22: Malla de raı́ces de una sección de orden 2 con coeficientes cuantificados con 6 bits. cuantificados. Consideremos un polinomio de grado 2, 1 − a1 z −1 − a2 z −2 , y sus raı́ces r e±jθ 1 − a1 z −1 − a2 z −2 = (1 − r ejθ z −1 )(1 − r e−jθ z −1 ) = 1 − 2r cos θz −1 + r2 z −2 (3.15) Por simple identificación es fácil ver que a1 corresponde con (el doble de) la parte real de la raı́z mientras que a2 corresponde con el módulo al cuadrado de la misma. Si cuantificamos a1 y a2 de forma uniforme, consideramos todas las posibles combinaciones de valores cuantificados de a1 con cada valor cuantificado a2 , y realizamos una representación gráfica de las raı́ces se obtiene la figura 3.22, denominada malla de raı́ces. Es posible observar que las raı́ces no se distribuyen de forma uniforme por el plano z siendo menos densa la rejilla en las proximidades del eje real, y más densa cerca del eje imaginario. Los puntos de la rejilla representan el conjunto de las raı́ces posibles del polinomio de grado 2 con coeficientes cuantificados. En otras palabras, los filtros implementados tendrán sus raı́ces en uno de los puntos marcados. Si el filtro que deseamos realizar tiene sus raı́ces (ceros o polos) cerca del eje imaginario, no habrá problemas, pero si las raı́ces están cerca del eje real, como aquı́ la densidad es menor, el error que se comete en la ubicación de las raı́ces (y por tanto en la respuesta en frecuencia) será mayor. 113 3.4. Efectos de precisión finita s s - s - x[n] a 6 ?z −1 a = r cos θ Hs HH b = r sen θ −b 6 ?b s - s y[n] a 6 @ @X X ?z −1 H Xs HH XX X Figura 3.23: Forma acoplada de una sección de segundo orden. Para solucionar el problema de la no-homogeneidad de la malla de raı́ces surgen las formas acopladas. Éstas no son más que estructuras, en las que los coeficientes que intervienen en la misma son la parte real e imaginaria de los polos. Por tanto, cuando se cuantifican los coeficientes uniformemente, se está cuantificando uniformemente la parte real e imaginaria de los polos. La forma acoplada se muestra en la figura 3.23. La función de transferencia (ver problema 3) de la estructura de la figura 3.23 es: H(z) = r sin θ z −1 1 − 2r cos θ z −1 + r2 z −2 (3.16) Las posibles ubicaciones de los polos al cuantificar uniformemente los coeficientes de la forma acoplada se muestra en la figura 3.24. Las formas acopladas son interesantes si tenemos polos cerca del eje real. Tienen el inconveniente de requerir más operaciones por muestra. Efectos de la cuantificación de los coeficientes en filtros FIR Los filtros FIR resultan interesantes por dos propiedades que tienen: Son siempre estables. Si los coeficientes son simétricos tienen fase lineal. 114 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS 6 bits 1 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 −1 −0.5 0 0.5 1 Figura 3.24: Malla de raı́ces de una forma acoplada. Cabrı́a preguntarse si por el hecho de que los coeficientes estén cuantificados se pierden estas propiedades. Con respecto a la estabilidad, ésta se mantiene pues cualquier filtro FIR es estable. Con respecto a la linealidad de fase, ésta se produce si existe simetrı́a en los coeficientes. Nótese que por el hecho de cuantificar los coeficientes no se pierde la simetrı́a, por lo que la cuantificación de los coeficientes no afecta a la linealidad de la fase de los filtros FIR. Por tanto, el único efecto de la cuantificación de los coeficientes será una variación en la posición de los ceros y del módulo de H(ejω ). 3.4.2. Cuantificación de las muestras de entrada Sea x[n] la secuencia de muestras de entrada a un filtro digital. En la práctica dichas muestras están cuantificadas, es decir toman un conjunto discreto de valores posibles. (véase el apartado 1.6) El efecto de la cuantificación se puede ver como si las muestras (sin cuantificar) antes de entrar en el filtro se hubieran hecho pasar por un sistema no lineal sin memoria cuya relación entrada salida se muestra en la figura 3.25. De esta forma, el filtro digital H(z) con muestras de entrada cuantificadas, se puede considerar como si tuviéramos muestras sin cuantificar aplicadas a un sistema no lineal (el cuantificador) seguido del filtro H(z). El análisis del 115 3.4. Efectos de precisión finita comportamiento del filtro precedido por una no linealidad es complicado. Si se cumple que: El número de niveles de cuantificación es alto. Entre dos muestras consecutivas, hay muchos niveles de cuantificación de diferencia. es posible usar un modelo que simplifica el análisis de los efectos de la cuantificación. Dicho modelo consiste en suponer que la señal cuantificada x̂[n] es: x̂[n] = x[n] + e[n] (3.17) siendo x[n] las muestras sin cuantificar y e[n] un proceso aleatorio con las siguientes propiedades: e[n] es ruido blanco, es decir las muestras de e[n] en diferentes instantes están estadı́sticamente incorreladas. e[n] está incorrelada con la señal de entrada x[n]. La media de e[n] es nula. 1.5 1 y 0.5 0 -0.5 -1 -1.5 -1.5 -1 -0.5 0 x 0.5 1 1.5 Figura 3.25: Relación entrada salida de un cuantificador. 116 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS x[n] - Q - H(z) - ./ x[n] x̂[n] - + - H(z) x̂[n] 6 - e[n] Figura 3.26: Modelado de la cuantificación de las muestras de entrada como un ruido aditivo a la entrada del filtro. La varianza (potencia) vale σe2 = ∆2 12 (3.18) siendo ∆ el tamaño del escalón de cuantificación. La función densidad de probabilidad es uniforme entre −∆/2 y ∆/2. Por lo tanto a la hora de analizar el efecto de la cuantificación de las muestras de entrada en la salida del mismo, supondremos que: Las muestras de entrada están sin cuantificar. Tenemos una segunda señal, el ruido de cuantificación e[n], a la entrada del filtro y sumada con la anterior. Como el filtro es un sistema lineal, para determinar la salida determinaré independientemente la señal a la salida, y la potencia y DEP del ruido de cuantificación tras pasar por el filtro. En otras palabras, modelaremos el comportamiento de la no linealidad suponiendo que tenemos un ruido añadido en la salida. Nótese que el uso del modelo de ruido aditivo simplifica notablemente el análisis. Sin embargo el modelo no es más que eso, un modelo, que únicamente es válido si se cumplen las hipótesis vistas más arriba. Es decir, por ejemplo no es posible intentar medir el ruido de cuantificación anulando las muestras de entrada y observando la potencia de ruido a la salida del filtro, ya que en ese caso los valores cuantificados también son cero, y la salida del filtro también. 3.4.3. Redondeos en las operaciones Las operaciones básicas que se realizan para implementar filtros digitales son productos y sumas. Vamos a ver en este punto como influye el hecho de que los números estén representados en coma fija para realizar las operaciones. 117 3.4. Efectos de precisión finita En sistemas de coma fija, los números (coeficientes y muestras) se representan utilizando B bits de los cuales: 1 bit corresponde al signo. B − 1 bits corresponden a la mantisa según un determinado formato. Se suelen emplear los formatos signo y módulo, complemento a 1 y complemento a 2. El más utilizado es complemento a 2 por una razón que se verá más adelante. Sea cual sea el formato empleado, se tendrán B − 1 bits que denotaremos como b0 , . . . , bB−2 , siendo b0 el bit menos significativo (LSB) y bB−2 el más significativo (MSB). Hay dos formas habituales de considerar el número representado por un conjunto de bits. En la primera forma, el número representado es un entero: I= B−2 X bk 2k (3.19) k=0 En la segunda forma, se considera que el número representado es un número menor que la unidad, que denominaremos fraccionario: F = bB−2 2−1 + bB−3 2−2 + · · · + b0 2−(B−1) (3.20) En la implementación de filtros digitales se suele preferir esta segunda forma debido a que el producto de dos números fraccionarios (menores que uno) da como resultado un número fraccionario. Cuando se multiplican dos números fraccionarios, el resultado requiere ser representado con más bits. Para entender la afirmación anterior pensemos en números fraccionarios en base 10, y pongamos un ejemplo en que los factores tienen dos dı́gitos: 0,31 × 0,47 = 0,1457 Como puede verse, el resultado tiene un tamaño de mantisa que es el doble de la de los factores. Si dicho resultado, debe ser almacenado de nuevo con dos dı́gitos se estarı́a cometiendo un error que podrá ser por truncamiento o redondeo. Habitualmente en los DSP se redondea el resultado. El redondeo del resultado se suele modelar como una cuantificación, de forma similar a como vimos en el apartado 3.4.2. Estrictamente hablando, la cuantificación representa una no linealidad, lo que convierte el filtro implementado en no lineal. Sin embargo, bajo las mismas hipótesis que se vieron en el apartado 3.4.2 se puede modelar cada redondeo 118 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS como una fuente de ruido aleatorio que denominaremos ruido de redondeo, con las siguientes caracterı́sticas: Es ruido blanco, es decir las muestras del ruido de redondeo en diferentes instantes están estadı́sticamente incorreladas. El ruido de redondeo está incorrelado con la señal de entrada x[n]. La media del ruido de redondeo es nula en el caso del redondeo y −∆/2 en el caso del truncamiento. La varianza vale ∆2 12 siendo ∆ el tamaño del escalón de cuantificación. σe2 = (3.21) La función densidad de probabilidad es uniforme entre −∆/2 y ∆/2 en el caso de redondeo y entre −∆ y cero en el caso de truncamiento. Los distintos ruidos de redondeo son estadı́sticamente independientes. Los diferentes ruidos de redondeo, se propagarán por las ramas del filtro manifestándose a la salida del filtro como un ruido añadido. En la sección 3.4.3 veremos como se calcula dicha potencia de ruido a la salida del filtro. Con respecto a las sumas, éstas no presentan ningún problema en cuanto a errores de redondeo: la suma de dos números con dos decimales es un número con dos decimales. Sin embargo, hay que prestar atención a que la suma de dos números menores que la unidad puede ser mayor que la unidad. Este tema será tratado en el punto 3.4.4 Arquitecturas de DSP Las operaciones producto y suma (acumulación) constituyen el núcleo de las operaciones a realizar en los filtros digitales; se suelen llevar a cabo en unidades de cálculo especializadas de los DSP denominadas MAC (Multiply Acumulate). Existen dos tipos de arquitecturas básicas que denominaremos de acumulador de simple ancho (o los MAC antiguos) y de acumulador de doble ancho (o MAC modernos). La mayorı́a de los DSP actuales corresponden al segundo tipo, pero dado que aún existen DSP del otro tipo (principalmente debido a su menor coste), ambos serán tratados aquı́. La figura 3.27 muestra ambos tipos de MAC para un tamaño de palabra de B bits. 119 3.4. Efectos de precisión finita B B B B - × B B B B más significativos ? + B ? Acumulador B B ? Salida al bus (a) - × B 2B ? + B 2B ? Acumulador 2B 2B B ? Salida al bus (b) Figura 3.27: Modelos de arquitectura de MAC. (a):MAC con acumulador de simple ancho. (b):MAC con acumulador de doble ancho. En el MAC con acumulador de simple ancho se realiza el redondeo inmediatamente después de cada producto. En el MAC con acumulador de doble ancho el redondeo se realiza cuando el resultado final es extraı́do del MAC, es decir las acumulaciones se realizan con toda la precisión del resultado del producto. El resultado se extrae del MAC para: • Almacenar su valor para un instante posterior (z −1 ) • Cuando el resultado se corresponde con el nodo de salida del filtro y por lo tanto el resultado debe ser enviado al D/A con B bits. • En implementaciones en cascada y paralelo, cuando el resultado corresponde a la salida de un bloque de la estructura.1 En la figura 3.28 se muestran las fuentes de ruido para acumulador de simple y doble ancho en una forma directa II. Mientras que con acumuladores 1 Existen dos posibles formas de implementar estas estructuras. Una consistirı́a en implementar cada una de las secciones independientemente, tomando la salida de una etapa como entrada de la siguiente. La otra consistente en implementar de forma global la estructura. En este segundo caso es posible realizar implementaciones con menos redondeos a costa de una mayor complejidad de implementación, ya que en vez de implementar un bloque básico (sección de segundo orden) y utilizarlo repetidamente hay que hacer una estructura a medida. 120 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS n3 r - r - 6n1 b0 r - ? z −1 n4 6 a1 r b1 r r? 6n2 r r ? r-r ? ? z −1 n5 6 b2 a2 r r r? (a) r-r ? n1 - r r - n2 rr ? b0 r - rr ? 6 ? z −1 6 r a b1 1 r - 6 ? z −1 r b2 a 2 r (b) -r 6 -r Figura 3.28: Fuentes de ruido de redondeo en una forma directa II. (a):con acumuladores de simple ancho. (b): con acumuladores de doble ancho de simple ancho tras cada producto hay un redondeo (una fuente de ruido), con acumulador de doble ancho hay una fuente de ruido cada vez que se termina de hacer productos y acumulaciones. La ventaja de los acumuladores de doble ancho es que reducen el número de redondeos que se efectúan. Ello hace que la potencia de ruido de redondeo a la salida del filtro sea menor. Cálculo de la potencia de ruido de redondeo a la salida Acabamos de ver como el redondeo en las operaciones se puede modelar como unas fuentes de ruido aditivo. Normalmente, lo que interesa conocer es la potencia de ruido de redondeo a la salida del filtro. Este ruido es algo similar al ruido introducido por los componentes que procesan las señales analógicas en los filtros analógicos. La diferencia fundamental con el caso analógico es que el ruido en los filtros digitales puede hacerse arbitrariamente pequeño sin más que aumentar el número de bits con que se realizan las operaciones. Para calcular la potencia de ruido total a la salida del filtro, hay que determinar la potencia de ruido de cada una de las fuentes a la salida del filtro y finalmente sumarlas en potencia (debido a que realizamos la hipótesis de que los diferentes ruidos son procesos aleatorios independientes). En el caso de la figura 3.28-(b) vemos como el ruido n2 está directamente en la salida, mientras que el ruido n1 es como si estuviera a la entrada. Por tanto, dicho ruido n1 se manifiesta a la salida tras ser filtrado por una función de transferencia que coincide en este caso con la H(z) del filtro. Recordemos que si un ruido blanco r 121 3.4. Efectos de precisión finita de potencia σ 2 atraviesa un filtro de respuesta impulsional h[n] presentará a la salida del mismo una potencia Pout que vendrá dada por: Pout = σ 2 X |h[n]|2 (3.22) n Si suponemos que tenemos B bits (incluyendo el signo), la potencia de cada fuente de ruido será: 2 2/2B 2−2B = (3.23) σ2 = 12 3 Por lo tanto la potencia total de ruido, debida a ambos redondeos, valdrı́a en el caso de acumuladores de doble ancho: 2−2B 2−2B X Pout = + |h[n]|2 (3.24) 3 3 n En el caso de acumuladores de simple ancho (figura 3.28-(a)), se deberı́a determinar la función de transferencia desde cada una de las fuentes de ruido hasta la salida. Suele ser conveniente, dado que muchas de esas funciones de transferencia son la misma, agrupar las fuentes de ruido en fuentes con mayor potencia. Ası́ por ejemplo, las fuentes n1 y n2 podrı́an agruparse en una única fuente de potencia doble en la entrada mientras que n3 , n4 y n5 se pueden agrupar en una fuente de ruido de potencia triple a la salida. La potencia total de ruido en el caso de acumuladores de simple ancho resulta pues: Pout = 3 2−2B X 2−2B |h[n]|2 +2 3 3 n (3.25) Para poder agrupar las fuentes, es necesario moverlas. Para ello hay que seguir unas reglas: Si una fuente inyecta ruido de cuantificación en un nodo del que sólo sale una rama cuyo peso es ±1 o z −1 , dicha fuente de ruido puede ser movida al nodo destino de dicha rama. En la figura 3.29, consistirı́a en mover la fuente de donde está en a) a b). Si una fuente inyecta ruido de cuantificación en un nodo al que llega una rama cuyo peso es ±1 o z −1 , y dicha rama es la única que sale del nodo origen de la misma, la fuente de ruido puede ser movida al nodo origen. En la figura 3.29, consistirı́a en mover la fuente de donde está en b) a a). Es importante tener en cuenta que en caso de duda no se debe mover las fuentes de ruido, ya que no agrupar al máximo las fuentes de ruido únicamente nos hará realizar más cálculos de los mı́nimos necesarios, mientras que agruparlas mal provocará que todos los cálculos sean erróneos. 122 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS r @ c R 1 @ @ 1 @r K z −1 A A n1 c 2 r a) r c3 c 4 r r @ c @ 5 I @ @r r @ c R 1 @ @ @r r c 2 r c3 c 4 r r @ c @ 5 n1 I @ @r 1 - z −1 b) Figura 3.29: Movimiento de fuentes de ruido. Ruido de redondeo en formas en cascada En las formas en cascada, el ruido de redondeo de una etapa es filtrado por las siguientes. Dicho filtrado puede amplificar o atenuar el ruido. Existirán varias formas de agrupar ceros y polos. Dependiendo del agrupamiento y el orden, existirán formas más o menos ruidosas. Aunque no existe una regla universal, se ha encontrado una regla empı́rica para agrupar ceros y polos: 1. Tomar los polos más cercanos a la circunferencia unidad. 2. Emparejar los anteriores polos con los ceros que tengan más próximos. 3. Repetir los dos pasos anteriores para el resto de ceros y polos. Una vez realizado el emparejamiento, se ordenan de una de las dos siguientes formas: Las secciones se ordenan por proximidad de los polos a la circunferencia unidad. Las secciones se ordenan por lejanı́a de los polos a la circunferencia unidad. Productos por coeficientes mayores que uno En ocasiones, hay filtros que tienen coeficientes mayores que la unidad. Con el formato fraccionario para números de coma fija, hemos visto que el mayor número representable es (ligeramente menor que) la unidad. Las unidades de cálculo de los DSP permiten ser configuradas para realizar el producto de un número fraccionario por un entero. De este modo para realizar el producto por 1.4 hay que realizar dos productos, primero por 0.7 y a continuación por 2. 123 3.4. Efectos de precisión finita Los productos por números enteros, no introducen ruido de redondeo ya que el producto de un entero por un número fraccionario no genera nuevos decimales. En la figura 3.30-(b) y (c) se muestra un ejemplo de realización en forma directa II, en la que todos los coeficientes son menores que la unidad o enteros. q - q - 0,16 q - q x[n] q q - q - q - 0,16 - q y[n] x[n] 6 1,42 q ? z −1 0,24 q - ? z −1 6 −0,80 0,18 q q - q - y[n] 26 6 q q ? z −1 0,71 q 0,24 - ? z −1 6 −0,40 0,18 q q - 6 q (a) 6 q 6 q (b) q x[n] - q - 2 6 0,71 q q 0,08 - q - q y[n] ? z −1 q 0,12 - ? z −1 6 −0,40 0,09 q q - 6 q 6 q (c) Figura 3.30: Implementación de filtros con coeficientes mayores que uno. (a):Filtro original. (b): Primera forma de hacer que todos los coeficientes sean menores que uno o enteros. (c): Segunda forma de hacer que los coeficientes sean enteros o menores que uno. 3.4.4. Escalado en sistemas de coma fija Cuando los valores de los nodos de un filtro se representan en coma fija caben como hemos visto dos interpretaciones. En la primera los números son enteros (ec. (3.19)) y en la segunda son fraccionarios (ec. (3.20)). Ya vimos que en filtros digitales se suele utilizar más la segunda. 124 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS Cuando se suman dos de estos números fraccionarios, el resultado puede ser mayor que la unidad. En este caso se produce una saturación (overflow) cuyos efectos concretos dependen del DSP concreto. Normalmente lo que sucede en caso de saturación es: Se produce una verdadera saturación: 0,7 + 0,5 = 1 Se obtiene un resultado cı́clico: 0,7 + 0,5 = −0,8 (= 1,2 − 2) En ambos casos el resultado es erróneo. Otra posible circunstancia que puede hacernos tener valores mayores que la unidad es cuando multipliquemos un valor fraccionario por un coeficiente entero (mayor que la unidad). Ası́ como el ruido de redondeo es inevitable, la saturación es evitable. Para ello lo que debe hacerse es garantizar que la señal de entrada es lo suficientemente pequeña como para que en ningún nodo se supere la amplitud máxima posible. Para determinar qué amplitud máxima debe tener la señal de entrada vamos a realizar el siguiente análisis. Supongamos que: |x[n]| ≤ M Sea hxa [n] la respuesta impulsional desde la entrada del filtro hasta el nodo a. Llamemos ya [n] la señal asociada a dicho nodo. ya [n] = x[n] ∗ hxa [n] = X hxa [k] x[n − k] k por tanto: |ya [n]| = | X k hxa [k] x[n − k]| ≤ X |hxa [k] x[n − k]| ≤ M k X |hxa [k]| k Si deseo que |ya [n]| sea menor que C debo hacer que: |x[n]| < M = X C |hxa [k]| (3.26) k Normalmente C = 1 (señales normalizadas). No obstante, si el valor del nodo va a ser multiplicado por un coeficiente mayor que la unidad, r, debemos hacer que el valor a la entrada de dicho nodo sea menor que C = 1/r. Si la señal de entrada, está acotada en el margen |x[n]| < 1, deberé preescalar la señal de entrada para reducir su amplitud antes de introducirla al filtro multiplicándola por M (M < 1). De esa forma aseguraré que la señal a la entrada del filtro tiene la amplitud correcta. El único efecto del preescalado es una reducción de la ganancia del filtro. Dicha ganancia puede ser compensada: 125 3.4. Efectos de precisión finita u M u - |x[n]| < 1 - H(z) |x1 [n]| < M - y[n] Figura 3.31: Preescalado para prevenir saturaciones. De forma analógica, aumentando la ganancia de las etapas que siguen a la salida y[n]. De forma digital, multiplicando por 1/M la salida y[n] De forma digital modificando algunos coeficientes del filtro. Por ejemplo: H(z) = =M b0 + b1 z −1 + · · · + bL z −L = 1 − a1 z −1 − · · · − aN z −N b0 /M + b1 /M z −1 + · · · + bL /M z −L 1 − a1 z −1 − · · · − aN z −N Si tengo varios nodos, debo garantizar la anterior condición para todos los nodos en que se producen sumas. Ello implica tomar el menor M de los distintos nodos. Si se utiliza complemento a 2, no será necesario comprobar aquellos nodos que sean sumas parciales cuyo valor únicamente se sume con otros nodos. Ello es debido a una propiedad de los números en complemento a 2 (para más detalles se pueden consultar libros de electrónica digital o fundamentos de computadores) que dice que: Si al hacer sumas (y restas) encadenadas de números en complemento a 2, se producen overflows parciales y se desprecian los bits de acarreo, el resultado final será correcto si éste no presenta overflow 126 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS Un ejemplo de lo que queremos decir en base 10 serı́a, en el que suponemos números fraccionarios (menores que la unidad): ((0,7 + 0,4) − 0,6)) + 0,3) = 0,8 En cálculos en complemento a 2, 0,7 + 0,4 = 0,1 (se desprecia el acarreo), y tras restar 0.6 y sumar 0.3 obtendrı́amos el resultado correcto. Esta propiedad no la tienen otro tipo de representaciones numéricas como el complemento a 1 o signo y mantisa. En la práctica, dado que las estructuras de los filtros contienen retardadores, muchas veces nos podremos ahorrar comprobaciones sin más que comprobar un nodo de la cadena de retardadores. El criterio dado por la expresión (3.26) es el único que garantiza totalmente la no saturación. Sin embargo en muchas ocasiones puede resultar demasiado conservador. Nótese que el ruido de redondeo, es independiente de la amplitud de la señal de entrada, y por tanto, reducir en exceso la amplitud de entrada implica una disminución (innecesaria) de la relación S/N a la salida del filtro. Existen otros criterios, que aunque no garantizan totalmente el que no se produzca saturación, sı́ que lo hace si se cumplen ciertas hipótesis. Si la señal de entrada es un tono de frecuencia ω0 (o una señal de banda estrecha centrada en la misma frecuencia), la condición que se debe cumplir es: M< C |Hxa (ejω0 )| (3.27) tomándose el mı́nimo M de los distintos nodos. Si se sabe que es un tono pero no se conoce la frecuencia del tono, la condición es: M< 3.4.5. C máxω {|Hxa (ejω )|} (3.28) Ciclos lı́mite Cuando las operaciones se realizan con redondeos y saturaciones, los filtros lineales pasan a comportarse como no lineales. Si no se producen saturaciones y el número de niveles de cuantificación de diferencia entre muestras consecutivas es alto, se puede ignorar el comportamiento no lineal y pasar a modelar las cuantificaciones como ruido aditivo. Los ciclos lı́mite son oscilaciones que se producen a la salida de los filtros IIR cuando la señal de entrada se hace nula. Como se sabe, los filtros IIR causales y estables que hemos visto a lo largo del tema, tienen respuestas impulsivas que decrecen de forma exponencial. Ello hace que cuando la entrada del filtro 3.5. Problemas 127 es cero, la salida tiende a cero de forma exponencial. Sin embargo, cuando la señal de salida comienza a hacerse pequeña, el filtro empieza a comportarse de forma no lineal. La no linealidad combinada con la realimentación de los filtros IIR puede producir unas oscilaciones llamadas ciclos lı́mite. Resumiendo, para que se puedan producir ciclos lı́mite debe suceder: Que el filtro tenga realimentaciones (IIR). Que el filtro presente un comportamiento no lineal. Esto sucede cuando la amplitud es muy pequeña (y la relación E/S del cuantificador es una escalera) o cuando la amplitud de salida es muy grande (saturación). Existen determinadas estructuras especiales que garantizan que nunca se puedan producir ciclos lı́mite, a costa de realizar un mayor número de operaciones por muestra. 3.5. Problemas 1. Determine la longitud máxima de un filtro FIR que se pueda implementar usando un DSP que utiliza buffers circulares y que ejecuta 16 millones de instrucciones por segundo siendo la frecuencia de muestreo 44.1 Khz. 2. Implemente un programa para realizar los cálculos de la forma directa II transpuesta de la figura 3.13. 3. Determinar la función de transferencia de la estructura de la figura 3.23 y verificar que coincide con la de la ecuación (3.16). 4. Realizar un programa que permita implementar los cálculos para calcular una muestra de salida cuando llega una de entrada de la estructura de la figura 3.23. 5. Dibuje las fuentes de ruido de redondeo de un filtro IIR de orden 4 implementado en forma directa I. Considere los casos de acumuladores de simple y de doble ancho. Agrupe las fuentes tanto como le sea posible y determine la función de transferencia de cada fuente hasta la salida. 6. Indique las fuentes de ruido de cuantificación en un filtro FIR en forma transpuesta tanto en el caso de acumuladores de simple como de doble ancho. 7. Indique las fuentes de ruido de redondeo en las operaciones en una forma acoplada (figura 3.23. Agrupe las fuentes tanto como sea posible. 128 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS Determine la potencia total de ruido de redondeo a la salida. Realice el ejercicio para acumuladores de simple y doble ancho. 8. Determinar el número de posibles realizaciones en cascada para un filtro de orden 2N (todos los polos y los ceros complejos). 9. Considere el filtro: H(z) = 0,0102 + 0,0408 z −1 + 0,0613z −1 + 0,0408z −3 + 0,0102z −4 1 − 1,9684 z −1 + 1,7359z −2 − 0,7245z −3 + 0,1204z −4 Se pide (utilizando Matlab para los cálculos): Dibuje las formas directas I y II del anterior filtro. Determine la amplitud máxima de la entrada en ambos casos para que no se pueda producir saturación en caso de señal de entrada arbitraria. Determine la amplitud máxima de la entrada en ambos casos para que no se pueda producir saturación en caso de que la señal de entrada sea un tono. Suponiendo que se implementa el filtro con un DSP de 16 bits, con acumulador de doble ancho, determine la potencia de ruido a la salida para las formas directas I y II. Calcular la relación S/N máxima a la salida cuando la entrada es un tono para la forma directa I y II. 10. Considere la H(z) del problema anterior. Factorice (con la ayuda de Matlab) para poder realizar una implementación en cascada. G1 1 + b11 z −1 + b21 z −2 H(z) = G 1 − a11 z −1 − a21 z −2 G2 1 + b12 z −1 + b22 z −2 1 − a12 z −1 − a22 z −2 Dibuje todas las posibles realizaciones en cascada. Implemente cada sección en forma directa II. Note que tiene dos grados de libertad adicionales, pues puede elegir libremente dos de las variables G, G1 y G2 con tal que: 0,0102 = G × G1 × G2 Elija G lo mayor posible de modo que no se produzca saturación en ningún nodo de la primera sección. A continuación G1 para que no se produzca saturación en la segunda etapa. Considere que la señal a la entrada serán tonos de frecuencia arbitraria. 129 3.5. Problemas Para cada una de las cuatro posibilidades, determine el ruido de redondeo a la salida si el DSP tiene un tamaño de palabra de B = 14 bits. 11. Compruebe que las tres estructuras de la figura 3.30 tienen la misma H(z). Indique las fuentes de ruido de redondeo en las tres si se realiza una implementación en coma fija con DSP de acumulador de doble ancho. 12. Considere la siguiente H(z): H(z) = 0,0102 + 0,0408 z −1 + 0,0613z −1 + 0,0408z −3 + 0,0102z −4 1 − 1,9684 z −1 + 1,7359z −2 − 0,7245z −3 + 0,1204z −4 Dibuje la implementación en forma directa II transpuesta. Determine la máxima amplitud a la entrada. Determine la potencia de ruido de redondeo a la salida si el DSP tiene una longitud de palabra de 16 bits y se utilizan acumuladores de doble ancho. ¿Y para el caso de acumuladores de ancho simple? Proponga ahora una realización en la que todos los coeficientes sean enteros o menores que uno. Indique cuales serı́an las fuentes de ruido ahora. 130 CAPı́TULO 3. IMPLEMENTACIÓN DE FILTROS Capı́tulo 4 Filtros Adaptativos 4.1. Introducción Un filtro adaptativo no es más que un filtro cuyos coeficientes varı́an con el tiempo. Lo que los hace especialmente interesantes es que la variación de los coeficientes es automática. En otras palabras, diseñar un filtro adaptativo consistirá en determinar la regla de variación de los coeficientes. El resto será automático. Existen dos razones fundamentales para elegir un filtro adaptativo frente a un filtro de coeficientes fijos: Porque no sepamos qué filtro usar a priori. Porque el filtro óptimo que necesitemos, debido a que la señal no sea estacionaria, deba variar con el tiempo. 4.1.1. Ejemplos de sistemas adaptativos En esta sección vamos a presentar algunos ejemplos de sistemas adaptativos con los que estamos familiarizados. CAG es un circuito usado ampliamente que permite variar su ganancia en función de la amplitud de la señal de entrada. Cuando la señal de entrada es de poca potencia el factor de amplificación es grande y a la inversa, de modo que la potencia a la salida tiene una amplitud prácticamente independiente de la amplitud de entrada. Pupila sistema biológico que regula su apertura en función inversa a la luz incidente, de modo que el margen de variación de energı́a luminosa que 131 132 CAPı́TULO 4. FILTROS ADAPTATIVOS reciben las células de la retina sea mucho menor que las variaciones de luminosidad que se pueden encontrar en la naturaleza. Los ejemplos anteriores son ejemplos sencillos de sistemas que varı́an su comportamiento en función de las señales recibidas. En el caso de sistemas artificiales para el filtrado de señales, aunque conceptualmente serı́a posible pensar en sistemas analógicos adaptativos, en la práctica únicamente se han desarrollado sistemas adaptativos discretos de cierta complejidad. 4.1.2. Caracterı́sticas fundamentales de los sistemas adaptativos Las caracterı́sticas fundamentales de los sistemas adaptativos son: Automáticamente se adaptan (auto-optimizan) de acuerdo al entorno cambiante (no estacionario). Pueden ser entrenados: pueden aprender cómo funcionar de forma óptima. No hay métodos de sı́ntesis de filtros adaptativos, se autodiseñan. Lo que existen son reglas de aprendizaje (algoritmos de adaptación). El estudio se hace considerándolos sistemas no lineales variantes. Son más complejos y difı́ciles de analizar que los sistemas fijos. Su comportamiento, sin embargo, es mejor ante señales de caracterı́sticas desconocidas o variantes. El análisis se suele hacer por simulación. 4.1.3. Fundamentos de los de sistemas adaptativos Todos los sistemas adaptativos que veremos, independientemente de su aplicación responden a un esquema general que se muestra en la figura 4.1. En x[n] - Filtro. Adapt. - y[n] 6 d[n] - Algor. Adapt. Figura 4.1: Esquema general de un sistema adaptativo. 4.2. Aplicaciones 133 dicho esquema, existen dos elementos básicos: El filtro adaptativo propiamente dicho. Un algoritmo de adaptación, que recibe como entradas la señal de entrada x[n], la salida del filtro y[n] y una señal auxiliar llamada señal de referencia o señal deseada, d[n]. El algoritmo de adaptación compara la salida y[n] con la señal de referencia d[n] y trata de calcular los mejores coeficientes del filtro para que y[n] se parezca (de forma estadı́stica) a d[n]. En los sistemas adaptativos siempre encontraremos un conjunto de señales: x[n]: Señal de entrada al filtro adaptativo. y[n]: Señal de salida del filtro adaptativo. d[n]: Señal de referencia. e[n] = d[n] − y[n]: Señal error entre la señal de referencia y la salida del filtro. Los algoritmos adaptativos tratan normalmente de minimizar algún parámetro de dicha señal de error, tı́picamente su potencia. En el resto del capı́tulo veremos, en la sección 4.2, algunas aplicaciones tı́picas de los filtros adaptativos. Seguiremos con una aproximación a la teorı́a de los filtros óptimos. Finalmente presentaremos los algoritmos adaptativos basados en el gradiente y su implementación práctica, el LMS. 4.2. Ejemplos de aplicación de sistemas adaptativos En esta sección vamos a estudiar algunos ejemplos de aplicación de los sistemas adaptativos que nos van a ir permitiendo descubrir sus ventajas y limitaciones. 4.2.1. Identificación de sistemas Lo que se hace en esta aplicación es modelar un sistema lineal desconocido, denominado planta, con un filtro adaptativo. Para ello se aplica una señal tanto a la Planta como al sistema adaptativo y se varı́an los coeficientes hasta que el error entre las dos salidas sea mı́nimo. En ese momento, las respuestas en frecuencia de la planta y del filtro adaptativo serán lo más parecidas que se pueda. Como del filtro adaptativo se conocen los coeficientes, podremos conocer la respuesta en frecuencia de la planta. 134 CAPı́TULO 4. FILTROS ADAPTATIVOS d[n] - Planta??? ?+ e[n] x[n] 6− - - Filtro. Adapt. y[n] Figura 4.2: Identificación de Sistemas. 4.2.2. Predicción En esta aplicación se trata de predecir valores futuros de la señal de entrada. Para ello se enseña al sistema adaptativo qué coeficientes deberı́a tener para minimizar el error entre la muestra actual y una predicción de la misma hecha en base a muestras anteriores de la misma señal de entrada. Los coeficientes obtenidos se copian en otro filtro que filtra la señal de entrada sin retardar. Si la señal de entrada es estacionaria, la salida de este segundo filtro es una predicción de la muestra que está por venir. x[n − 1] x[n] - z −1 d[n] + - Filtro Adap. ? − e[n] y[n] ??? - Coef. Copiados - x̂[n + 1] Figura 4.3: Predicción lineal. 4.2.3. Cancelación de ruido Para entender esta aplicación fijemos un escenario tı́pico donde se puede encontrar la misma. Imaginemos un micrófono que recoge la voz en un 135 4.2. Aplicaciones ambiente ruidoso. Dicho micrófono entregará una señal que será suma de la voz (s) más un ruido (n1 ). Supongamos que situamos otro micrófono en el mismo ambiente ruidoso. Dicho micrófono captará otro ruido n2 distinto (por estar captado en un lugar diferente) pero correlado con n1 . La relación entre ambos ruidos viene dada por un filtrado lineal y supondremos que el segundo micrófono, por su ubicación, no capta voz. Se supone que la voz está incorrelada con el ruido ambiente. El esquema del origen de las señales se muestra en la figura 4.4. Las señales que introduciremos a nuestro filtro adaptativo serán las captadas por los micrófonos. Lo que se hace es introducir un filtrado adaptativo en el canal que tiene sólo ruido y, mediante el algoritmo de adaptación, minimizar la potencia de la señal e. Si el filtro adaptativo tuviera un número de coeficientes suficiente, tras la adaptación, el ruido n3 a la salida del filtro adaptativo deberı́a ser igual a n1 , obteniendo en la salida únicamente voz. Para entender cómo funciona, pensemos que el filtro adaptativo únicamente sabe ajustar sus coeficientes de forma que la potencia de la señal e sea lo más pequeña posible. Dado que la voz está incorrelada con el ruido ambiente, la única señal que el filtro puede cancelar es el ruido ambiente que está correlado en ambas ramas. E{e2 } = E{(s + n1 − n3 )2 } = = E{s2 } + E{(n1 − n3 )2 } + 2E{s (n1 − n3 )} = = E{s2 } + E{(n1 − n3 )2 } Dado que s2 no depende de los coeficientes del filtro, el error será mı́nimo cuando: E{(n1 − n3 )2 } = 0 En la práctica hay una serie de consideraciones que conviene tener en cuenta. La primera de ellas es relativa a la causalidad. El filtro adaptativo será necesariamente causal. Ello implica que introducirá un cierto retardo sobre la señal n2 . Para que se pueda producir la cancelación, la señal n1 deberá estar retrasada con respecto a n2 . En caso contrario no se podrá lograr la cancelación. Es posible que existan componentes de ruido incorreladas en las señales captadas por los dos micrófonos. En ese caso, el filtro tratará de atenuar 136 CAPı́TULO 4. FILTROS ADAPTATIVOS s + n1 - + 6 s + ? e n1 H n2 n - Filtro Adap. − 6 Salida - n3 Señales disponibles como entrada Figura 4.4: Cancelación de ruido. dichas componentes de la rama que se filtra. Las componentes incorreladas de la rama superior pasarán a la salida, pues para el algoritmo adaptativo son indiscernibles de la señal de voz. El número de coeficientes del filtro debe ser suficientemente largo. Si fuera FIR, la duración de la respuesta impulsional deberı́a coincidir o ser superior a la de H. En caso contrario, no se podrá lograr la cancelación total. 4.2.4. Canceladores de eco En los circuitos internacionales de muy larga distancia, aparecen problemas de ecos producidos en las bobinas hı́bridas conversoras de dos a cuatro hilos (figura 4.5). Debido a desadaptaciones de impedancias, parte de la señal B de la figura 4.5 pasa a C (sumada con la señal que procede de E), retornando hasta D. Si la distancia del tramo a cuatro hilos es larga, se producen retardos apreciables en los ecos que resultan muy molestos si superan unas decenas de milisegundos. La primera solución que se dio al problema fueron los llamados supresores de eco. Los mismos se situaban en cada uno de los extremos del circuito a cua- A B - E D C Figura 4.5: Ecos en circuitos vocales de larga distancia. 137 4.2. Aplicaciones - D.A. ? ? Figura 4.6: Supresor de ecos. tro hilos; consistı́an en un circuito detector de actividad que, cuando detectaba voz proveniente del extremo lejano abrı́a el circuito hacia el mismo convirtiendo la transmisión en semiduplex y suprimiendo con ello el eco (figura 4.6). Los primeros circuitos supresores analógicos de eco eran del tipo mostrado en la figura 4.6. En ellos se puede ver que en la rama receptora de la parte de cuatro hilos de la bobina hı́brida habı́a un detector de actividad (DA) de señal remota. Si se detecta señal remota, se abrı́a un contacto en el extremo transmisor a cuatro hilos que impedı́a el retorno de la señal remota. Este sistema, sin embargo, tiene el inconveniente de que no permite que los dos interlocutores hablen a la vez, convirtiendo el circuito en semiduplex. Esto, en el caso de las comunicaciones vocales no es grave, pues normalmente, durante las conversaciones, un interlocutor habla y el otro escucha. Sin embargo, si la lı́nea telefónica se utiliza para transmitir datos utilizando un modem duplex, ésta solución no sirve. En los modems duplex también existe una separación de dos a cuatro hilos en el terminal. En este caso no cabe utilizar la técnica del supresor de ecos pues la transmisión debe ser duplex. Además, debe tenerse presente que la señal que pasa del extremo transmisor a cuatro hilos al receptor es de mucho mayor nivel que la señal recibida del extremo remoto, por lo que, aunque la atenuación transhı́brida sea grande, la interferencia del transmisor local sobre RCX Linea TRX 6 Figura 4.7: Interfaz telefónico de un modem. 138 CAPı́TULO 4. FILTROS ADAPTATIVOS A ? : ? D C ? B Figura 4.8: Cancelador adaptativo de ecos. el receptor puede ser elevada. A esta interferencia se la denomina eco local y provoca un aumento de la tasa de errores que puede llegar a ser inaceptable. El problema de los ecos puede resolverse con filtros adaptativos permitiendo una comunicación duplex. La figura 4.8 explica cómo se pueden emplear filtros adaptativos para este fin. Lo que se hace es reproducir en el sistema adaptativo el sistema lineal equivalente que recorre la señal de eco desde la rama A receptora hasta la rama B y restar las señales. En este caso también, el algoritmo de adaptación trata de minimizar la potencia de la señal de error. La señal en B se compone de dos términos, la señal proviniente de D y la señal indeseada A’, que es el resultado de que parte de la señal A pasa a través de la hı́brida. Suponiendo que la señal recibida y la transmitida están incorreladas, dado que el filtro adaptativo únicamente contiene en su entrada (A) la señal que origina el eco, el filtro adaptará su respuesta en frecuencia de modo que cancele la señal A’, no viéndose afectada la señal procedente de D. Aunque en principio cabrı́a pensar en canceladores fijos, en la práctica esto no se hace ası́ pues el filtro que hay que poner para lograr la cancelación depende de la lı́nea concreta empleada. Para finalizar este punto, conviene puntualizar un aspecto práctico importante. Aunque teóricamente serı́a posible adaptar el filtro durante su funcionamiento duplex, en la práctica no se hace ası́ por razones que se comentarán más adelante. Lo que se hace realmente, en el caso de circuitos vocales, es adaptar los coeficientes únicamente durante los periodos en que la señal proviniente de D (figura 4.8) es nula o muy pequeña. La diferencia con el supresor de eco es que durante los periodos de conversación simultánea de los dos extremos, suponiendo que la función de transferencia del eco no varı́e excesivamente rápido, es posible mantener una conversación duplex sin ecos. En el caso de los modems, la solución consiste en la transmisión semiduplex durante un periodo de inicialización de unas señales que permiten adaptar los canceladores. Una vez lograda la adaptación, el filtro adaptativo deja de adaptarse para pasar a comportarse como un filtro fijo. 139 4.2. Aplicaciones 4.2.5. Ecualizadores adaptativos En comunicaciones digitales aparecen dos causas de error: Interferencia entre sı́mbolos (ISI) y ruido. La señal a la entrada de un receptor digital se puede escribir como: y(t) = X aj p(t − jT ) + r(t) (4.1) j donde ak son los sı́mbolos transmitidos, r(t) es el ruido, y p(t) es la convolución entre el pulso transmitido, la respuesta impulsiva del canal y el filtro del receptor. Dicha señal se muestrea en los instantes tk = kT obteniendo: y(tk ) = ak p(0) + X aj p(kT − jT ) + r(tk ) (4.2) j6=k El primer término de la ecuación anterior está relacionado con el sı́mbolo transmitido en el instante tk . El segundo término es lo que se denomina interferencia entre sı́mbolos y el tercero, es el ruido. Esta señal discreta se debe filtrar en recepción para minimizar los términos indeseados, tanto de interferencia entre sı́mbolos como de ruido. El filtro óptimo depende del canal concreto empleado para la transmisión (p(t)) y por lo tanto desconocido, ası́ como de la forma del espectro del ruido aditivo. La figura 4.9 muestra un ecualizador adaptativo que minimiza el error en los instantes de muestreo. El conmutador estará en (2) en un primer momento. Durante este tiempo el transmisor genera una secuencia conocida por el receptor y que es la misma que genera Test . El filtro adaptativo modificará sus coeficientes de modo que la señal error (suma de interferencia entre sı́mbolos y ruido) sea lo más pequeña posible. Tras la fase de aprendizaje el conmutador está en (1) y se toma como señal deseada la propia detectada. Si la probabilidad de error es pequeña esto será correcto. Además la velocidad de adaptación deberá ser suficientemente âk - Salida Decisión - Ec. Adapt. - y e ? + d 1- 2 E E Er Test Figura 4.9: Ecualizador adaptativo para transmisión de datos. 140 CAPı́TULO 4. FILTROS ADAPTATIVOS lenta como para que un sı́mbolo erróneo aislado no afecte demasiado y descorrija el filtro de un modo irrecuperable. Si las caracterı́sticas del canal varı́an lentamente, el filtro se adaptará también, siempre y cuando la variación sea suficientemente lenta como para que la probabilidad de error no aumente en exceso y el sistema deje de funcionar. 4.2.6. Filtro en hendidura El objetivo de esta aplicación es eliminar una componente de frecuencia de una señal. Entrada + e 6 d W0 Salida - - cos ω0 t x ? y + - 6 - 90o - W1 Figura 4.10: Diagrama del filtro en hendidura Para ello, se introduce en el filtro adaptativo un tono de la frecuencia que se desea eliminar. En este caso, el algoritmo de adaptación también minimiza la potencia de la señal de error, y lo hace ajustando la amplitud y la fase del tono a la salida, y, de modo que se cancele con la componente de la misma frecuencia de la rama d. Una ventaja del sistema es que variando la frecuencia de la señal x puedo variar la frecuencia que se elimina. 4.3. Filtrado Óptimo Una vez vistas algunas de las posibles aplicaciones de los filtros adaptativos, vamos a comenzar en esta sección el estudio de su funcionamiento. En este punto estudiaremos cómo influye en la potencia de la señal error el valor de los coeficientes del filtro adaptativo, y encontraremos el valor de los coeficientes que minimizan dicha potencia. 141 4.3. Filtrado Óptimo r x0 w0 ? r x1 r xL w1 ? ··· wL ? + ? y Figura 4.11: Combinador lineal. 4.3.1. El combinador lineal El combinador lineal es una estructura del tipo mostrado en la figura 4.11. En ella podemos apreciar un vector de entradas xk , cada una de las cuales se multiplica por un coeficiente wk para, a continuación, sumar el resultado. Se llama combinador lineal porque, para un vector de coeficientes fijo, es lineal. Todas las entradas, pesos y salida varı́an con n (tiempo). Durante el proceso de adaptación, si los coeficientes wk dependen de los valores de las entradas xk , el sistema dejará de ser lineal. Las entradas del combinador lineal, en la aplicación de filtrado adaptativo, son muestras con diferentes retardos de la señal de entrada x. A esta estructura se la conoce como filtro transversal (FIR). La estructura de un filtro transversal (FIR) se muestra en la figura 4.12. En el caso de filtros adaptativos, los coeficientes dependerán del tiempo. x[n] z −1 z −1 z −1 r - r - w0 ? r r - w1 ? - r r w2 ? - r r - wL−1 ? r Figura 4.12: Filtro Transversal. r wL ? - r y[n] - r 142 CAPı́TULO 4. FILTROS ADAPTATIVOS 4.3.2. Notación matricial En el filtro transversal de la figura 4.12 podemos expresar la salida y[n] en cualquier instante como: y[n] = L X wk [n] x[n − k] (4.3) k=0 Dicha expresión se puede formular matricialmente de la forma: y[n] = W T [n] X[n] = X T [n] W [n] (4.4) donde el producto de matrices está definido en la forma habitual, W [n] es un vector columna1 que contiene los pesos del combinador lineal: W T [n] = [w0 [n], w1 [n], . . . , wL [n]] (4.5) y X[n] es un vector que contiene muestras de la señal x[n]: X T [n] = [x[n], x[n − 1], . . . , x[n − L]] 4.3.3. (4.6) Respuesta deseada y error Los sistemas que vamos a estudiar en estas notas serán todos de lazo cerrado. En ellos existen siempre las siguientes señales(figura 4.13): x[n]: Señal de entrada al filtro adaptativo. y[n]: Señal de salida del filtro adaptativo. d[n]: Señal de referencia. e[n] = d[n] − y[n]: Señal error entre la señal de referencia y la salida del filtro. En función de la aplicación concreta (ver sección 4.2), dichas señales tendrán un origen u otro. Sin embargo, en todos los ejemplos de aplicación vistos, es posible identificar las mismas. Consideraremos que el filtro adaptativo es un filtro transversal (FIR). Aunque existen algoritmos adaptativos para filtros IIR, no los consideraremos en 1 Los vectores se considerarán siempre vectores columna. Para considerar un vector como fila deberá aparecer transpuesto (X T ). 143 4.3. Filtrado Óptimo d[n] ?+ e[n] x[n] - Filtro. Adapt. 6− - y[n] Figura 4.13: Estructura tı́pica de filtrado adaptativo. estas notas, debido a que se emplean mucho menos, y las estrategias de adaptación que siguen son más complejas. El objetivo de los algoritmos adaptativos que veremos será siempre minimizar la potencia media de la señal error e[n]. De algún modo, determinarán los coeficientes del filtro transversal de modo que la señal y[n] se cancele lo más posible con d[n]. 4.3.4. Superficie de error Supongamos inicialmente que x[n] y d[n] son procesos aleatorios estacionarios. La potencia de la señal e[n] depende de los coeficientes que pongamos en el filtro adaptativo transversal. A la función que expresa la potencia de la señal error en función de los coeficientes del filtro la denominaremos Superficie de Error. Supongamos momentáneamente que el vector de pesos del filtro W no varı́a con el tiempo n. La señal de error es: e[n] = d[n] − y[n] = d[n] − W T X[n] (4.7) Su potencia instantánea vale: (e[n])2 = (d[n])2 + W T X[n] X T [n] W − 2 d[n] X T [n] W (4.8) Tomando esperanzas matemáticas en la anterior expresión y teniendo en cuenta que el vector de coeficientes W lo hemos fijado (es decir no es aleatorio) resulta: E{(e[n])2 } = E{(d[n])2 } + W T E{X[n] X T [n]} W − 2 E{d[n] X T [n]} W (4.9) 144 CAPı́TULO 4. FILTROS ADAPTATIVOS n o A la matriz R = E X[n] X T [n] se la denomina matriz de autocorrelación de la señal de entrada y vale: x[n] x[n − 1] R=E .. . i h x[n] x[n − 1] · · · x[n − L] x[n − L] x[n] x[n] x[n − 1] x[n] R=E .. . x[n] x[n − 1] x[n − 1] x[n − 1] .. . ··· ··· .. . x[n] x[n − L] x[n − 1] x[n − L] .. . x[n − L] x[n] x[n − L] x[n − 1] · · · x[n − L] x[n − L] (4.10) = (4.11) R= Rx [0] Rx [1] .. . Rx [1] Rx [0] .. . Rx [2] Rx [1] .. . ··· Rx [L] · · · Rx [L − 1] .. .. . . Rx [L] Rx [L − 1] Rx [L − 2] · · · Rx [0] (4.12) Análogamente, se define el vector de correlaciones cruzadas entre la entrada y la señal de referencia P = E {d[n] X[n]}: P = E {d[n] X[n]} = E d[n] d[n] x[n] d[n] x[n − 1] =E .. . d[n] x[n − L] x[n − L] x[n] x[n − 1] .. . P = Rdx [0] Rdx [1] .. . Rdx [L] (4.13) Estamos suponiendo que las señales x[n] y d[n] son estacionarias. En ese caso ni la matriz de autocorrelación R ni el vector de correlaciones cruzadas P dependen del tiempo2 . Usando la matriz de autocorrelación y el vector de correlaciones cruzadas es posible escribir la potencia media de la señal error en función de los coeficientes de la siguiente forma: E{(e[n])2 } = ξ = E{(d[n])2 } + W T R W − 2P T W 2 (4.14) Aunque al principio del tema se dijo que una de las utilidades de los filtros adaptativos era su uso con señales no estacionarias, supondremos por el momento que las señales de entrada son estacionarias, discutiendo más adelante qué sucede si no lo son. 145 4.3. Filtrado Óptimo La anterior ecuación expresa el valor medio de la potencia de la señal error en el caso de que: Los coeficientes no varı́en. En la práctica, y dado que el filtro es adaptativo, lo que sucederá es que un algoritmo de adaptación tratará de encontrar el valor de los coeficientes W que minimice ξ. Las señales sean estacionarias. En realidad, en los métodos que veremos, será suficiente con que las señales tengan una estadı́stica que varı́e suficientemente despacio como para que el algoritmo de adaptación pueda converger correctamente y seguir las variaciones estadı́sticas de la señal. En el caso de señales no estacionarias lo que sucederá es que la función ξ irá modificándose lentamente con el tiempo. La ecuación (4.14) expresa una función que tiene una forma muy peculiar denominada cuádrica. En el caso de dos coeficientes (L = 1) dicha ecuación es un paraboloide (figura 4.14). Cabrı́a la duda de si es un paraboloide con un máximo o con un mı́nimo. Por reducción al absurdo es fácil ver que debe tener un mı́nimo, porque si no necesariamente existirı́an valores de los pesos que harı́an que ξ fuese negativo, cosa imposible, pues es un valor cuadrático medio. 350 300 MSE 250 200 150 100 50 0 20 20 10 10 0 0 −10 w1 −10 −20 −20 w0 Figura 4.14: Potencia media de la señal error en función de los pesos del filtro transversal para dos coeficientes. 146 CAPı́TULO 4. FILTROS ADAPTATIVOS Resumiendo pues, la función que me indica cuál es la potencia media de la señal error en función de los coeficientes de un filtro FIR es una cuádrica con un único mı́nimo local que coincide con el mı́nimo global. 4.3.5. Gradiente y error cuadrático medio mı́nimo Se define el gradiente de una función escalar que depende de un vector como: ∂ξ ∂ξ T ∂ξ , , ..., (4.15) ∇ξ = ∂w0 ∂w1 ∂wL El vector gradiente en un cierto punto tiene las siguientes propiedades: La dirección es la de máxima pendiente en un punto (crecimiento). Su módulo es el valor de esa máxima pendiente. Los mı́nimos (y máximos) locales de la función se corresponden con puntos de gradiente nulo. Dado que la función valor cuadrático medio de la señal error (ξ) tiene un único mı́nimo local, podremos hallar los coeficientes óptimos W ∗ , es decir los que minimizan la potencia de la señal error, sin más que calcular el gradiente de la función ξ, anularlo y despejar el valor de los peso óptimos. Para calcular el gradiente, tomamos la ecuación (4.14), calculamos las derivadas parciales, y formamos el vector gradiente. Dicho gradiente se puede expresar de nuevo en forma matricial del siguiente modo: ∇ξ = 2R W − 2P (4.16) El error cuadrático medio mı́mimo se producirá cuando los pesos del filtro anulen el gradiente. ∇ξ = 0 = 2R W ∗ − 2P (4.17) Suponiendo que R sea no singular (es decir, invertible) entonces el vector de coeficientes óptimo, W ∗ , vale: W ∗ = R−1 P (4.18) Al vector de pesos obtenido de esta forma se le denomina Filtro Óptimo de Wiener, y representa el mejor conjunto de pesos posible en el sentido de minimizar la potencia de la señal error. 147 4.3. Filtrado Óptimo Es fácil ver cuánto vale ξmı́n , es decir, el valor de la potencia media cuando los coeficientes del filtro son los óptimos. Tras unas operaciones matriciales elementales, y teniendo en cuenta que la matriz R es simétrica, se llega a: ξmı́n = E{d2 } − P T W ∗ (4.19) A partir de las anteriores ecuaciones podemos hacer una serie de comentarios: Los coeficientes óptimos dependen de la estadı́stica de las señales de entrada x[n] y d[n]. Por esta razón suele hablarse de filtrado estadı́stico. Si la señal x[n] y la señal d[n] están incorreladas, el vector P será nulo y por tanto los pesos óptimos (ecuación 4.18) también lo serán. Si conociera la autocorrelación de la señal x[n], la correlación cruzada entre x[n] y d[n] y además las señales fueran estacionarias, podrı́a utilizar un filtro fijo con los coeficientes W ∗ . Normalmente la autocorrelación de la señal de entrada y la correlación cruzada son desconocidas, por lo que deben ser estimadas a partir de las propias muestras de las señales para poder determinar W ∗ . El filtro óptimo NO anula siempre la señal error; lo que hace siempre es minimizar su potencia. En el caso de que la matriz R sea singular, se utilizará la pseudoinversa para determinar los pesos óptimos. Intuitivamente, lo que sucede, cuando la matriz es singular, es que el paraboloide de la figura 4.14 se degenera convirtiéndose en un canal. En ese caso existen multitud de vectores W que presentan la misma potencia de la señal error (todos los del fondo del canal). En ese caso, si se considera la pseudoinversa de la matriz R lo que se obtiene es el vector de menor norma de los que constituyen el fondo del canal. Otra posibilidad para encontrar los pesos óptimos consiste en realizar un algoritmo iterativo, en el que nos movamos en dirección contraria al gradiente (es decir, cuesta abajo) con pasos de un tamaño proporcional al gradiente. Éste se puede escribir también como: ∇ξ = 2R (W − W ∗ ) (4.20) es decir, el gradiente es proporcional a la distancia entre el vector de pesos W y el vector de pesos de error cuadrático medio mı́nimo W ∗ . El hecho de que el gradiente sea proporcional a la diferencia entre los pesos y los pesos óptimos 148 CAPı́TULO 4. FILTROS ADAPTATIVOS justifica el hecho de que los pasos de los algoritmos iterativos sean de tamaño proporcional al gradiente. La estrategia de variar los pesos iterativamente en dirección contraria al gradiente es el fundamento del algoritmo adaptativo más utilizado, el LMS, que veremos más adelante. 4.3.6. Ejemplo de superficie de error Consideremos un sistema como el de la figura 4.13 con dos coeficientes (L = 1) y supongamos que las señales que se aplican a su entrada son: d[n] = 2 cos (2πn/N + φ) x[n] = sen (2πn/N + φ) siendo φ una variable aleatoria uniforme entre −π y π. Puedo ahora obtener R y P : " R= 0,5 0,5 cos 2π/N PT = h 0,5 cos 2π/N 0,5 0 − sen 2π/N # (4.21) i (4.22) Además E{d2 } = 2. Particularizando la ecuación (4.14) para este caso se obtiene: 2π 2π ξ = 2 + 0,5 w02 + w12 + w0 w1 cos + 2 w1 sen (4.23) N N Los pesos óptimos, particularizando en la expresión (4.18), son: W∗ = h 2cotg (2π/N ) −2cosec (2π/N ) i (4.24) siendo el valor mı́nimo de la potencia de la señal error ξmı́n = 0. La figura 4.15 muestra las curvas de nivel de la superficie de error para N = 4 y N = 10. En ella es posible apreciar que, en función del valor de N , no sólo cambia la posición del punto mı́nimo sino que la superficie de error tiene una forma u otra, pasándose de curvas de nivel de aspecto circular a curvas de nivel con un marcado carácter elı́ptico. Si las curvas de nivel son circulares, el gradiente es el mismo en cualquier punto de la curva de nivel, mientras que si la curva de nivel es elı́ptica, el gradiente sobre distintos puntos de una misma curva de nivel varı́a de un punto a otro, siendo mayor en las zonas estrechas de la elipse (curvas de nivel más próximas). Este hecho será importante en los algoritmos de gradiente. 149 4.4. Algoritmos de gradiente N=4 20 15 10 w1 5 0 −5 −10 −15 −20 −20 −15 −10 −5 0 w0 5 10 15 20 5 10 15 20 N=10 20 15 10 w1 5 0 −5 −10 −15 −20 −20 −15 −10 −5 0 w0 Figura 4.15: Ejemplo de superficie de error para distintos valores de N . Se indica con ‘∗’ el mı́nimo de la superficie de error. 4.4. Algoritmos de gradiente En la sección anterior hemos visto que la función que mide la potencia de la señal error, en función del valor de los pesos del filtro FIR, presenta un único mı́nimo local que a la vez es el mı́nimo global de la misma. Existen procedimientos de adaptación que estiman la matriz de autocorrelación y el vector de correlaciones cruzadas muestra a muestra determinando 150 CAPı́TULO 4. FILTROS ADAPTATIVOS los pesos óptimos mediante la ecuación (4.18) con las matrices estimadas. Estos métodos emplean técnicas eficientes que evitan el tener que invertir una matriz cada vez que llega una nueva muestra. Los procedimientos que vamos a estudiar más en profundidad son los denominados algoritmos de gradiente. Se les llama de este modo porque buscan el vector de pesos óptimo de forma recursiva, moviéndose pequeños pasos de longitud proporcional al gradiente y en dirección contraria al mismo. El vector de pesos se actualiza mediante la ecuación: W [n + 1] = W [n] − µ∇ξ[n] (4.25) El parámetro µ controla el tamaño de los pasos del algoritmo: Si µ aumenta, la velocidad de convergencia será más rápida. Si es excesivamente grande, el método puede hacerse inestable y diverger en lugar de converger. Además, ya veremos que la solución final alcanzada es más inestable en la práctica. Si µ disminuye, la convergencia se ralentiza pero, a cambio, la solución final es más estable. Para analizar el comportamiento del algoritmo, vamos a estudiar inicialmente el caso unidimensional (L = 0) para pasar luego al caso multidimensional. 4.4.1. Caso Unidimensional En el caso de un coeficiente, la superficie de error es una simple parábola. Es posible escribir la parábola en función del valor del mı́nimo local: ξ = ξmı́n + λ (w − w∗ )2 (4.26) La constante λ controla el ancho de las ramas de la parábola, w∗ la posición del mı́nimo y ξmı́n la altura del mı́nimo. El gradiente en este caso es la derivada y vale: ∂ξ = 2λ (w − w∗ ) (4.27) ∂w La recursión (4.25) particularizada para nuestro caso de un solo coeficiente resulta: w[n + 1] = w[n] − 2µλ(w[n] − w∗ ) (4.28) Esta ecuación en diferencias recursiva, tiene por solución: w[n] = w∗ + (1 − 2µλ)n (w[0] − w∗ ) (4.29) 151 4.4. Algoritmos de gradiente 6 5 4 r=0.8 w 3 2 1 r=−0.7 0 −1 0 5 10 15 n 20 25 30 Figura 4.16: Formas de convergencia por gradiente en función de la razón geométrica r para un coeficiente. Para que w[n] tienda al óptimo w∗ , cuando n → ∞, debe cumplirse que: |1 − 2µλ| < 1 Al valor r = 1 − 2µλ se le denomina razón geométrica y juega un papel fundamental en la velocidad y forma de convergencia: Si |r| ≥ 1 el proceso iterativo no converge. Si 0 < r < 1 (0 < µ < 1/2λ) el proceso converge de forma no oscilatoria, tanto más rápido cuanto más parecido sea r a cero. Si −1 < r < 0 (1/2λ < µ < 1/λ) el proceso converge de forma oscilatoria, tanto más rápido cuanto más parecido sea r a cero. Resumiendo, para que el algoritmo converja debe cumplirse: 0<µ< 1 λ En cuanto a ξ también decrece de forma exponencial pero como (r2 )n , es decir, de forma no oscilatoria. 152 4.4.2. CAPı́TULO 4. FILTROS ADAPTATIVOS Caso Multidimensional En el caso de que el filtro tenga más de un coeficiente, la superficie de error deja de ser una parábola para convertirse en un (hiper)paraboloide. Si observamos la figura 4.15, podemos ver el aspecto que toman las curvas de nivel para el caso de dos coeficientes. Es posible realizar un cambio de ejes en la superficie de error de forma que los ejes se alineen con los ejes principales de las elipses de la superficie de error. Dichos ejes coinciden con los autovectores de la matriz R. Si realizáramos cortes de la superficie de error por los ejes principales, obtendrı́amos parábolas cuyo λk asociado es el autovalor asociado al autovector de R correspondiente a la dirección en la que realizamos el corte. Puede demostrarse que la convergencia del vector de pesos es independiente en cada una de las direcciones asociadas a los autovectores, teniendo cada uno de estos modos una razón geométrica de adaptación que vale: rk = (1 − 2µλk ) 0≤k≤L (4.30) Para garantizar la convergencia debe cumplirse |rk | < 1 para todos los modos. Esto implica que: 1 µ< (4.31) λmáx La convergencia se alcanza cuando han convergido todos los modos. La convergencia es más lenta cuanto más parecido sea |rk | a 1. Esto suele producirse para λmı́n . La razón geométrica del modo más lento, en el caso de tomar µ lo más grande posible para asegurar la convergencia, vale: λmı́n r = 1−2 λmáx (4.32) Si la razón λmáx /λmı́n es grande, el valor de la constante geométrica de la ecuación (4.32) puede ser muy próximo a uno, con lo que la convergencia del algoritmo del gradiente se hace muy lenta. La figura 4.17 muestra un ejemplo de convergencia por gradiente. En ella puede apreciarse cómo inicialmente el algoritmo converge rápidamente hasta uno de los ejes principales del paraboloide. Se puede decir que el modo asociado al eje más estrecho del paraboloide (λ mayor) converge rápidamente, pero puede observarse cómo el modo asociado a la convergencia en el eje mayor de las elipses (λ menor) converge mucho más lentamente; será la convergencia de este modo la que limite la velocidad de convergencia global. Obsérvese también cómo, inicialmente, el tamaño de los pasos es mayor; mientras que conforme nos acercamos al óptimo, debido a que el valor del gradiente es menor, se van acortando. 153 4.5. El algoritmo LMS 20 15 10 w1 5 0 −5 −10 −15 −20 −20 −15 −10 −5 0 w0 5 10 15 20 Figura 4.17: Convergencia de una algoritmo de gradiente. Resumiendo, podemos decir que: El autovalor más grande de R condiciona el valor máximo de µ para garantizar la estabilidad de la convergencia. El valor λmáx /λmı́n determina la máxima velocidad de convergencia alcanzable por un algoritmo de gradiente. 4.5. El algoritmo LMS En la sección anterior hemos visto una estrategia para encontrar el mı́nimo de la superficie de error consistente en moverse pequeños pasos en dirección contraria al gradiente. En la práctica se dispone de muestras de las señales d[n] y x[n], pero se desconoce el valor del gradiente. El algoritmo conocido como LMS (Least Mean Squares) consiste en sustituir el gradiente en la ecuación (4.25) por una estima del mismo obtenida 154 CAPı́TULO 4. FILTROS ADAPTATIVOS 20 15 10 w1 5 0 −5 −10 −15 −20 −20 −15 −10 −5 0 w0 5 10 15 20 Figura 4.18: Convergencia de los coeficientes en el algoritmo LMS. con muestras de las señales. En concreto, para actualizar los pesos, se sigue la ecuación: W [n + 1] = W [n] + 2µ e[n] X[n] (4.33) donde la estima del gradiente es: ˆ ∇ξ[n] = −2e[n] X[n] (4.34) Es fácil comprobar que la media de la estima del gradiente coincide con el gradiente teórico: n o n o ˆ E ∇ξ[n] = E {−2e[n] X[n]} = E −2(d[n] − X T [n] W ) X[n] = 2 R W − P (4.35) expresión que coincide con el gradiente teórico de la ecuación (4.16). El hecho de que el gradiente no sea más que una estima hace que el comportamiento del algoritmo LMS sea similar al de un algoritmo con gradiente en media aunque la trayectoria seguida por los coeficientes sea más errática. En las figuras 4.18, 4.19 y 4.20 se muestra un ejemplo de adaptación usando el algoritmo LMS. Las señales usadas son las del ejemplo de la sección 4.3.6, 155 4.5. El algoritmo LMS e[n] 10 8 6 4 2 0 −2 −4 −6 −8 −10 0 100 200 300 400 500 n 600 700 800 900 1000 Figura 4.19: Señal error en el algoritmo LMS. salvo que la señal d[n] tiene añadido un ruido blanco de σ 2 = 0,05. Ello influye únicamente en que la superficie de error tiene el mı́nimo ligeramente más alto. Recordemos que tenemos dos coeficientes. En la figura 4.18 se muestra la evolución de los pesos. Puede observarse que es similar a un algoritmo de gradiente pero más errática. La figura 4.19 muestra la evolución temporal de la señal de error. Podemos apreciar como disminuye su amplitud llegando a un punto donde no parece decrecer más. En ese momento, el algoritmo habrı́a finalizado su adaptación, y la potencia media de la señal error una vez concluı́da la misma, serı́a ξmı́n . La figura 4.20 muestra la evolución temporal de los pesos. Podemos apreciar cómo alcanzan un valor en torno a su valor final para luego permanecer oscilantes alrededor del mismo. Ello es debido a lo que se denomina desajuste y que se explica más abajo. 4.5.1. Ejemplo numérico del algoritmo LMS En esta sección vamos a dar un ejemplo numérico del proceso de adaptación de un algoritmo LMS. Como hemos podido ver en la sección anterior, este algoritmo es bastante simple, pero es necesario ser cuidadoso a la hora de 156 CAPı́TULO 4. FILTROS ADAPTATIVOS w0[n] w1[n] 10 5 w0 0 w1 −5 −10 −15 −20 0 100 200 300 400 500 n 600 700 800 900 1000 Figura 4.20: Evolución temporal de los pesos en el algoritmo LMS. implementarlo. Básicamente hay que realizar una serie de pasos que se repiten cada nuevo instante: Recibir x[n] y d[n]. Actualizar el vector de entradas X. Calcular la salida y[n] = W T [n] X[n]. Calcular la señal e[n] = d[n] − y[n]. Actualizar los pesos W [n + 1] = W [n] + 2µe[n]X[n] La tabla 4.1 muestra un fragmento de los anteriores valores en un caso de dos coeficientes, con 2µ = 0,1 . 4.5.2. Aspectos prácticos del algoritmo LMS En los apartados anteriores hemos visto cómo el algortmo LMS es una aproximación a un algoritmo de gradiente que utiliza una estima del mismo consistente en muestras de la señal de entrada y la señal error. Existen algunas consideraciones que conviene hacer en la práctica debido al hecho de no utilizar el verdadero gradiente. 157 4.5. El algoritmo LMS n .. . -2 -1 0 1 .. . d[n] .. . 1.6 1.8 0.6 -0.8 .. . x[n] .. . 0 0.6 0.9 0.9 .. . w0 [n] .. . w1 [n] .. . y[n] .. . e[n] .. . -2 -1.82 -1.673 .. . 1 1 1.0983 .. . -1.2 -1.038 -0.517 .. . 3 1.638 -0.282 .. . Cuadro 4.1: Ejemplo numérico de adaptación LMS. La primera se refiere al valor máximo que podemos dar a la constante de adaptación µ. Según se dijo, su valor deberı́a ser menor que la inversa del mayor autovalor de la matriz R. Desgraciadamente, en la práctica, no conocemos dicha matriz por lo que resulta imposible calcular sus autovalores. Dado que los autovalores de la matriz de autocorrelación R son todos positivos, el mayor autovalor será menor que la suma de todos ellos. Además existe una propiedad de las matrices que dice que la suma de los autovalores coincide con la traza de la misma, siendo la traza la suma de los elementos de la diagonal principal. En la matriz R los elementos de la diagonal principal valen todos Rx [0], es decir, la potencia de x[n]. Llamando P otx a dicha potencia podemos, pues, encontrar una cota para el valor máximo de µ de forma que se garantice la estabilidad de la convergencia. µ< 1 (L + 1) · P otx (4.36) En esta expresión intervienen únicamente el número de coeficientes del filtro y la potencia media de la señal x[n], fácilmente estimable. Si la señal x[n] pudiera variar su potencia (es decir, fuera no estacionaria), deberı́amos introducir algún mecanismo de monitorización de la misma o situarnos en el caso de la máxima potencia esperada, pues en caso contrario, el algoritmo de adaptación podrı́a diverger. La segunda consideración se refiere a que el vector ˆ ∇ξ[n] = −2 e[n] X[n] altera los coeficientes en cada nueva muestra. Ello hace que aunque en media el incremento de los pesos una vez alcanzada la adaptadación sea nulo, estos no dejen de variar si la señal e[n] no tiende a cero. Se podrı́a ver el fenómeno como si nos estuvieramos moviendo por el fondo del paraboloide constantemente. 158 CAPı́TULO 4. FILTROS ADAPTATIVOS Ello provoca un aumento en la potencia media de la señal error, y variaciones en los pesos de media nula pero varianza distinta de cero. La varianza de las variaciones de los pesos es proporcional a µ y ξmı́n . A dicha varianza se le llama desajuste. Se define el exceso de error cuadrático medio, como la diferencia entre la potencia media de la señal error alcanzable en la práctica con el LMS y ξmı́n . Dicha diferencia, conocida como exceso de potencia de error, también es proporcional a µ y ξmı́n . Ello explica la necesidad de que µ no se escoja demasiado grande pensando en la velocidad si ξmı́n 6= 0, ya que, en caso contrario, tendrı́amos un exceso de potencia de error inaceptable. Ésta es la razón por la que cuando estudiamos los canceladores de eco, dijimos que, durante el funcionamiento full duplex, el algoritmo no actualizaba sus coeficientes. 4.6. Conclusiones En este punto revisaremos las principales ideas vistas en el tema: Los filtros adaptativos constituyen una solución a problemas de filtrado en muchas situaciones. Se basan en filtrar una señal x de modo que la salida del filtro y se parezca lo más posible a una señal de referencia d. El criterio más empleado es minimizar la potencia de la señal error. Si el filtro adaptativo es FIR la superficie de error tiene un único mı́nimo local que además es el mı́nimo global. El algoritmo LMS es, por su sencillez, el más utilizado. La constante de adaptación: • interesa grande para convergencia rápida. • interesa pequeña para reducir el desajuste. La estabilidad de la convergencia viene determinada por el autovalor más grande de la matriz de autocorrelación. La velocidad de convergencia viene limitada por el cociente λmáx /λmı́n . Si este cociente es grande, la convergencia puede ser muy lenta. 159 4.7. Problemas Si la señal es no estacionaria es como si el paraboloide se moviese/deformase lentamente. Si la potencia de x[n] puede variar con el tiempo, hay que monitorizarla para evitar que el algoritmo pueda hacerse inestable. 4.7. Problemas 1. Suponga que la matriz de autocorrelación de la señal de entrada de una filtro adaptativo que funciona según el algoritmo LMS es: " R= 3 2 2 3 # a) Comprobar que es una matriz de autocorrelación válida. b) Determinar los autovalores y autovectores de R. c) Dibuje de forma aproximada las curvas de nivel de la función error cuadrático. d ) Determine el valor de µ máximo para que el algoritmo LMS converja. e) Suponiendo W T [0] = [ 0 0 ] y W ∗ = [ 2 −1 ] dibujar de forma aproximada la evolución de los pesos. (µ = 2/3 µmáx ) 2. Partiendo de los valores de las tres columnas de la izquierda de la tabla 4.1, rellenar el resto de las columnas y comprobar el resultado. 4.7.1. Ejercicios con Matlab En la dirección http://ttt.upv.es/∼aalbiol/librotds se encuentran los ficheros que hacen falta para realizar estos ejercicios. El programa LMS.M implementa el algoritmo de adaptación del mismo nombre. 1. En este primer ejercicio comprobaremos una de las aplicaciones de la predicción lineal. En codificación de señales interesa muchas veces codificar la diferencia entre una señal y una predicción de la misma. Normalmente la predicción se hace de forma lineal y en base a muestras anteriores. En 160 CAPı́TULO 4. FILTROS ADAPTATIVOS el receptor es posible reconstruir la señal original si se recibe el error de predicción y los coeficientes utilizados para realizar la predicción. e[n] = x[n] − x̂[n] = x[n] − a1 x[n − 1] − · · · − ap x[n − p] Interesa utilizar unos coeficientes para realizar la predicción de forma que la potencia del error de predicción sea mı́nima. Suponiendo que las señales a codificar sean señales de voz, y dado que éstas son no estacionarias, parece lógico que los coeficientes de predicción óptimos deban ir variando con el tiempo. Una forma de determinar los coeficientes es mediante un filtrado adaptativo de la señal x[n]. En el fichero voz.mat encontrará las señales que necesita. Para ello, ejecute el algoritmo LMS tomando los siguientes valores de entrada: Señal d[n]: el vector voz. Señal x[n]: lo mismo retrasado una muestra. Número de coeficientes: 10. Valores iniciales de los coeficientes: todo ceros. Valor de µ: 0.15 de su valor máximo. Teniendo en cuenta que la señal x es no estacionaria, para estimar su potencia utilice el fragmento o1 correspondiente a una zona de máxima amplitud y estime su valor cuadrático medio. Se pide: a) Determine la potencia media de la señal voz y de la señal error. b) Compruebe que los coeficientes varı́an lentamente. Represente gráficamente la evolución temporal de los pesos. En una aplicación de codificación dichos coeficientes deberı́an transmitirse al receptor como información lateral junto a la señal error de predicción. Ello supondrı́a una información adicional a transmitir, reduciendo de este modo la eficiencia de la compresión. Una forma de evitar esto consiste en darse cuenta que los coeficientes varı́an lentamente, por lo que pueden transmitirse sólo de vez en cuando, realizando una interpolación de los mismos en el receptor. 2. En este ejercicio, supondremos que tenemos una configuración de identificación de sistemas (figura 4.2). En el fichero IDSIST.MAT encontrará las señales que necesita. Se ha introducido el vector x como entrada de un sistema planta y se ha obtenido a su salida el vector d. Las muestras del vector x son ruido blanco. 161 4.7. Problemas a) Determine el valor de µmáx para que el algoritmo LMS converja suponiendo que el filtro adaptativo tiene 8 coeficientes. b) Sabiendo que la planta tiene una respuesta impulsional de duración menor que 8, encuentre la respuesta en frecuencia de la planta, es decir, el filtro que aplicando x a su entrada produce d a su salida. Utilice para ello el algoritmo LMS, con un µ de valor 0.1 veces el máximo. Dibuje la señal error y la evolución temporal de los pesos para comprobar que el algoritmo ha terminado de converger. c) Un problema que surge en la práctica, es que la señal d[n] tiene añadido un ruido incorrelado. Demuestre que si añadimos un ruido incorrelado con x[n] a la señal d[n] el único cambio en la superficie de error consiste en que su valor mı́nimo ξmı́n aumenta. - Planta??? x[n] d- + r[n] y X X ?+ Xe[n] X dn 6− - - Filtro. Adapt. y[n] Figura 4.21: Ruido aditivo a la salida de la planta. El algoritmo adaptativo no tiene acceso a d[n] sino a dn[n]. d ) Vamos a simular lo que sucede cuando la salida de la planta tiene un ruido aditivo incorrelado con la entrada. Genere un vector r de muestras aleatorias gaussianas y varianza 0.01. Genere el vector dn = d + r. Suponiendo que cuando la señal d no tenı́a ruido la potencia de la señal error tras la adaptación valı́a cero, calcule cuál es el valor de ξmı́n en el caso de utilizar dn. e) Utilice un filtro adaptativo de 8 coeficientes con un valor de µ igual a una décima parte de su valor máximo. y ejecute el algoritmo LMS tratando de estimar la respuesta en frecuencia de la planta. Dibuje la evolución temporal de los pesos. ¿Qué observa con respecto al caso en que no tenı́amos ruido en la salida de la planta? f ) Repita el punto anterior pero con un valor de µ igual a 1/5 del valor máximo. Dibuje nuevamente la evolución temporal de los pesos y compare qué sucede cuando se incrementa µ. 162 CAPı́TULO 4. FILTROS ADAPTATIVOS g) Considere un margen de muestras de las señales error en los que se haya producido la adaptación para ambos casos (µ = 1/10 µmáx y µ = 1/5 µmáx ), por ejemplo entre la 400 y la 900. Calcule la potencia media de la señal error para los dos valores de µ en ese intervalo de muestras. Determine el exceso de potencia de error debido a que los coeficientes siempre están readaptándose (y por lo tanto nunca en el óptimo) en cada caso. Compruebe la relación de µ con el exceso de potencia de error que se vio en teorı́a. h) En los anteriores apartados hemos comprobado la adaptación cuando la señal de entrada x es blanca. En este caso todos los autovalores son iguales y por lo tanto la convergencia es rápida. En este apartado considere la señal x2 (no blanca) que se aplica a la planta para obtener d2. Estime los valores de autocorrelación de la señal x2. Determine los autovalores de la matriz de autocorrelación y determine la dispersión de autovalores. Ejecute el algoritmo LMS y compruebe que no se ha alcanzado la adaptación. Verifique que la adaptación es mucho más lenta que en el caso en que la señal de entrada era blanca. Determine la respuesta en frecuencia de los coeficientes en la última adaptación. Compárela con la respuesta en frecuencia de la planta. Compruebe que el error en la respuesta en frecuencia no es uniforme en todas las frecuencias. Para determinar la respuesta en frecuencia utilice la función freqz() y para compararlas utilice abs(H1-H2) Calcule el espectro de la señal de entrada x2 utilizando el programa wosa.m que se encuentra en el servidor de la asignatura en el directorio anespec. [E, f]=wosa(x2,30,256,10,hamming(30)); plot(f,E) ¿Determine la relación que existe entre el error en la estima de la respuesta en frecuencia y el espectro de la señal de entrada Resuma los principales efectos de que la señal de entrada no sea blanca en la identificación de sistemas. Capı́tulo 5 Análisis Espectral 5.1. Introducción ¿Qué es el análisis espectral? El análisis espectral de señales no es otra cosa que el tratar de ver las señales de una forma distinta a como se manifiestan normalmente. Concretando un poco más, las señales que habitualmente manejamos se presentan como variaciones de una magnitud fı́sica (corriente, voltaje, presión acústica, . . . ) en función del tiempo. Podrı́amos decir, que las señales se producen de forma natural en el dominio del tiempo. Sin embargo, muchas veces, mirar una señal en su dominio natural (el tiempo generalmente) no ayuda demasiado a comprender la misma. En muchas ocasiones, descomponer la señal como suma de sinusoides resulta de gran interés práctico. En general, se entenderá por análisis espectral en el sentido más amplio del término, el descomponer una señal como suma de una colección de señales (ortogonales). En la gran mayorı́a de los casos, y es lo que se estudiará en este tema, las señales en las que descompondremos serán sinusoides. La razón de ello, es que las sinusoides son autofunciones de los sistemas lineales. El análisis espectral, resumiendo, será pues el conjunto de herramientas que permiten considerar las señales desde un punto de vista diferente, cuando ello resulta de interés. Otra forma de hablar, diferente pero equivalente a la vez, y poco formal, podrı́a ser decir que las señales, en su dominio temporal, nos indican la fuerza de la señal a lo largo del tiempo, mientras que en su dominio espectral, la fuerza de la misma para cada frecuencia. De un modo más técnico diremos que el análisis espectral nos da la distribución de energı́a (o potencia según el caso) por frecuencias, es decir, cuánta energı́a (o potencia) tiene la señal en cada frecuencia. 163 164 CAPı́TULO 5. ANÁLISIS ESPECTRAL 5.2. Tipos y tecnologı́as de analizadores espectrales El análisis espectral es una herramienta profusamente utilizada en Telecomunicaciones y un sinfı́n de otras disciplinas. Existen distintos tipos de analizadores espectrales, fundamentalmente en función del rango de frecuencias a analizar y de la aplicación. Los principales son: Analizador espectral por banco de filtros. Analizadores de barrido. Analizadores digitales. En las secciones siguientes expondremos los principios de funcionamiento de cada uno de ellos ası́ como algunas de sus aplicaciones más tı́picas. 5.2.1. Analizadores por banco de filtros Prácticamente todos hemos podido ver los displays que presentan algunos equipos de alta fidelidad, en los que un conjunto de barras indican en cada momento la amplitud de la señal en la correspondiente banda de frecuencias. Este tipo de presentación corresponde al resultado de un análisis espectral mediante un banco de filtros. Consisten en un conjunto de filtros paso-banda (figura 5.1), cada uno de los cuales tiene a su salida un medidor de potencia. Cada canal (salida del filtro) proporciona una indicación del comportamiento medio en su correspondiente banda de paso. Los medidores de potencia consisten básicamente en un elevador al cuadrado seguido de un filtro paso-bajo (figura 5.2). El ancho de - H1 - Pot1 - - H2 - Pot2 - .. . - - HN .. . - PotN - Figura 5.1: Esquema general de analizador espectral por banco de filtros. 165 5.2. Tipos y tecnologı́as de analizadores espectrales - x2 - Hkpb - Potk Figura 5.2: Esquema de un medidor de potencia de un analizador espectral por banco de filtros. banda de este filtro paso-bajo es el responsable de que la salida de cada canal sea más o menos fluctuante. El criterio para fijar el ancho de banda de estos filtros paso bajo es: Para señales estacionarias interesarı́a anchos de banda pequeños. Ello implicarı́a retardos de grupo altos (desfase entre lo que se oye y lo que se mide). Esto no obstante, no serı́a ningún problema para señales estacionarias, pues por definición de estacionariedad el contenido espectral de la misma no varı́a con el tiempo. Para señales dinámicas interesarı́a anchos de banda grandes, para que las respectivas salidas pudieran seguir la evolución temporal de las señales en los diferentes canales. El problema que presentarı́a tomar anchos de banda excesivamente grandes, serı́a lo fluctuante que resultarı́a la estima espectral. Esto se comprenderá mejor al final del tema. En la práctica, los equipos profesionales de medida suelen tener anchos de banda normalizados dependientes del ancho de la banda analizada. La utilidad (teórica al menos) de dichos displays no es distraernos la vista mientras escuchamos la música (aunque para la gran mayorı́a sı́ lo sea), sino permitirnos ecualizar la sala de audición de forma que todas las frecuencias suenen igual si originalmente son iguales. Para ello, se debe disponer de una fuente de señal cuyo contenido en frecuencia se conozca, se reproduce a través del equipo de audio y se analiza espectralmente (mediante el banco de filtros) la señal captada en un micrófono (calibrado). Actuando sobre los mandos del ecualizador del equipo es posible compensar los distintos niveles de amplificación de la señal acústica debidos a no idealidades de altavoces, distintas absorciones acústicas de los materiales del recinto,. . . Este tipo de analizadores es válido cuando el número de canales espectrales deseado no es excesivamente grande ni se requiere una gran resolución espectral. Pueden implementarse de forma analógica (operacionales, bobinas, 166 CAPı́TULO 5. ANÁLISIS ESPECTRAL condensadores, . . . ) o digital (digitalizando la señal e implementando los filtros digitalmente). Presentan la ventaja de que se hace un análisis espectral simultáneo de todas las frecuencias. 5.2.2. Analizadores de barrido Mientras que los analizadores de banco de filtros, presentan la importante ventaja de realizar un análisis espectral en paralelo (todas las frecuencias a la vez), tienen el inconveniente de que cuando los anchos de banda a analizar son grandes y/o los anchos de banda de los canales son pequeños, el número de filtros necesarios se dispara, y con ello la complejidad y el coste. Para ello surgen los analizadores espectrales de barrido. Su diagrama general se muestra en la figura 5.3. El sistema consta de un oscilador local, un mezclador (multiplicador), un filtro llamado de frecuencia intermedia o predetección, y un medidor de potencia análogo a los vistos en los analizadores por banco de filtros (elevador al cuadrado y filtro paso-bajo o de postdetección). Supongamos que inicialmente, la frecuencia del oscilador local es fija. Cuando se multiplica un tono por otro, como se sabe, aparecen las frecuencias suma y resta de las originales con la frecuencia del oscilador local. Si a la entrada tenemos una señal de frecuencia f1 = f0 − fOL al batirse con el oscilador local obtendremos dos términos, uno en f0 y otro en |f0 − 2fOL |. El filtro de frecuencia intermedia se encargará de rechazar el término de |f0 − 2fOL |. Si a la entrada tenemos la frecuencia f2 = f0 + fOL , tras el mezclador también obtendremos un término en f0 . Supongamos que la señal de entrada ha sido filtrada de modo que sólo una de las dos frecuencias (f1 por fijar ideas) está presente en la entrada del analizador (este filtrado se denomina rechazo de frecuencia imagen y está presente en todos los sistemas superheterodinos). Si f0 es una frecuencia genérica de la banda de paso del filtro de frecuencia intermedia, resultará que para una cierta frecuencia del oscilador local, una cierta banda de la señal de entrada (f1 ) coincidirá con la banda de paso del filtro de frecuencia intermedia. Es fácil darse cuenta que el sistema mide la - × 6 HF I - x2 - Hpb OL Figura 5.3: Esquema de un analizador de espectros de barrido. - 5.3. Planteamiento del problema 167 potencia en la banda de frecuencias que al mezclarse con el oscilador local va a caer en la banda de paso del filtro de frecuencia intermedia. Variando la frecuencia del oscilador local, es posible variar la banda de frecuencias de la señal original que se corresponderá con la banda de paso del filtro de frecuencia intermedia. Esto permite un análisis secuencial de las distintas bandas de frecuencia. En la práctica, la velocidad de cambio de la frecuencia del oscilador local no puede ser demasiado elevada, lo que lleva a que puedan ser necesarios tiempos de medida grandes si se desea analizar amplias bandas de frecuencia. Fijémonos que, en este caso, también se mide la distribución de potencia de la señal en distintas frecuencias, pero esta vez de modo secuencial, con lo que si la señal no es estacionaria y el tiempo de medida es demasiado largo, pueden presentarse resultados erróneos. Este tipo de analizadores se emplea sobre todo en radio-frecuencia. En cuanto a la tecnologı́a empleada suele ser analógica hasta el filtro de frecuencia intermedia inclusive y analógica o digital, según modelos de equipos, a partir de dicho filtro. Algunas de entre las muchas aplicaciones de este tipo de analizadores podrı́an ser el análisis de ocupaciones de canales de RF (en un sistema de TV cable o en el aire), o el análisis de emisiones parásitas de cualquier equipo electrónico (medidas EMI). 5.2.3. Analizadores digitales Van a constituir el resto del tema. En este punto, sólo diremos que las señales a analizar son digitalizadas, y se analizan mediante distintos procedimientos las muestras obtenidas. Son los métodos más potentes que existen por la complejidad de los procedimientos implementables. Su única limitación práctica está en la disponibilidad/calidad de los convertidores de datos (A/D) y en el ancho de banda de la señal (número de muestras por segundo a procesar). 5.3. Planteamiento del problema del análisis espectral En esta sección vamos a centrar un poco más el problema que pretendemos resolver mediante el análisis espectral. En general, podemos hablar de una serie de tipos de señales que podemos estar interesados en analizar. En los siguientes apartados iremos viendo para cada uno de estos tipos qué es lo que pretendemos obtener analizando espectralmente, y los posibles problemas. 168 5.3.1. CAPı́TULO 5. ANÁLISIS ESPECTRAL Señales deterministas de duración limitada Este tipo de señales es el que ofrece conceptualmente menos problemas. La herramienta a utilizar será la transformada de Fourier, y en la práctica la FFT. Ello es posible porque la FFT recibe como entrada un vector de muestras de duración limitada, y proporciona como resultado un vector de muestras espectrales. Si se desea una mayor finura de muestreo espectral, siempre podremos añadir ceros al final de las muestras antes de calcular la FFT. Si se eleva al cuadrado el módulo de la FFT se obtiene la denominada Densidad Espectral de Energı́a (DEE). 5.3.2. Señales deterministas de duración ilimitada Cuando las señales son de duración ilimitada, nos encontramos con el primer obstáculo insalvable del análisis espectral. La Transformada de Fourier (TF), es una operación que permite pasar de un dominio (el tiempo) a otro (la frecuencia). Sin embargo, por la propia definición, para calcular la TF en cualquier frecuencia, es necesario conocer la señal en todo instante. Esto, para señales de duración infinita, implicarı́a esperar hasta el final de los tiempos antes de poder empezar a calcular la TF, ası́ como haber conocido dicha señal desde el principio de los mismos (eso sin contar con los problemas de convergencia de la serie). En primer lugar, no estábamos aquı́ para grabar el principio de la señal. En segundo lugar, tampoco lo estaremos para el final de la misma. Además es bastante improbable que la señal que pretendemos analizar existiera desde siempre ni vaya a durar por siempre. Todas estas cuestiones, aparentemente filosóficas, conducen al procedimiento de medida siguiente. Lo que haremos será tomar un trozo de señal y analizarlo utilizando los métodos de señales de duración limitada (cualquier trozo de señal tiene duración limitada), suponiendo que el segmento seleccionado es suficientemente representativo de la señal total. Dentro de este tipo de señales consideraremos, por su importancia, el estudio más en detalle de sumas de tonos y señales periódicas. 5.3.3. Señales aleatorias estacionarias Para describir en el dominio de la frecuencia señales aleatorias estacionarias existe un concepto llamado Densidad Espectral de Potencia (DEP). 5.3. Planteamiento del problema 169 Recordemos que la DEP (Φx (ejω )) de una señal aleatoria estacionaria x[n] viene dada por: Φx (ejω ) = TF {Rx [m]} (5.1) donde Rx [m] es la autocorrelación de la señal x[n] dada por Rx [m] = E {x∗ [n]x[n + m]} (5.2) Obsérvese que para que la ecuación 5.2 no dependa de n el proceso aleatorio debe ser estacionario. Nótese también que, para señales de este tipo, es totalmente equivalente el cálculo de la autocorrelación o el cálculo directo de la DEP, pues del uno al otro se pasa simplemente por una TF. Ası́ pues, veremos más adelante en el desarrollo del tema, cómo existen ciertos métodos de análisis espectral que se basan en la estima de la función de autocorrelación para, a partir de ella, mediante la TF, calcular la DEP. La relación entre la autocorrelación y la DEP, nos permite presentar el análisis espectral desde otro punto de vista. Es conocido que la autocorrelación mide el parecido de una señal consigo misma desplazada. El que una señal se parezca en distintos instantes de tiempo puede verse como que el proceso aleatorio tiene una cierta memoria, es decir, que el valor del proceso aleatorio en un instante no es totalmente independiente de lo que vale en instantes próximos. Desde ese punto de vista, la autocorrelación (y con ella la DEP) puede verse como una medida de esa memoria del proceso aleatorio. El proceso que menos memoria tiene es el ruido blanco. Como se sabe, la DEP de dicho ruido es constante, y la autocorrelación es una δ en el origen. Ello quiere decir que la señal no se parece (estadı́sticamente) a sı́ misma salvo en el mismo instante. De esto es posible sacar una conclusión. Espectros suaves (que varı́en lentamente con la frecuencia) corresponderán a señales con poca memoria (gran cantidad de información por unidad de tiempo) mientras que señales con autocorrelación ancha (espectros estrechos) corresponderán a señales con bastante memoria (poca información por unidad de tiempo). Para terminar esta sección, un último aspecto teórico. Existe otro concepto relativo a los procesos aleatorios que es el de ergodicidad. Dicha propiedad viene a decir que, si un proceso estacionario además es ergódico, resulta que observando una única realización desde −∞ a ∞ se tiene toda la información del proceso. En otras palabras, esta propiedad es la que permite que, cogiendo una realización (cualquiera) del proceso, se pueda inferir el comportamiento estadı́stico del conjunto de infinitas realizaciones posibles del mismo. Esto, que puede parecer de poca importancia, es de importancia suprema a la hora de dar un fundamento teórico sólido a lo que estamos haciendo, pues en la práctica siempre dispondremos únicamente de una realización del proceso (la 170 CAPı́TULO 5. ANÁLISIS ESPECTRAL señal a analizar). No obstante, indicaremos también que la ergodicidad es una propiedad de los procesos aleatorios que siempre supondremos pero que nunca comprobaremos (porque no se pueden conocer las infinitas realizaciones del proceso aleatorio y, si se conocieran, la propiedad no nos servirı́a para nada). La ergodicidad, como acabamos de ver, es la propiedad teórica que nos permite analizar un proceso aleatorio a partir de una única realización. Esto, de todos modos, aún no resuelve el análisis espectral práctico pues serı́a necesario conocer la realización para todo tiempo. Para solucionar este problema se recurre a lo mismo que en el caso de señales deterministas de duración infinita. Se cogerá un trozo de señal, y se realizará el análisis de dicho fragmento. La forma de pasar del análisis de un fragmento a la DEP de la señal aleatoria será estudiada con detalle en los apartados correspondientes. 5.3.4. Señales no estacionarias Si la señal a analizar es no estacionaria resulta que la ecuación (5.2) depende no sólo de m sino de n. En ese caso la DEP no existe estrictamente hablando. Para solventar este problema, presente en muchas señales de interés práctico (voz, sonar, radar,. . . ), se recurrirá a un concepto nuevo llamado distribución tiempo frecuencia. En la sección correspondiente estudiaremos con más profundidad estos procedimientos, pero de momento pensemos que lo que haremos será considerar que el espectro varı́a con el tiempo. Este concepto, fácil de comprender intuitivamente, choca frontalmente con nuestros conocimientos teóricos hasta el momento, en donde los dominios del tiempo y la frecuencia, NUNCA aparecen juntos. 5.3.5. Aspectos prácticos del análisis espectral digital En este apartado vamos a revisar sucintamente cuales son las limitaciones y condicionantes de tipo práctico que surgen en el análisis espectral mediante procedimientos digitales. El primer paso para analizar espectralmente una señal (analógica) de forma digital será digitalizarla. En dicho proceso aparecerán dos elementos: El filtro anti-aliasing. El convertidor A/D. El primero, es necesario siempre para evitar la mezcla de componentes espectrales que se producirı́a si no estuviera presente. Dado que los filtros implementables no tienen atenuaciones infinitas en las bandas atenuadas ni bandas 171 5.3. Planteamiento del problema - Haa - A/D - An. Dig. - Figura 5.4: Esquema del interfaz necesario para analizar digitalmente el espectro de una señal analógica. de transición abruptas, el espectro que se presentará al conversor A/D no será exactamente el mismo de la señal a analizar. Interesará pues que este filtro tenga buenas prestaciones, y compensar las medidas en función del filtro utilizado. El segundo elemento, el conversor A/D, idealmente no deberı́a introducir ningún efecto negativo sobre el análisis. En la práctica introduce dos. Ruido de cuantificación. No linealidades. El ruido de cuantificación es sobradamente conocido y, desde el punto de vista del análisis espectral, es como si la señal que realmente vamos a analizar fuera la suma de la que deseamos analizar más un ruido (blanco). Ello puede llevar a errores importantes en la estima espectral, especialmente en aquellas frecuencias en que la señal de entrada es comparable al ruido de cuantificación. Este efecto no es corregible, y sólo es posible saber si lo estamos haciendo bien o mal. El efecto de las no linealidades se produce porque no todos los escalones de cuantificación son idénticos. Ello lleva a los fenómenos de distorsión e intermodulación, consistentes, en que si la entrada al sistema fuera un tono analógico, a la salida del A/D tendrı́a la suma de varios tonos digitales armónicamente relacionados. Como los métodos digitales procesan la salida del A/D los resultados serán erroneos, es decir, verı́a más tonos de los que realmente hay. Este tipo de errores no es evitable (salvo cambiando el A/D) ni compensable, por lo que debe tenerse plenas garantı́as sobre la calidad del A/D antes de intentar el análisis espectral. Con respecto a la duración infinita de las señales ya se ha mencionado más arriba la solución que adoptaremos, consistente en coger fragmentos de duración limitada. Finalmente indicaremos que los procedimientos que van a ser vistos a lo largo del resto del tema, corresponden a procedimientos de análisis de señales discretas. Los resultados que dan dichos procedimientos lo son en frecuencias digitales fd entre -0.5 y 0.5. Para pasar los resultados a 172 CAPı́TULO 5. ANÁLISIS ESPECTRAL frecuencias analógicas fa es necesario multiplicar por la frecuencia de muestreo fs . fa = fd · fs (5.3) 5.4. Análisis espectral de señales deterministas Esta sección se va a dedicar al análisis espectral de sumas de tonos. Dado que las señales periódicas son sumas de tonos, este apartado incluirá el análisis de señales periódicas como extensión. Supondremos que la señal a analizar es la suma de dos tonos: x[n] = A1 cos(ω1 n + φ1 ) + A2 cos(ω2 n + φ2 ) (5.4) No contemplamos el caso de un único tono, puesto que los efectos que vamos a presentar en breve necesitan de la presencia de varios tonos. Para no recargar la notación, y dado que no se pierde generalidad, vamos a suponer que las fases iniciales de los tonos son ambas cero φ1 = φ2 = 0. La figura 5.5 reperesenta un ejemplo de señal de este tipo con f1 = 0,15 y f2 = 0,28. 2 1.5 1 x[n] 0.5 0 -0.5 -1 -1.5 -2 0 20 40 60 80 100 n 120 140 160 180 200 Figura 5.5: Suma de dos tonos en el dominio del tiempo. Para poder realizar el análisis, se considera un número finito, L, de muestras de la señal. Supongamos que asignamos a dicho trozo (arbitrariamente) 5.4. Análisis espectral de señales deterministas 173 al intervalo n = 0, · · · , L − 1. En principio se puede suponer cualquier instante inicial para la señal, puesto que la elección del origen de tiempos es totalmente arbitraria (salvo que se vayan a comparar dos señales). Además, si supusieramos otro intervalo, esto sólo afectarı́a a la fase y no al módulo de la transformada, y normalmente estaremos interesados en el módulo. Supondremos igualmente, que la señal fuera del segmento de muestras disponibles es nula. El proceso pues, de selección de un trozo de señal, se puede ver como multiplicar la señal x[n] de duración infinita por otra de duración finita w[n] que denominaremos ventana. xw [n] = x[n] w[n] donde ( w[n] = 6= 0 0 ≤ n ≤ L − 1 0 resto (5.5) (5.6) Una vez tenemos una señal de duración finita, simplemente calcularemos la TF de la misma: jω Xw (e ) = L−1 X xw [n]e−jωn = X(ejω ) ∗ W (ejω ) (5.7) n=0 donde ∗ es la convolución periódica de transformadas de Fourier Z 1 π X(ej(ω−θ) ) W (ejθ ) dθ X(ejω ) ∗ W (ejω ) = 2π −π (5.8) En la figura 5.6 se muestra la transformada de Fourier de la señal de la figura 5.5 utilizando como ventana la siguiente función (L = 200): ( w[n] = 1 0≤n≤L−1 0 resto (5.9) Dicha ventana recibe el nombre de ventana rectangular de duración L y su efecto práctico es la simple truncamiento de la señal. De dicha figura se pueden extraer una serie de conclusiones interesantes: Se ven claramente los dos picos correspondientes a los dos tonos (más los respectivos de frecuencias negativas). La amplitud de los picos, contrariamente a lo que dice la teorı́a no es infinita. Ello es debido a haber cogido únicamente una porción de duración finita de la señal. En concreto, para un tono aislado de amplitud A y pulsación ω0 , el valor del pico de la transformada vale: Xw (ejω0 ) = A W (ej0 ) 2 (5.10) 174 CAPı́TULO 5. ANÁLISIS ESPECTRAL 120 100 80 60 40 20 0 -0.5 -0.4 -0.3 -0.2 -0.1 0 f 0.1 0.2 0.3 0.4 0.5 Figura 5.6: Módulo de la transformada de Fourier de dos tonos truncados. La anchura de los picos de cada tono no es nula. En efecto presentan un cierto ancho. Para evaluar cuánto es este ancho, pensemos que la convolución por una delta (TF teórica de un tono) consiste en desplazar la función a donde está la delta. Ası́ pues, la forma que vemos en cada pico es la TF de la ventana desplazada a ese pico. Aparecen una serie de oscilaciones espúreas de menor amplitud, prácticamente por todo el espectro. También son debidas a la convolución con la TF de la ventana. De todo ello se puede deducir que, los efectos indeseados anteriores, son todos debidos al hecho de truncar la señal con una ventana. Eligiendo diferentes ventanas, podremos alterar el aspecto de la transformada de Fourier de forma que los picos sean más o menos anchos, y las oscilaciones espúreas sean más o menos grandes. 5.4.1. Ventanas de análisis En el apartado anterior, hemos concluido que las propiedades del analizador espectral de tonos, dependen únicamente de la ventana de truncación 175 5.4. Análisis espectral de señales deterministas 0 -5 NLS -10 dB -15 -20 -25 -30 -35 ALP -40 -0.5 -0.4 -0.3 -0.2 -0.1 0 f 0.1 0.2 0.3 0.4 0.5 Figura 5.7: Módulo de la transformada de Fourier de una ventana rectangular de 30 puntos. empleada. Existen muchas posibles elecciones para las ventanas. Las dos principales caracterı́sticas que afectan sus propiedades de análisis espectral son: El ancho del lóbulo principal, ALP , definido como el ancho de la transformada de Fourier entre los dos nulos más proximos al origen de frecuencias. Se expresa en hercios. El nivel de lóbulos secundarios, NLS definido como la diferencia de amplitud entre el máximo local de la TF en el origen y el siguiente más grande. Se suele expresar en dB (20 log A0 /A1 , siendo A0 el módulo de la TF en el origen y A1 el módulo del siguiente máximo local de la TF). La figura 5.7 muestra dichos parámetros para una ventana rectangular de duración 30. Cada uno de los parámetros anteriormente mencionados, es decir, el ancho del lóbulo principal y el nivel de lóbulos secundarios, es responsable de uno de los problemas que se manifiestan en la figura 5.6: El hecho de tener en cada tono anchos de pico no nulos se debe al ancho del lóbulo principal de la TF de la ventana. 176 CAPı́TULO 5. ANÁLISIS ESPECTRAL La presencia de múltiples pequeños picos espúreos es debida a los lóbulos secundarios de la TF de la ventana. Las ventanas más empleadas suelen ser funciones simétricas decrecientes hacia los extremos del margen de valores no nulos de la misma, y con un valor máximo de 1 en el centro del intervalo. De entre las más usuales están las rectangulares, triangulares, Hanning y Hamming. Las expresiones analı́ticas de las distintas ventanas pueden encontrarse en la bibliografı́a [6]. Además Matlab tiene funciones que generan un gran número de ventanas diferentes de todas las longitudes. Para nuestros propósitos de análisis espectral conviene conocer las propiedades de las más conocidas, que se muestran en la tabla 5.1. Tipo Rectang. Triang. Hanning Hamming ALP (Hz) 2/L 4/L 4/L 4/L NLS (dB) 13 26 32 42 Cuadro 5.1: Principales parámetros de las ventanas más usuales. La figura 5.8 muestra las ventanas triangular, Hanning y Hamming en el dominio del tiempo. La figura 5.9 muestra las transformadas de Fourier de las ventanas rectangular y triangular normalizadas por su valor máximo y la figura 5.10, lo mismo para las ventanas de Hanning y Hamming, todas ellas de duración 31. A la vista de dichas figuras y de la tabla 5.1, es posible establecer una serie de conclusiones o reglas prácticas a la hora de elegir una ventana: Para una longitud de ventana L dada, la ventana rectangular es la que presenta un lóbulo principal más estrecho (mejor resolución), y un nivel de lóbulos secundarios más grande. El nivel de lóbulos secundarios más pequeño (de las ventanas consideradas en esta comparativa) corresponde a la de Hamming. El ancho del lóbulo principal es inversamente proporcional a la duración de la misma. Aunque no se puede deducir de las gráficas mostradas, el nivel de lóbulos secundarios NO depende de la duración de la ventana sino de la forma (tipo) de la misma. 177 5.4. Análisis espectral de señales deterministas 1 0.9 0.8 0.7 0.6 0.5 0.4 Triangular 0.3 0.2 Hamming 0.1 Hanning 0 0 5 10 15 n 20 25 30 Figura 5.8: Ventanas triangular, Hanning y Hamming en el dominio del tiempo. Aunque la ventana de Hanning tiene un nivel de lóbulos secundarios mayor que la ventana de Hamming, éstos decrecen más rápidamente. En general, para una misma duración de la ventana, mejorar en alguno de los aspectos implica empeorar en otro. Un aspecto práctico no mencionado hasta ahora pero que conviene tener en cuenta es que siempre utilizaremos ventanas de duración lo más pequeña posible para lograr nuestros propósitos. Ello es debido a dos razones: El tiempo de medida será mas corto, pues tardaremos menos tiempo en tener las muestras necesarias. El coste computacional y de memoria será menor. Para concluir este apartado, mencionaremos simplemente que existe un gran número de ventanas distintas, cada una con sus pros y sus contras [1], entre las que merece destacarse la ventana de Kaiser. Dicha ventana permite fijar ambos parámetros de la misma (ancho del lóbulo principal y nivel de lóbulos secundarios) a voluntad. Para una discusión más detallada sobre la ventana de Kaiser puede consultarse [6]. 178 CAPı́TULO 5. ANÁLISIS ESPECTRAL Rectangular 0 −10 −20 −30 −40 −50 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5 0.1 0.2 0.3 0.4 0.5 Triangular 0 −10 −20 −30 −40 −50 −0.5 −0.4 −0.3 −0.2 −0.1 0 f Figura 5.9: Ventanas rectangular y triangular en el dominio de la frecuencia. Hamming 0 −10 −20 −30 −40 −50 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5 0.1 0.2 0.3 0.4 0.5 Hanning 0 −10 −20 −30 −40 −50 −0.5 −0.4 −0.3 −0.2 −0.1 0 f Figura 5.10: Ventanas Hanning y Hamming en el dominio de la frecuencia. 5.4.2. Resolución en frecuencia y margen dinámico Si en vez de tener dos tonos de frecuencias bastante diferentes como en el ejemplo de la figura 5.6, hubiéramos tenido dos tonos de frecuencias parecidas, hubiera resultado que sus correspondientes picos habrı́an estado bastante 179 5.4. Análisis espectral de señales deterministas próximos. Si la separación en frecuencia de los dos tonos hubiera sido menor que el ancho del lóbulo principal de la ventana, en vez de dos picos, se habrı́a visto un único pico. En este caso dirı́amos que no somos capaces de resolver los dos tonos. Definiremos la resolución de un estimador espectral como la separación mı́nima en frecuencia que deben tener dos tonos de igual amplitud para que el estimador presente dos picos claramente diferenciados. La resolución coincide aproximadamente con el ancho del lóbulo principal de la ventana de truncamiento empleada. La figura 5.11 muestra el estimador espectral de dos tonos de frecuencias 0.15 y 0.151 con la misma ventana rectangular de L = 200 de la figura 5.6. En este caso la resolución es de ∆f = 2/200 mientras que la separación de frecuencia de los tonos es de 1/1000, por lo que no se resuelven. Si en vez de considerar una duración de 200 muestras para la ventana, hubiéramos tomado 4000, hubiéramos obtenido el resultado de la figura 5.12 en la que claramente aparecen los dos tonos. Si en vez de tener dos tonos de la misma amplitud, hubiéramos tenido dos tonos de amplitud bastante diferente, habrı́a resultado que, incluso si la frecuencia de los mismos hubiera sido bastante diferente, habrı́a sido difı́cil distinguir el tono de pequeña amplitud de un lóbulo lateral del tono de mayor amplitud. Dicho de otro modo, es más fácil distinguir tonos de amplitudes si- 2 1 0 -1 -2 0 20 40 60 80 100 n 120 140 160 180 200 -0.4 -0.3 -0.2 -0.1 0 f 0.1 0.2 0.3 0.4 0.5 150 100 50 0 -0.5 Figura 5.11: Suma de dos tonos de frecuencias similares, que no son resueltos mediante el análisis espectral. 180 CAPı́TULO 5. ANÁLISIS ESPECTRAL 2500 2000 1500 1000 500 0 0.14 0.142 0.144 0.146 0.148 0.15 0.152 0.154 0.156 0.158 0.16 Figura 5.12: Suma de dos tonos de frecuencias similares, que sı́ son resueltos mediante el análisis espectral (detalle de una zona del eje de frecuencias). milares que no de amplitudes muy dispares. La diferencia de amplitud máxima que puede tener un tono frente al otro (en dB) para que se garantice que se detecta (suponiendo que la separación en frecuencia garantiza su detección en cuanto a resolución) es lo que denominaremos margen dinámico del analizador espectral. Este parámetro está ı́ntimamente relacionado con el nivel de lóbulos secundarios de la ventana de análisis. La figura 5.13 muestra el resultado del análisis espectral1 de dos tonos de frecuencias 0.15 y 0.2 y amplitudes con 30 dB de diferencia, cuando se utiliza una ventana rectangular de 100 puntos. En esta figura es imposible afirmar la presencia del tono de menor amplitud, pese a que por resolución, no tendrı́amos ningun problema. La figura 5.14 muestra el resultado del análisis espectral de la misma señal de la figura 5.13, pero utilizando una ventana Hamming de 100 puntos. Ahora es fácil distinguir la presencia del tono de menor amplitud gracias al menor nivel de lóbulos secundarios de la ventana utilizada. 1 Las escalas en dB (logarı́tmicas) suelen ser útiles para visualizar señales de amplitudes muy distintas. 181 5.4. Análisis espectral de señales deterministas 40 30 20 10 0 -10 -20 -30 -40 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.13: Estima espectral de la suma de dos tonos de amplitudes muy dispares, usando ventana rectangular. 40 30 20 10 0 -10 -20 -30 -40 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.14: Estima espectral de los dos tonos de la figura 5.13 usando ventana Hamming de la misma duración. 5.4.3. Uso de la FFT. Muestreo en frecuencia Hasta ahora, el procedimiento empleado para realizar el análisis espectral de tonos, implicaba que una vez truncada la señal, se calculaba la TF de la misma. 182 CAPı́TULO 5. ANÁLISIS ESPECTRAL La TF de una señal discreta, no obstante, es una función contı́nua. Dichas funciones son bastante engorrosas de manejar por ordenador, por lo que frecuentemente se manejan muestras de dicha TF. De hecho, todas las gráficas presentadas en los apartados anteriores, corresponden realmente a muestras suficientemente próximas de la TF (función contı́nua). La herramienta natural para obtener muestras de la TF de una señal de duración finita es la FFT. En principio cabrı́a pensar que dado que tenemos segmentos de L muestras, las FFT a utilizar deberı́an ser del mismo tamaño. Sin embargo, aunque la teorı́a nos dice que dicho número de muestras espectrales es suficiente para representar sin ambigüedad la señal, en aplicaciones de análisis espectral puede inducir a errores de interpretación. Veámoslo con algunos ejemplos. En la figura 5.15 se muestra el análisis de una señal que es un único tono de frecuencia 0.05, utilizando una ventana de análisis rectangular y de duración L = 100. Se ha empleado para confeccionar dicha figura una FFT de 100 puntos. La figura muestra los valores de la FFT como cı́rculos y unos trazos rectos que los unen. Aparentemente, el resultado es excelente porque dado un tono tengo una delta como espectro. Nada más engañoso como veremos dentro de un momento. La figura 5.16 muestra lo mismo que la figura 5.15 pero esta vez para un tono de frecuencia 0.0438, no muy diferente de la del ejemplo anterior. Si observamos lo que sucede vemos que el aspecto de la figura 5.16 es totalmente 50 45 40 35 30 25 20 15 10 5 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.15: Estima espectral de un tono de frecuencia 0.05 con una ventana rectangular de duración 100 puntos. 183 5.4. Análisis espectral de señales deterministas 40 35 30 25 20 15 10 5 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.16: Estima espectral de un tono de frecuencia 0.0438 con una ventana rectangular de duración 100 puntos. distinto al de la figura 5.15. La explicación de la drástica diferencia de ambas gráficas, ante una pequeña diferencia en la frecuencia de la señal a analizar, hay que buscarla en el hecho de que lo que estamos viendo no son más que un conjunto de muestras de la TF unidas por rectas. Puede darse el caso, y de hecho ası́ sucede, que dicho número de muestras, aun siendo suficiente para recuperar la señal, produzca impresiones visuales muy engañosas si dichas muestras se utilizan para realizar un analizador espectral. Si antes de calcular la FFT de la señal truncada le añadiéramos ceros, sabemos que lo que obtendrı́amos serı́a simplemente un muestreo más denso de la TF. Si hacemos esta operación rellenando con ceros las L = 100 muestras hasta tener un total de N = 1000 obtenemos los resultados de las figuras 5.17 y 5.18. En ellas puede observarse la posición de las muestras de las figuras 5.15 y 5.16 respectivamente. Vemos que en la figura 5.15 ha sido toda una casualidad tomar las muestras en los nulos y en el pico, mientras que en la figura 5.16 parece como si hubiéramos tenido peor suerte. 184 CAPı́TULO 5. ANÁLISIS ESPECTRAL 60 50 40 30 20 10 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.17: Estima espectral de un tono de frecuencia 0.05 con una ventana rectangular de duración 100 puntos, rellenando con ceros antes de hacer la FFT, y las muestras anteriores superpuestas. Los efectos que produce el submuestreo de la TF al analizar espectralmente tonos son los siguientes(ver figura 5.18): Errores en la amplitud de los picos detectados (suponiendo que consideremos como amplitud del tono la correspondiente al máximo de la gráfica). Errores en la frecuencia de los picos detectados (suponiendo que consideremos como frecuencia del tono la posicion del máximo de la gráfica). Interpretaciones confusas de los lóbulos laterales. (¿tenemos un tono o varios de distintas amplitudes?) Todos estos efectos, tienen fácil solución sin más que muestrear de forma más fina la TF. Esto, como ya se ha comentado, se hace añadiendo ceros al final de la señal antes de tomar la FFT, tomando de este modo la FFT de tamaño N puntos con N > L. Es fácil ver que a medida que tomamos más muestras en la FFT los errores cometidos disminuyen. Como regla práctica podemos decir que el número de puntos N de la FFT deberı́a ser de al menos 3 o 4 veces el número de puntos, L, de la ventana de señal tomada. Una cuestión a la que hay que prestar atención es al orden de las operaciones de enventanado y rellenado con ceros. Siempre se realiza primero el 185 5.4. Análisis espectral de señales deterministas 60 50 40 30 20 10 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.18: Estima espectral de un tono de frecuencia 0.0438 con una ventana rectangular de duración 100 puntos, rellenando con ceros antes de hacer la FFT. enventanado de las muestras, para una vez hecho esto añadir tantos ceros al final como se deseen. Hacerlo en orden inverso, provoca resultados erróneos. Para terminar este apartado, deberı́amos incidir en un aspecto que provoca no pocos errores. Muchas veces, se tiende a pensar, que añadiendo ceros al final de una señal y tomando la FFT se aumenta la resolución del análisis efectuado. Esto es falso. La resolución viene dada únicamente por la ventana de análisis w[n] (ancho del lóbulo principal de su TF). Rellenar con ceros únicamente proporciona una versión más suave del estimador espectral. La resolución (recordemos, capacidad de distinguir tonos de frecuencias similares) no se afecta en absoluto por añadir más o menos ceros antes de tomar la FFT. 5.4.4. El problema de la media El valor medio o componente contı́nua puede ser considerado como un tono de frecuencia nula. Muchas veces estamos interesados en las componentes de alterna de la señal. Además, dado el diferente origen de la componente contı́nua (polarizaciones, señalizaciones, etc.) y de las componentes alternas, puede haber una gran disparidad de amplitudes entre las mismas. Cuando se 186 CAPı́TULO 5. ANÁLISIS ESPECTRAL analizan espectralmente señales cuya media es no nula aparecen los mismos problemas que para cualquier tono: El ancho del lóbulo principal me impide ver otras componentes de muy baja frecuencia. Los lóbulos secundarios de la componente contı́nua pueden ser de mayor amplitud que otras componentes espectrales. Dichos problemas, no son observables si se utilizan ventanas rectangulares y un número de muestras espectrales igual a la duración de la ventana. Sin embargo, si se usan otras ventanas o el número de muestras espectrales es mayor que la duración de la ventana (porque se rellena con ceros antes de calcular la FFT), dichos efectos pueden no permitir realizar un análisis correcto del resto de componentes espectrales. El procedimiento a seguir, partiendo de un segmento de L muestras es: Restar la media de las L muestras. Enventanar el resultado con la ventana deseada de L muestras. Opcionalmente, añadir los ceros necesarios para obtener el muestreo en frecuencia deseado. 5.5. Análisis espectral no paramétrico En esta sección vamos a abordar el análisis espectral de señales aleatorias estacionarias. Por lo tanto, el objetivo será tratar de estimar la DEP del proceso aleatorio del cual disponemos de un fragmento temporal. Los métodos que veremos en esta sección se denominan métodos no-paramétricos. Esto es ası́ porque no presuponen nada sobre la señal que estamos analizando. Más adelante, veremos otros métodos que presuponen que las señales bajo análisis son de un determinado tipo (métodos paramétricos). En este caso, y si las señales realmente son del tipo supuesto, los métodos paramétricos dan mucho mejor resultado que los que veremos en esta sección. No obstante, en ausencia de conocimiento del tipo de señal que vamos a analizar, los métodos no-paramétricos son mejores puesto que simplemente nos dan muestras de la DEP sin ninguna suposición. 5.5.1. Sesgo y Varianza Cuando las señales a analizar son aleatorias, nos encontramos con que ante una serie de operaciones deterministas, el resultado será diferente en 187 5.5. Análisis espectral no paramétrico función de la realización concreta del proceso que estemos utilizando. Ello lleva a que la estima espectral sea considerada como aleatoria. Esto quiere decir que en función del trozo que cojamos de señal para analizar, el resultado será diferente. Si denominamos Φx (ejω ) a la verdadera (y desconocida) DEP del proceso x[n] y Φ̂x (ejω ) a la estima que estamos haciendo, resulta que Φ̂x (ejω ) es una variable aleatoria para cada ω. Para saber la bondad de un estimador, cabrı́a preguntarse dos cuestiones: ¿La media (esperanza) de Φ̂x (ejω ) coincide con Φx (ejω )? Esto es equivalente a preguntarse si repitiendo la misma medida muchas veces y tomando la media nos iremos acercando al valor teórico. Si E{Φ̂x (ejω )} = Φx (ejω ) (5.11) diremos que el estimador es insesgado. En caso contrario será sesgado, esto querrá decir que, por mucho que repitamos el experimento, nunca llegaremos a la solución correcta. En caso de estimadores sesgados, diremos que una estima es mejor cuanto menor sea el sesgo. ¿Es grande la varianza del estimador?, es decir, ¿obtengo cosas muy distintas con distintos trozos de señales? Un estimador será mejor cuanto menor sea la varianza. Los estimadores espectrales que veremos a continuación, se caracterizan todos porque ante una cantidad dada de muestras, es posible inclinar la calidad de la estima hacia uno de los dos aspectos anteriores, reducir el sesgo o reducir la varianza, pero no los dos a la vez. 5.5.2. El periodograma El periodograma es el estimador espectral más simple, y por ello suele ser el más utilizado. Supongamos que tenemos L muestras de un proceso aleatorio x[n]. Definiremos el estimador periodograma como: 2 X 1 L−1 Φ̂x (e ) = x[n] e−jωn L n=0 jω (5.12) Tal y como se mencionó más arriba, en función de las muestras que cojamos el resultado será uno u otro. La figura 5.19 muestra un fragmento de ruido blanco (potencia unidad) en el dominio del tiempo. La figura 5.20 muestra 188 CAPı́TULO 5. ANÁLISIS ESPECTRAL 4 3 2 1 0 -1 -2 -3 0 50 100 150 n 200 250 300 Figura 5.19: Muestras de ruido blanco en el domino del tiempo. el periodograma considerando L = 128 muestras de dos fragmentos de señal distintos de la figura 5.19. Como puede apreciarse, los resultados obtenidos con el periodograma dependen del trozo concreto de señal analizado, y resulta difı́cil a la vista de la figura 5.20 concluir que la señal analizada es ruido blanco. Cabrı́a preguntarse qué obtendrı́amos si tomáramos no dos fragmentos sino un número muy elevado de ellos y tomásemos la media (frecuencia a frecuencia) de los respectivos periodogramas. Halları́amos de este modo el periodograma medio que se puede demostrar que vale: n o E Φ̂x (ejω ) = 2 1 Φx (ejω ) ∗ WR (ejω ) L (5.13) siendo WR (ejω ) la TF de la ventana rectangular de duración L (número de muestras empleadas). Como puede verse la media del periodograma no coincide en general con la verdadera DEP Φx (ejω ), por la convolución de la expresión (5.13), por lo que en general el periodograma será un estimador espectral sesgado. Únicamente en el caso del ruido blanco, dicha convolución coincidirá con Φx (ejω ). 2 El sesgo será pequeño cuando WR (ejω ) se parezca a una delta con respecto a la forma que tenga Φx (ejω ). Para ello bastará con tomar ventanas más 189 5.5. Análisis espectral no paramétrico 6 4 2 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 6 4 2 0 0 Figura 5.20: Periodogramas de dos fragmentos distintos de ruido blanco. largas (valores de L mayores). Obviamente, cuantas más muestras intervengan en la estima del espectro mejor será el resultado, pero el precio a pagar es un mayor tiempo para hacer la medida (y coste computacional). A la vista de la expresión (5.13) es fácil prever lo que sucederá en el caso de que la señal a analizar con el periodograma sean tonos (de fase aleatoria). Aparecerán en media, los mismos problemas de resolución y lóbulos laterales vistos en la sección 5.4. Sin embargo, el principal problema del periodograma no es su sesgo (combatible tomando ventanas más largas cuando se pueda) sino su varianza. En la figura 5.20 hemos podido ver el aspecto totalmente errático de un periodograma correspondiente a una DEP que vale 1 para todo ω. Se puede demostrar que, cuando el sesgo es pequeño, la varianza del periodograma vale aproximadamente: o2 n o n (5.14) VAR Φ̂x (ejω ) ≈ E Φ̂x (ejω ) La ecuación anterior expresa que la desviación tı́pica de nuestro estimador es comparable a la media. Esto quiere decir que nuestro estimador tiene demasiada varianza (es demasiado aleatorio). Éste es el principal problema del periodograma y, tal y como puede verse en la expresión (5.14), la varianza no se puede mejorar aumentando el número de muestras utilizadas en el análisis. Para comprobar que la varianza no depende del número de muestras empleadas 190 CAPı́TULO 5. ANÁLISIS ESPECTRAL 7 6 5 4 3 2 1 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.21: Periodograma para una longitud de ventana de L = 256. en el análisis, en la figura 5.21 se puede observar lo que sucede si tomamos L = 256. Como vemos, la amplitud de las fluctuaciones no ha cambiado. La diferencia más sustancial con la figura 5.20 es que las fluctuaciones son más estrechas. Ello se debe a que con L = 256 la resolución mejora y aparecen más picos. El periodograma modificado Hemos visto, en el apartado anterior, que el periodograma tenı́a un sesgo que venı́a dado por una convolución con la TF de una ventana rectangular. Si en vez de seleccionar las muestras de las que calculamos la TF del periodograma mediante una ventana rectangular, utilizamos otra ventana arbitraria w[n] de duración L, tenemos lo que se denomina periodograma modificado. Se calcula como: 2 L−1 X 1 x[n]w[n] e−jωn (5.15) Φ̂x (ejω ) = LU n=0 Las ventanas que se suelen emplear son las mismas vistas en la sección 5.4. La constante U de la anterior expresión se elige para compensar el efecto de atenuación en los extremos de las ventanas; de no tenerse en cuenta infraestimarı́amos siempre la potencia de la señal. Su valor se elige de modo que 191 5.5. Análisis espectral no paramétrico cuando la señal a analizar es ruido blanco, el estimador resulte insesgado: U= X 1 L−1 (w[n])2 L n=0 (5.16) U vale 1 para la ventana rectangular y U < 1 para el resto de ventanas usuales. La esperanza matemática del periodograma modificado vale: n o E Φ̂x (ejω ) = 2 1 Φx (ejω ) ∗ W (ejω ) LU (5.17) Como se ve, la diferencia con el periodograma está en que la convolución se realiza con el módulo al cuadrado de la ventana usada en vez de la rectangular. Esto permite elegir la ventana más apropiada en función del ancho del lóbulo principal y nivel de lóbulos secundarios deseados. Con respecto a la varianza, el periodograma modificado tiene, a igualdad de longitud de ventana, una varianza ligeramente menor que el periodograma. Componentes tonales y no tonales En el espectro de una señal aleatoria podemos distinguir dos tipos de señales diferentes: Componentes tonales: Son aquellas que condensan una potencia finita en una única frecuencia (ancho de banda nulo). Componentes no tonales. Son aquellas que para disponer de una potencia finita es necesario integrar la potencia de un cierto ancho de banda no nulo. Las componentes tonales y no-tonales de una señal aleatoria tienen comportamientos diferentes cuando se analizan mediante el periodograma (o modificado). Mientras que para las no-tonales, a partir de una cierta longitud de ventana el estimador se vuelve insesgado, para las tonales, el estimador siempre es sesgado. Una forma posible de distinguir componentes tonales y no-tonales es calculando periodogramas de diferentes longitudes. Mientras que para las componentes no-tonales no varı́a2 la amplitud del estimador, para las tonales, la 2 La variación se supone en media. Obviamente, dado el carácter aleatorio del estimador, si se toma un número distinto de muestras el resultado será diferente, pero en media no varı́a con la longitud de la ventana. 192 CAPı́TULO 5. ANÁLISIS ESPECTRAL L=128 80 60 40 20 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.3 0.35 0.4 0.45 0.5 L=256 80 60 40 20 0 0 0.05 0.1 0.15 0.2 0.25 f Figura 5.22: Periodograma de un tono más ruido, para distintos valores de longitud de ventana. amplitud del estimador es directamente proporcional a la longitud de ventana empleada (figura 5.22). Para entenderlo, considere el periodograma de un tono e intente determinar cuál será la amplitud del pico del periodograma. Periodogramas y DFT El cálculo del periodograma implica el cálculo de una TF. En la práctica, lo que se calcula son muestras de dicha TF mediante una DFT (normalmente usando el algoritmo FFT). Los mismos comentarios relativos al relleno con ceros visto en la sección 5.4 son aplicables aquı́. Es decir, suele ser conveniente rellenar con ceros las muestras enventanadas antes de calcular la DFT, para que no aparezcan artefactos debidos al submuestreo del periodograma ya estudiados. Conviene insistir en que el relleno por ceros: No mejora la resolución (sesgo) del estimador. No reduce ni aumenta la varianza del estimador. Únicamente proporciona una versión interpolada en frecuencia, con respecto a no rellenar con ceros. 193 5.5. Análisis espectral no paramétrico L=N=128 6 4 2 0 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.35 0.4 0.45 0.5 L=128 N=1024 6 4 2 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 Figura 5.23: Periodogramas del mismo fragmento de ruido blanco con y sin relleno con ceros antes de hacer la DFT. La figura 5.23 muestra el periodograma usando una ventana rectangular de L = 128 muestras, con relleno por ceros (hasta un total de N = 1024) y sin él. De alguna forma, el periodograma únicamente contiene L valores independientes (para L pulsaciones distintas, mientras que para el resto de pulsaciones sus valores son interpolados, bien con rectas (sin relleno de ceros) bien con curvas ( con relleno de ceros). 5.5.3. Autocorrelación Al principio de esta sección recordamos que la DEP y la autocorrelación estaban relacionadas mediante una TF. Resulta, por tanto, equivalente, calcular la una o la otra. En este apartado, veremos procedimientos para estimar la autocorrelación de una señal aleatoria. Además descubriremos la razón de la excesiva varianza del periodograma. Recordemos que la autocorrelación de un proceso aleatorio se define como: Rx [m] = E {x∗ [n] x[n + m]} (5.18) 194 CAPı́TULO 5. ANÁLISIS ESPECTRAL Si sustituimos las esperanzas matemáticas por promedios temporales (asumiendo ergodicidad), podemos llegar a dos estimadores de la autocorrelación. Suponiendo que tenemos L muestras de una señal real, definimos el estimador insesgado de la autocorrelación R̂x [m] como: 1 R̂x [m] = L − |m| L−1−|m| X x[k] x[k + |m|] |m| < L k=0 (5.19) |m| ≥ L 0 Análogamente, definimos el estimador sesgado R̃x [m] como: R̃x [m] = L−1−|m| 1 X L x[k] x[k + |m|] |m| < L (5.20) k=0 |m| ≥ L 0 Obsérvese cómo estos dos estimadores sólo se diferencian en la constante que divide. Mientras en el insesgado, se divide por el número de muestras que se solapan al desplazar la señal, en el sesgado se divide siempre por el número total de muestras. La figura 5.24 muestra el número de muestras que se solapan (número de productos que se pueden realizar) al ir desplazando las señales. x[k + |m|] |m| x[k] - - 0 L − 1 − |m| L−1 k Figura 5.24: Diagrama de los desplazamientos de señales para la estima de la autocorrelación. A partir de las expresiones (5.19) y (5.20) es inmediato deducir la relación entre ambos estimadores R̃x [m] = L − |m| R̂x [m] L (5.21) Es decir, en el intervalo de valores de m (−L + 1 ≤ m ≤ L − 1) donde los estimadores son no nulos, la relación existente es que el estimador sesgado es 195 5.5. Análisis espectral no paramétrico el resultado de enventanar con una ventana triangular (de ancho total 2L − 1 muestras) el estimador insesgado. Debemos insistir en este punto, en que al igual que el periodograma tenı́a un resultado distinto según el conjunto concreto de muestras que tomemos, a los estimadores de autocorrelación les sucede exactamente lo mismo, es decir el resultado obtenido será aleatorio (dependerá de las muestras concretas utilizadas en los cálculos), y tendrá una media y una varianza (función del desplazamiento m). Con respecto a la media se puede demostrar: n o E R̂x [m] = Rx [m] |m| < L (5.22) de ahı́ que a R̂x [m] se le denomine insesgado, y n o E R̃x [m] = L − |m| Rx [m] L |m| < L (5.23) Aparentemente, y dado que los estimadores insesgados son mejores podrı́a parecer una inutilidad tener un estimador sesgado de la autocorrelación. En breve entenderemos por qué se utiliza también el estimador sesgado. También debemos darnos cuenta, que la media del estimador insesgado únicamente coincide con la verdadera autocorrelación para |m| < L, ya que fuera de ese intervalo no podemos estimar la autocorrelación por no disponer un fragmento de señal de duración suficiente. La figura 5.25 muestra los estimadores sesgado e insesgado de la autocorrelación de un fragmento de 100 muestras de ruido blanco de potencia media unidad. En ella podemos observar una serie de detalles. En primer lugar, vemos que no coincide con la δ en el origen teórica correspondiente a la autocorrelación de un ruido blanco. En segundo lugar, vemos que el valor en el origen no coincide con la potencia media teórica. Esto se debe al carácter aleatorio del estimador comentado más arriba. En tercer lugar, vemos que en las zonas donde la autocorrelación teórica es cero tenemos una serie de valores aleatorios. Vemos además que en el caso del estimador insesgado, la amplitud de los errores aleatorios crece a medida que aumenta |m|. Ello es debido a que a medida que aumenta |m| el número de muestras solapadas de la señal desplazada y sin desplazar es menor, lo que hace que el número de productos a promediar sea menor, produciendo un aumento de la varianza. En el caso del estimador sesgado, la amplitud de las aleatoriedades disminuye debido al efecto de enventanado triangular (recordemos que el sesgado es el insesgado multiplicado por una ventana triangular). En la figura 5.26 se muestran las estimas de la autocorrelación usando esta vez L = 400 muestras de ruido blanco. Puede observarse que, para un mismo 196 CAPı́TULO 5. ANÁLISIS ESPECTRAL Insesgado 1 0.5 0 -0.5 -1 -100 -80 -60 -40 -20 0 20 40 60 80 100 20 40 60 80 100 Sesgado 1 0.5 0 -0.5 -100 -80 -60 -40 -20 0 m Figura 5.25: Estimadores de la autocorrelación de un fragmento de 100 muestras de ruido blanco. valor de |m| en las figuras 5.25 y 5.26, la varianza del estimador es menor en el caso de tener más muestras. Se pueden establecer una serie de observaciones con respecto a los estimadores de la autocorrelación: Para un desplazamiento m fijo, la varianza de ambos estimadores decrece a medida que aumentamos el número de muestras disponible L. Esto es en cierto modo lógico, pues a medida que tenemos más muestras la cantidad de muestras que se solapan es más grande (ver figura 5.24) y por lo tanto la cantidad de productos a promediar es mayor. Para el estimador insesgado, para un número total de muestras L fijo, la varianza del estimador crece a medida que |m| aumenta. La relación entre las varianzas de los estimadores sesgado e insesgado es: n o VAR R̃x [m] = L − |m| L 2 n o VAR R̂x [m] |m| < L (5.24) lo que explica el carácter decreciente de las aleatoriedades de las figuras 5.25 y 5.26. 197 5.5. Análisis espectral no paramétrico Insesgado 1 0.5 0 -0.5 -1 -400 -300 -200 -100 0 100 200 300 400 100 200 300 400 Sesgado 1 0.5 0 -0.5 -1 -400 -300 -200 -100 0 m Figura 5.26: Estimadores de la autocorrelación de un fragmento de 400 muestras de ruido blanco. Transformada de Fourier de los estimadores de autocorrelación En el punto anterior hemos visto cómo podemos estimar la autocorrelación de un proceso aleatorio a partir de un conjunto de muestras del mismo. Recordemos que nuestro objetivo en este tema no es la correlación en sı́ misma sino tratar de estimar la DEP del proceso. Podemos entonces, pensar que ya que la DEP es la TF de la autocorrelación, podremos tener un estimador espectral realizando la TF de la autocorrelación estimada. Dado que nuestra estima de la autocorrelación es de duración finita podemos escribir: jω Φ̂x (e ) = L−1 X R̂x [m]e−jωm (5.25) m=−L+1 Dicho estimador, dado que la estima de la autocorrelación es aleatoria (dependerá de las muestras concretas empleadas), también será aleatorio, y tendrá por lo tanto una media y una varianza para cada ω. La media se puede demostrar que vale: n o E Φ̂x (ejω ) = Φx (ejω ) ∗ WR (ejω ) (5.26) 198 CAPı́TULO 5. ANÁLISIS ESPECTRAL donde WR (ejω ) es la TF de la ventana rectangular wR [m]3 : ( wR [m] = 1 |m| ≤ L − 1 0 resto (5.27) Este resultado, era en cierto modo esperable, pues el estimador insesgado de la autocorrelación R̂x [m] tiene por media el enventanado con una ventana rectangular de la verdadera autocorrelación. Como sabemos, multiplicar en un dominio equivale a convolucionar en el otro, lo que explica la expresión (5.26). Dada la relación mediante una ventana triangular entre los dos estimadores de autocorrelación es fácil deducir lo que sucederá si tomamos la TF del estimador sesgado R̃x [m] de la autocorrelación. L−1 X Φ̃x (ejω ) = R̃x [m]e−jωm (5.28) m=−L+1 n o E Φ̃x (ejω ) = Φx (ejω ) ∗ WT (ejω ) (5.29) donde WT (ejω ) es la transformada de Fourier de la siguiente ventana triangular: ( (L − |m|)/L |m| ≤ L − 1 wT [m] = (5.30) 0 resto Las expresiones (5.26) y (5.29) explican la razón de ser del estimador sesgado de la autocorrelación. La expresión (5.29) es siempre positiva, debido a que la transformada de Fourier de una ventana triangular es positiva para todo ω (una ventana triangular es la convolución de dos rectangulares). Dado que la DEP teórica Φx (ejω ) es positiva siempre, la convolución de dos funciones positivas también es siempre positiva. De alguna forma, tomar la TF del estimador sesgado garantiza que la media de los resultados obtenidos será positiva. Sin embargo, esto mismo no sucede con la TF del estimador insesgado dado que la TF de una ventana rectangular tiene lóbulos negativos. Resumiendo: Las DEP teóricas son siempre positivas. La TF del estimador sesgado de la autocorrelación R̃x [m] está garantizado que es positiva. La TF del estimador insesgado de la autocorrelación R̂x [m] no está garantizado que sea positiva en todas las frecuencias. 3 Nótese que ésta es una ventana rectangular simétrica con respecto al origen, a diferencia de la vista con el periodograma. 5.5. Análisis espectral no paramétrico 199 La posible no positividad de la estima de la DEP nos lleva a que en las frecuencias en que la estima de la DEP es negativa, tengamos un resultado totalmente absurdo. El uso del estimador sesgado de la autocorrelación, permite que este problema no se manifieste nunca. Es posible establecer una relación adicional entre las transformadas de Fourier de los estimadores de la autocorrelación y el periodograma. Se puede demostrar que el periodograma coincide con Φ̃x (ejω ), es decir: TF{R̃x [m]} ≡ Periodograma (5.31) Adicionalmente, la relación (5.31) permite explicar la gran varianza del periodograma. Antes hemos concluido que, cuando estimamos la autocorrelación, hay algunos valores que estimamos bastante bien (los de |m| pequeño) y otros que los estimamos con bastante error (los valores de |m| próximos a L) debido a que tenemos pocas muestras que se solapen para calcular la media de los productos). Estos valores erróneos de la autocorrelación, hacen que cuando calculamos la TF todos los valores de la TF tengan una gran varianza. De alguna forma, en la autocorrelación, las varianzas grandes están localizadas mientras que en el periodograma tenemos una gran varianza para todo ω. En la sección 5.5.4 veremos cómo podemos emplear este conocimiento para obtener un estimador espectral mucho menos fluctuante que el periodograma. Cálculo de la autocorrelación mediante DFT El método de estima espectral Blackman-Tukey que se verá en la siguiente sección, parte de la estima de la autocorrelación, por lo que es interesante disponer de métodos de cálculo rápido de la misma. Las expresiones vistas en el punto anterior para el cálculo de la autocorrelación (5.19) y (5.20) son directamente aplicables para el cálculo de los estimadores. Sin embargo, el número de operaciones a realizar para su cálculo cuando se requieren los 2L − 1 valores (L − 1 se pueden obtener por la simetrı́a conjugada de la autocorrelación), es proporcional a L2 . Es posible establecer un procedimiento para usar DFT (junto con algunas operaciones auxiliares) para calcular las estimas de autocorrelación de forma eficiente. El método se basa en que R̃x [m] es la TF−1 del periodograma. Como R̃x [m] tiene duración 2L − 1 muestras, si tomamos el mismo (o mayor) número de muestras del periodograma mediante una DFT inversa obtendremos R̃x [m]. Recordemos que el número de muestras espectrales del periodograma se puede fijar fácilmente sin más que rellenar con ceros antes de hacer la DFT. El procedimiento para obtener R̃x [m] es: 200 CAPı́TULO 5. ANÁLISIS ESPECTRAL s Q Q Q Q s ? Q Q DFT−1 m N −1 Autocorr Q Q 0 - m Figura 5.27: Diagrama de los desplazamientos de señales para la estima de la autocorrelación usando DFT. Partimos de L muestras de señal. Las completamos añadiendo ceros hasta un total de N , con N ≥ (2L − 1). Normalmente elegiremos un valor de N potencia de 2 para poder usar la FFT de forma lo más eficiente posible. Calculamos la DFT directa del anterior vector. Tomamos el módulo al cuadrado y dividimos por L, es decir, calculamos el periodograma (N muestras del mismo). Calculamos la DFT inversa. El resultado es R̃x [m] en un orden un poco particular. Para entender el orden en que tenemos los valores de R̃x [m] pensemos que la DFT inversa nos devuelve una porción de una señal periódica en el intervalo 0 a N − 1. Dado que la autocorrelación que queremos, se corresponde a valores positivos y negativos de m hay que reordenar el resultado como muestra la figura 5.27. 5.5.4. El método Blackman-Tukey En la sección anterior, hemos visto cuál es el origen del problema de varianza del periodograma. El método Blackman-Tukey (BT) resuelve el problema de la varianza enventanando (truncando) la estima de la autocorrelación de modo que únicamente se consideren para tomar la TF aquellos valores de la correlación que resulten fiables (gran número de muestras solapadas al desplazar). El estimador BT consiste pues en: 201 5.5. Análisis espectral no paramétrico Estimar la autocorrelación (sesgado o insesgado). Enventanar la autocorrelación, para descartar los valores erróneos de la misma. Tomar la TF. Para estimar la autocorrelación se emplean los procedimientos vistos en el apartado anterior. Para truncar la autocorrelación: R̂xBT [m] = R̂x [m] w[m] (5.32) donde la ventana w[n] es una ventana simétrica alrededor del origen de duración impar (2M + 1). Nótese que se puede emplear tanto el estimador sesgado como el insesgado de la autocorrelación, ya que el sesgado no es más que el insesgado enventanado, por lo que, enventanar el sesgado, no es otra cosa que enventanar el insesgado con una ventana que sea el producto de la ventana triangular y w[n]. A continuación se calcula la TF: jω Φ̂BT x (e ) M X = R̂xBT [m]e−jωm (5.33) m=−M 1.2 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -200 -150 -100 -50 0 m 50 100 150 200 Figura 5.28: Estima de la autocorrelación de un fragmento de 200 muestras de ruido blanco. 202 CAPı́TULO 5. ANÁLISIS ESPECTRAL 1.5 1 0.5 0 -0.5 -1 -200 -150 -100 -50 0 m 50 100 150 200 Figura 5.29: Autocorrelación de la figura 5.28 enventanada con una ventana hamming de M = 20. El resto de expresiones que se darán en este apartado se refieren el estimador insesgado de la autocorrelación. Se puede demostrar que la media del estimador espectral BT vale: n o jω jω jω E Φ̂BT x (e ) = Φx (e ) ∗ W (e ) (5.34) es decir, la convolución de la verdadera DEP con la TF de la ventana empleada para truncar la autocorrelación. Si dicha TF de la ventana es positiva para todo ω, se garantizará la positividad de la media del estimador, en caso contrario, no. Recordemos que la convolución produce un sesgo en la estima. Dicho sesgo se manifestaba como una pérdida de resolución y unos lóbulos laterales. Si recordamos que el periodograma era la TF del estimador sesgado (enventanado triangular del insesgado), podemos decir que el periodograma es un caso particular del estimador BT. Comparado con el periodograma, una estima BT con M < L − 1 tendrá peor resolución (la TF de una ventana es más ancha cuanto menos muestras tiene la ventana). Por contra, el mismo estimador BT tendrá menor varianza que el periodograma, pues a la hora de calcular la TF estamos descartando los valores de la autocorrelación de gran varianza. Nótese que enventanar la autocorrelación equivale a forzar que 203 5.5. Análisis espectral no paramétrico 6 5 4 3 2 1 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.30: TF de la figura 5.29. Esta serı́a la estima espectral BT del ruido blanco analizado. determinados valores (los de |m| grande) tengan por correlación un valor nulo. En el caso de señales ruidosas (autocorrelaciones estrechas), si realmente la autocorrelación es nula para |m| el método BT no producirá ninguna pérdida de resolución y sı́ una reducción de la varianza. Podrı́amos decir que el método BT produce una pérdida de resolución en la estima si y sólo si al enventanar estoy truncando valores no-nulos de la autocorrelación teórica. La figura 5.28 muestra la estima de la autocorrelación de 200 muestras de ruido blanco. La figura 5.29 muestra la misma autocorrelación enventanada con una ventana de Hamming de M = 20 (duración total igual a 41). La figura 5.30 muestra la TF de dicha autocorrelación. Puede apreciarse cómo el resultado es mucho menos fluctuante que el del periodograma de las mismas muestras que se muestra en la figura 5.31. Resumiendo, podrı́amos decir que el método BT es un estimador espectral, que con respecto al periodograma tiene más sesgo (peor resolución) pero menor varianza (siempre a igualdad del número de muestras disponibles). La reducción de la varianza se logra descartando los valores poco fiables de la autocorrelación. 204 CAPı́TULO 5. ANÁLISIS ESPECTRAL 6 5 4 3 2 1 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.31: Periodograma de las mismas 200 muestras de las figuras 5.28, 5.29 y 5.30. Uso de la DFT en el método Blackman Tukey Tal y como acabamos de ver en la ecuación 5.33, el método BT implica el cálculo de la TF de una autocorrelación. Como siempre, dicha TF se calcula mediante una DFT. Como siempre, se pueden utilizar DFT del tamaño N que se quiera, sin más que rellenar con ceros adecuadamente. Para calcular la TF de la autocorrelación enventanada hay que reordenar los datos antes, pues la autocorrelación tiene un margen de ı́ndices −M ≤ m ≤ M mientras que la DFT tiene un margen de ı́ndices 0 ≤ n ≤ N − 1. Como siempre, para entender de qué se ha de calcular la DFT basta pensar en la periodicidad de la DFT. Si llamamos g[m], con 0 ≤ m ≤ N − 1, al vector del que se debe calcular la DFT, tenemos (suponiendo N ≥ 2M + 1): g[m] = BT R̂x [m] R̂xBT [m 0 0≤m≤M − N] N − M ≤ m ≤ N − 1 resto La figura 5.27 puede ayudar a comprender la ecuación (5.35). (5.35) 205 5.5. Análisis espectral no paramétrico 5.5.5. El método de Welch o WOSA En el apartado anterior hemos visto cómo el método de Blackman-Tukey permite reducir la excesiva varianza del periodograma. Otra idea posible para reducir la varianza serı́a la de promediar diferentes periodogramas para, de este modo, reducir la varianza. Promediar, es una de las técnicas clásicas usadas en estadı́stica para reducir la varianza. Ası́, por ejemplo, si imaginamos que tratamos de estimar la estatura media de una población, la estima será más fiable (menor varianza) si tomamos 100 individuos que si tomamos uno. Algo similar ocurre con el periodograma. Si en vez de coger un único periodograma, promediamos un determinado número de ellos K, la varianza de la estima se reducirá. En esto consiste el método de Welch también conocido como WOSA (Weighted Overlapped Segment Averaging). El método consiste en realizar el periodograma K veces sobre conjuntos de muestras diferentes pertenecientes a la misma señal. Con respecto a este punto, conviene recordar que una de las condiciones que debe darse para que el promediado reduzca la varianza, es que los valores a promediar tienen que ser independientes. Si esto no ocurre, el promediado no reduce la varianza. Para entender esto, supongamos que queremos estimar la media de las tiradas de un dado. Si realizamos 1000 tiradas, anotamos los resultados y sumamos y dividimos por 1000, tenemos una estima fiable (varianza pequeña) debido a que estamos promediando 1000 valores independientes. Si por contra, tiramos 4 3 2 1 0 -1 -2 -3 0 20 40 60 80 100 n 120 140 160 180 200 Figura 5.32: Suma de tono y ruido blanco en el dominio del tiempo. 206 CAPı́TULO 5. ANÁLISIS ESPECTRAL el dado 10 veces, pero apuntamos cada número 100 veces y dividimos por 1000, obviamente el resultado será menos fiable (mayor varianza) que en el caso anterior, pues aunque también hemos promediado 1000 números, en un caso eran independientes y en otro no. Centrándonos en nuestro problema, supongamos que se registra una señal y se graban un número total de muestras igual a LT . La idea consiste en coger ventanas de longitud L (L < LT ), realizar el periodograma (o periodograma modificado) de cada una de ellas y promediar los resultados. El número de periodogramas que promediaremos, K, dependerá de la relación LT /L ası́ como del solape entre ventanas consecutivas. Cuanto mayor sea el solape, mayor será el número de ventanas que podremos tomar para un número dado de muestras LT . Por contra, si el solape es muy grande, el resultado de los periodogramas no será independiente, lo que reducirá la eficacia del promediado a la hora de reducir la varianza. Se ha comprobado experimentalmente que la máxima reducción de varianza se corresponde con un factor de solape de 1/2, es decir, cuando se coge una nueva ventana para calcular su periodograma, se toma como primera mitad de la nueva ventana, la segunda de la ventana anterior y se añaden L/2 muestras nuevas. (k) Si denotamos como Φ̂x (ejω ) al periodograma de la k-ésima ventana, y que 8 7 6 5 4 3 2 1 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.33: Periodograma de un fragmento de 128 muestras de señal de la figura 5.32. 207 5.5. Análisis espectral no paramétrico 7 6 5 4 3 2 1 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.34: Método de WOSA, utilizando 15 ventanas de longitud 128 con solape 1/2. El número total de muestras es de 1024. promediamos los periodogramas de K ventanas, el estimador WOSA vale: OSA jω Φ̂W (e ) = x K 1 X Φ̂(k) (ejω ) K k=1 x (5.36) Con respecto a la media del estimador de Welch, podemos escribir: n o n o jω OSA jω (e ) = E Φ̂(k) E Φ̂W x x (e ) (5.37) Como se ve, con respecto al sesgo, se comporta como un periodograma único de longitud L. Si recordamos que tenemos LT muestras, que hemos dividido en ventanas de L muestras, y comparamos el estimador de Welch con el periodograma único de las LT muestras, vemos que el método de Welch tiene peor resolución (más sesgo) que el periodograma único, debido a que la longitud de la ventana que utiliza es menor. Con respecto a la varianza, y suponiendo que las K ventanas cuyo periodograma se promedia se tomen con un solape máximo de 1/2 (es decir, los periodogramas son prácticamente independientes), la varianza vale: n o OSA jω VAR Φ̂W (e ) ≈ x n o 1 jω VAR Φ̂(k) x (e ) K (5.38) En las figuras siguientes vamos a examinar un ejemplo de análisis espectral utilizando el método WOSA y lo compararemos con el periodograma. La señal 208 CAPı́TULO 5. ANÁLISIS ESPECTRAL 50 45 40 35 30 25 20 15 10 5 0 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.35: Periodograma de las 1024 muestras de la figura 5.34. a analizar será la suma de un ruido blanco de potencia unidad y un tono de amplitud 0.5. La figura 5.32 muestra el aspecto temporal de la mencionada señal, en el que es prácticamente imposible discernir la presencia del tono. En la figura 5.33 podemos apreciar el periodograma (modificado, usando una ventana de Hamming) de un fragmento de 128 muestras de la señal. Podemos observar, que aunque aparece un pico, éste es difı́cilmente discernible de las fluctuaciones de la estima espectral del ruido. Podrı́amos decir que con 128 muestras, NO serı́a posible detectar el tono mediante el periodograma. En la figura 5.34, se dispone de 1024 muestras de la misma señal, a partir de las cuales se generan 15 ventanas (solape 1/2) para cada una de las cuales se calcula el periodograma de longitud 128 y se promedian los resultados. Comparando con la figura 5.33 vemos que se han reducido mucho las fluctuaciones de la estima del espectro del ruido que ahora aparece mucho más concentrado alrededor de su valor teórico (uno). Ahora, podemos apreciar claramente el pico en el espectro debido al tono. Podemos apreciar que la resolución de las figuras 5.33 y 5.34 es la misma. En la figura 5.35 se han tomado las mismas muestras de la figura 5.34, 1024, y se ha calculado un periodograma único de 1024 muestras. Podemos observar que el tono también resulta fácilmente detectado en este caso, que utiliza 1024 muestras. Sin embargo, la forma en que se detecta es diferente de la de la figura 5.34. Mientras que en la figura 5.34 se han reducido las fluctuaciones aleatorias y se ha mantenido la altura del pico con respecto a 5.5. Análisis espectral no paramétrico 209 5.33, en la figura 5.35, la amplitud de las fluctuaciones (varianza del estimador) es la misma que en la figura 5.33, pero la amplitud del pico debido al tono ha aumentado debido a haber utilizado una ventana más larga (con mejor resolución). La pregunta de qué interesa más dado un número de muestras total, si calcular un único periodograma de una ventana larga, o promediar varios de ventanas cortas, tiene por respuesta un “depende” de lo que pretendamos. Si únicamente pretendemos detectar un tono en ruido, hemos visto que da igual. Si en vez de un tono hubiéramos tenido 2, nos verı́amos obligados a utilizar ventanas que permitieran resolver los mismos. Si no estamos interesados únicamente en la detección sino en conocer ”bien.el espectro, promediar varios periodogramas nos da una estima más fiable. Además, si disponemos de muchas muestras es posible promediar varios periodogramas de ventanas largas,. . . Resumiendo, y a la vista de las figuras, podemos extraer las siguientes conclusiones: Dado un número total de muestras LT , el método de Welch tiene: • Peor resolución que el periodograma único de longitud LT . • Menor varianza que el periodograma único de longitud LT . Dado un tamaño de ventana fijo L, el método de Welch presenta: • La misma resolución que el periodograma. • Menor varianza que el periodograma. Sin embargo debe tenerse presente que el método de Welch en este segundo caso juega con ventaja pues dispone de más muestras de partida. 5.5.6. Resumen métodos no-paramétricos Como resumen de los métodos no-paramétricos vistos en esta sección podemos establecer una serie de conclusiones: El periodograma es el método básico de análisis. Es computacionalmente eficiente (FFT). • Su sesgo se puede reducir tomando más muestras. • Su varianza no se puede reducir y es siempre grande. Los otros métodos, Blackman-Tukey y Welch, permiten reducir la varianza de la estima del periodograma. 210 CAPı́TULO 5. ANÁLISIS ESPECTRAL El periodograma es un caso particular de los métodos Blackman-Tukey y Welch. Para un número de muestras total dado, la reducción de la varianza se logra siempre a base de aumentar el sesgo. Podrı́amos resumir lo anterior diciendo que estos métodos proporcionaran buenos resultados cuando el número de muestras disponible sea grande. 5.6. Análisis Tiempo-Frecuencia En las secciones anteriores se ha considerado el análisis espectral de señales estacionarias. Para dichas señales, tiene sentido hablar de un espectro para toda la señal. Cuando la señal es no estacionaria, la autocorrelación deja de depender únicamente de la diferencia de instantes para depender también del instante concreto considerado. En ese caso, aunque puede hablarse de un espectro medio, en realidad carece de sentido práctico la mayor parte de las veces. Para entender lo que queremos decir pensemos en un tono cuya frecuencia varı́a lentamente. Muchas veces estaremos interesados en saber la frecuencia del tono en función del tiempo. Veamos un ejemplo. La figura 5.36 muestra una señal que es un pulso de envolvente trapezoidal, con una portadora cuya frecuencia comienza siendo 0.05 para ir aumentando hasta llegar a 0.15; dicha figura muestra igualmente el módulo de su TF. La figura 5.37 muestra una señal similar pero en este caso la frecuencia disminuye desde 0.15 hasta 0.05. Puede observarse que las transformadas de Fourier son idénticas en ambos casos y proporcionan una especie de espectro medio de las frecuencias ocupadas por la señal (de 0.05 a 0.15 en ambos casos). ¿Cómo puede ser que dos señales diferentes tengan la misma TF? La respuesta a esta pregunta es que realmente no tienen la misma TF. La diferencia está en la fase. Sin embargo, su espectro de energı́a coincide y no aporta ninguna información sobre el orden en que se suceden las distintas frecuencias. Dicha información se encuentra naturalmente en la fase. Recordemos que la TF de una señal desplazada en el tiempo, sólo difiere en la fase de la TF de la señal original. De alguna forma, la posición temporal de cada componente espectral está imbricada (de forma no obvia) en la información de fase de la TF. Tal vez resulta más interesante, en vez de ver la señal de forma global, mirar pequeños fragmentos donde la frecuencia fuera constante, e ir viendo cómo evoluciona la frecuencia con el tiempo. Ésta es la idea de la TF de Fourier 211 5.6. Análisis Tiempo-Frecuencia S1 1 x[n] 0.5 0 -0.5 -1 0 50 100 150 200 250 n 300 350 400 450 500 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 40 |X(f)| 30 20 10 0 0 Figura 5.36: Pulso de RF de frecuencia creciente y su TF. dependiente del tiempo que se verá en el siguiente apartado. De alguna forma, intercambiaremos parte de la información contenida en la fase por información temporal explı́cita. 5.6.1. La TF dependiente del tiempo Se define la TF dependiente del tiempo, o de tiempo corto (STFT) como: X[n, λ) = ∞ X w[m] x[n + m] e−jλm (5.39) m=−∞ Analicemos un poco la anterior expresión. Lo primero que llama la atención es que la STFT es una función de dos variables; la primera n es discreta y representa el instante de tiempo al que se refiere el cálculo de la TF. La segunda, λ, es contı́nua y, como puede verse en la expresión, hace el papel de ω en las TF’s normales. Dentro de poco entenderemos el porqué de usar una letra diferente. Para expresar claramente el hecho de que la primera variable es discreta y la segunda contı́nua, utilizamos la notación ”[·)”. La variable λ es además periódica (como ω); no obstante, y para no recargar la notación, no escribiremos ejλ . Continuando con nuestro análisis, vemos que X[n, λ) no es 212 CAPı́TULO 5. ANÁLISIS ESPECTRAL S2 1 x[n] 0.5 0 -0.5 -1 0 50 100 150 200 250 n 300 350 400 450 500 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 40 |X(f)| 30 20 10 0 0 Figura 5.37: Pulso de RF de frecuencia decreciente y su TF. otra cosa que la TF ordinaria de la señal: w[m] x[n + m] (5.40) w[m] es una ventana similar a las vistas que limita el trozo de señal a analizar. Supondremos que es no nula en torno al origen. x[n + m] es la versión desplazada n hacia la izquierda de la señal que estamos analizando. Lo que estamos haciendo es desplazar la señal de modo que el fragmento que originariamente estaba en m = n, tras el desplazamiento esté situado en m = 0. De este modo, variando n, cada vez tenemos un trozo distinto de señal cerca del origen. Un aspecto no mencionado hasta ahora, es el relativo a la representación de la STFT. Dicha transformada es compleja y de dos variables. Lo que se suele hacer es representar el módulo (o la fase) como una función bidimensional, en la que un eje representa el tiempo y el otro (entre −π y π) la pulsación λ. Entre los métodos habitualmente empleados para representar funciones de este tipo están las curvas de nivel, las imágenes de falso color o las representaciones tridimensionales. Las figuras 5.38, 5.39 y 5.40 muestran la STFT de la señal de la figura 5.36. En ellas se puede apreciar que para cada instante, tenemos un pico (tono) y que la posición de este pico va aumentando de frecuencia a medida que aumenta el tiempo. 213 5.6. Análisis Tiempo-Frecuencia 30 25 20 15 10 5 0 0.5 0.4 500 0.3 400 300 0.2 200 0.1 100 0 0 Figura 5.38: Módulo de la STFT de la señal de la figura 5.36 vista en 3D. 0.5 0.45 0.4 0.35 f 0.3 0.25 0.2 0.15 0.1 0.05 0 0 50 100 150 200 250 n 300 350 400 450 500 Figura 5.39: Módulo de la STFT de la señal de la figura 5.36 vista con curvas de nivel. 5.6.2. Elección de la ventana En el apartado anterior hemos visto que, en cada instante n, tenemos una TF de la señal enventanada con una ventana w[m] que supondremos de 214 CAPı́TULO 5. ANÁLISIS ESPECTRAL f 6 - n Figura 5.40: Módulo de la STFT de la señal de la figura 5.36 vista con niveles de gris. Colores más claros representan, valores más grandes. Pueden apreciarse los lóbulos laterales debidos al uso de una ventana rectangular longitud L. La elección de la ventana a utilizar sigue los mismos criterios vistos en los apartados anteriores con respecto a la resolución y lóbulos laterales. Si queremos tener una buena resolución en frecuencia emplearı́amos ventanas largas. Esto, que en el caso de señales estacionarias no representa ningún problema, en el caso de señales no estacionarias puede dar lugar a que dentro de la ventana de análisis estemos considerando porciones no estacionarias de señal. En ese caso, la elección de una ventana larga nos llevarı́a de nuevo a obtener espectros medios de lo que sucede en la ventana. Diremos que en ese caso estamos perdiendo resolución temporal. No vamos a dar aquı́ una definición rigurosa de resolución temporal, pero intuitivamente, podrı́amos decir que tendrı́a que ver con la capacidad de detectar correctamente eventos de duración corta. Parece obvio que para detectar el fenómeno de duración corta, es necesario que al menos para algún n, la ventana esté situada únicamente sobre el fenómeno de duración corta. Vemos por tanto que para tener una buena resolución temporal nos interesan ventanas cortas. Tras la anterior discusión estamos llegando a una de las limitaciones fundamentales del análisis de señales que podrı́amos enunciar del siguiente modo: 215 5.6. Análisis Tiempo-Frecuencia 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 0 50 100 150 200 250 n 300 350 400 450 500 Figura 5.41: Señal que es la suma de dos tonos de freceuncias similares, salvo en un intervalo de 25 muestras en que es un único tono de frecuencia bastante distinta de las anteriores. Es imposible conocer simultáneamente con infinita resolución el contenido tiempo-frecuencial de una señal. Esta afirmación resume el hecho contradictorio que acabamos de ver: Si deseamos buena resolución frecuencial, es decir, conocer bien la señal en la frecuencia, interesan ventanas de análisis largas. Si deseamos una buena resolución temporal, es decir, conocer bien cómo evoluciona la señal en el tiempo, interesan ventanas de análisis cortas. En la práctica, en función de la señal que vayamos a analizar y de la información que deseemos utilizaremos una longitud de ventana u otra. La figura 5.41 muestra una señal que es la suma de dos tonos salvo en un intervalo de 25 muestras que es un tono de frecuencia y amplitud diferente. Dicha señal es analizada en la figura 5.42 con una ventana corta (21 muestras) de modo que se aprecia perfectamente el transitorio, pero muy mal los dos tonos de frecuencias similares. En la figura 5.43 se realiza una análisis pero utilizando una ventana más larga (71 muestras). Ahora, los 2 tonos se distinguen claramente, pero es difı́cil decir qué sucede en el transitorio. 216 CAPı́TULO 5. ANÁLISIS ESPECTRAL f 6 - n Figura 5.42: Análisis de la señal de la figura 5.41 con una ventana de duración 21. f 6 - n Figura 5.43: Análisis de la señal de la figura 5.41 con una ventana de duración 71. 5.6.3. Interpretación como banco de filtros de la TF dependiente del tiempo Supongamos que tomamos la Transformada de Fourier de Tiempo Corto X[n, λ) y la particularizamos para λ = λ0 . Obtendremos de esta forma 217 5.6. Análisis Tiempo-Frecuencia una secuencia (compleja) que denominaremos xλ0 [n]. Veamos qué propiedades tiene. ∞ X xλ0 [n] = X[n, λ0 ) = w[m] x[n + m] e−jλ0 m (5.41) m=−∞ Realizando en la anterior expresión el cambio de m por −m0 obtenemos: xλ0 [n] = ∞ X 0 x[n − m0 ] w[−m0 ] ejλ0 m = x[n] ∗ hλ0 [n] (5.42) m0 =−∞ con hλ0 [n] = w[−n] ejλ0 n (5.43) Es posible calcular la respuesta en frecuencia de este filtro tomando, como siempre, la TF de la respuesta impulsional. Hλ0 (ejω ) = W (ej(λ0 −ω) ) (5.44) Es decir, para cada λ la secuencia xλ [n] es el resultado de filtrar la señal original x[n] con un filtro de respuesta impulsiva hλ [n]. Suponiendo que la TF de la ventana sea paso bajo (caso habitual) el filtro hλ [n] es un filtro paso-banda cuya banda de paso está centrada en la frecuencia ω = λ, y cuya respuesta en frecuencia tiene la forma de la TF de la ventana utilizada desplazada en frecuencia Esta interpretación de la TF es sumamente interesante, puesto que nos dice que realizar consecutivamente TF equivale a implementar un banco de filtros, cuyas respuestas en frecuencia dependen de la ventana elegida. 5.6.4. Transformada Inversa La STFT se ha aplicado, entre otros, al campo de la codificación de señales vocales. En esta aplicación lo que se hace es, en vez de codificar las muestras de la señal, codificar valores de la STFT. Dado que los valores de la STFT se corresponden a diferentes frecuencias, y que el oı́do no tiene la misma sensibilidad al ruido de cuantificación en todas las frecuencias, es posible asignar los bits de forma no uniforme a cada frecuencia. Además, dado que las señales no son estacionarias, es posible variar la asignación binaria en función de las frecuencias activas en cada instante. Lo anterior lleva a la necesidad de recuperar la señal original x[n] a partir de X[n, λ). Para ello hay que deshacer ordenadamente los pasos hechos. 218 CAPı́TULO 5. ANÁLISIS ESPECTRAL 1. Para cada n se hace una TF−1 . Obtenemos con ello w[m] x[n + m], es decir un fragmento enventanado de la señal. 2. Para recuperar x[n] basta con particularizar el resultado anterior para m = 0 y dividir por w[0]. Para finalizar esta sección, haremos un comentario de tipo práctico. Observemos que de toda la TF−1 del punto 1 únicamente estamos interesados en un valor (el de m = 0). En ese caso, resulta mucho más eficaz calcular únicamente la TF−1 para ese valor de m concreto que no utilizar una FFT−1 (ver siguiente sección) para luego quedarnos con un único valor. 5.6.5. Muestreo en frecuencia y en tiempo En la definición hecha en la ecuación (5.39) de la STFT, aparece una TF. Supondremos que la ventana w[n] tiene únicamente L valores no nulos. Como cabe esperar, dicha TF se calcula en la práctica como una FFT. Es decir, se realiza un muestreo en frecuencia (λ) de la transformada. Para que no exista ambigüedad, el número de muestras espectrales, N , deberá ser al menos igual a la longitud de la ventana w[n]. Para realizar las FFT, como siempre, podemos rellenar con ceros las L muestras de señal enventanadas antes de hacer la FFT. En la misma definición de la ecuación (5.39) se ve que en cada transformada de Fourier intervienen L muestras. Esto permite, si se desea, no tener que calcular las transformadas de Fourier para todo n sino únicamente cada R muestras. Si se cumple R ≤ L será posible recuperar la señal original, pues en cada TF−1 se recuperan hasta L muestras de la misma. Resumiendo, si: L es la longitud de la ventana. N es el número de puntos de la FFT. R es el factor de diezmado temporal. para poder recuperar la señal debe cumplirse: R≤L≤N (5.45) Esta relación es interesante tenerla presente en aplicaciones de codificación donde es de suma importancia guardar el mı́nimo número de valores de la STFT para ser capaces de recuperar la señal. 5.7. Análisis Espectral Paramétrico 5.7. 219 Análisis Espectral Paramétrico En la parte precedente del tema, se han estudiado métodos de análisis espectral de los denominados no-paramétricos. Se denominan ası́ porque no suponen nada sobre la naturaleza de la señal bajo análisis y porque simplemente producen como resultado muestras en frecuencia de la estima de la DEP. Estos métodos tienen unas limitaciones que son: Poca resolución con registros cortos de señal. La razón última de la limitación en resolución de estos métodos, reside en que se asume que la autocorrelación es nula fuera del intervalo que se puede calcular. Pensemos por ejemplo en el periodograma, que es la TF del estimador sesgado de la autocorrelación; si tomamos una ventana de L muestras es imposible estimar la correlación para |m| > L. Lo que hacemos es suponer que fuera del intervalo en que podemos calcularla, la autocorrelación vale 0. Mucha varianza. Hemos analizado anteriormente las causas de la varianza y formas de reducirla. Podemos dar otra visión estadı́stica de por qué la varianza es grande. Supongamos inicialmente el periodograma. Si suponemos que el número de muestras espectrales que tomamos, N , coincide con la longitud de la ventana de muestras, L, resulta que lo que estamos haciendo es estimar un conjunto de L muestras espectrales a partir de L muestras temporales. En estadı́stica, hay una regla práctica que dice que si la cantidad de valores a estimar es igual a la cantidad de datos que tenemos, la estima tendrá gran varianza. Si recordamos lo que sucedı́a tanto en el método de BT como de Welch, allı́ tenı́amos muchas más muestras totales que muestras espectrales calculábamos (supuestas FFT’s sin relleno de ceros, pues con relleno con ceros la FFT simplemente interpola como sabemos). Es por ello que estos métodos tenı́an una varianza menor, porque la relación entre valores estimados y datos disponibles era pequeña. La idea de los métodos paramétricos consiste básicamente en presuponer que la DEP (o la autocorrelación) son de una determinada forma que depende de esos pocos parámetros. De ese modo, con muchas menos muestras que los métodos no paramétricos: Sólo tendremos que estimar unos pocos parámetros, para estimar la DEP. La relación entre los parámetros y la DEP la suponemos conocida. Al ser muy pocos los parámetros a estimar, es posible utilizar pocas muestras y aún ası́ tener una estima de poca varianza. 220 CAPı́TULO 5. ANÁLISIS ESPECTRAL Rx [m] 6 @ @ Estimado a partir de muestras Extrapolación por modelo - m Figura 5.44: Extrapolación de la autocorrelación usando un modelo. Utilizando pocas muestras, es posible estimar únicamente unos (pocos) valores de la autocorrelación. Si con esos pocos valores somos capaces de extraer los parámetros del modelo, seremos capaces de inferir la porción de autocorrelación que no podemos medir. Para entender lo que queremos decir, pensemos en un ejemplo (figura 5.44). Supongamos que hacemos la hipótesis de que la autocorrelación de la señal que estoy analizando tiene forma de triángulo. Supongamos que estimo unos pocos valores de correlación a partir de las muestras; como dichos valores son pocos, es posible estimarlos con poca varianza. A partir del conocimiento de parte de la autocorrelación puedo deducir el resto teniendo en cuenta la hipótesis de que la autocorrelación tiene forma de triángulo. La esencia de los métodos paramétricos, consiste pues en asumir un modelo de señal, y bajo esa hipótesis realizar el análisis. Observemos que si se cumple el modelo, estos métodos dan mejores resultados que los métodos no paramétricos debido a que puedo extrapolar la autocorrelación a partir de valores fiables en vez de suponer que es cero o estimarla con mucha varianza. Un aspecto que se plantea de inmediato es: ¿cómo sé cuál es el modelo correcto que se ajusta a la señal que estoy analizando?. Esta pregunta lamentablemente no tiene una respuesta clara. En la práctica, en algunos casos, el módelo fı́sico de generación de la señal nos puede dar una pista sobre el tipo de modelo a aplicar a la señal analizada. Es el caso de la voz. Si no tengo ningún conocimiento sobre el mecanismo fı́sico que origina la señal que estoy tratando de analizar, los métodos no paramétricos y la experiencia me pueden ayudar a seleccionar el modelo adecuado. Vamos a ver a continuación los principales modelos utilizados en el análisis espectral. Todos tienen en común el que suponen que la señal analizada puede ser considerada como el resultado de filtrar un ruido blanco de potencia media unidad. (Figura 5.45) 221 5.7. Análisis Espectral Paramétrico Suponiendo conocido el filtro h[n] (real) y por las relaciones de correlación entre entrada y salida de un filtro lineal, tenemos que: Rx [m] = h[m] ∗ h[−m] (5.46) Φx (ejω ) = |H(ejω )|2 (5.47) expresiones en las que se ha hecho uso de que e[n] es un ruido blanco de potencia media unidad. El problema consiste pues, en estimar cuáles son los parámetros del filtro (sus coeficientes), de modo que el filtro aplicado a un ruido blanco genere nuestra señal; tenemos como dato muestras de nuestra señal x[n]. El anterior problema es imposible de resolver en general. Lo que se hace en la práctica es suponer que el filtro es de un determinado tipo y orden, y calcular entonces los parámetros del filtro que mejor se ajustan al modelo supuesto. Los principales tipos de modelos empleados son: MA (Moving Average): En este caso se supone que el filtro h[n] es FIR. por lo que la autocorrelación también tiene extensión finita (ver ecuación (5.46)). Esta hipótesis es la misma que hace, por ejemplo, el método de BT. Por tanto, estos modelos, se pueden considerar estudiados dentro de los métodos no-paramétricos. AR (Auto-Regresive): En este caso se supone que el filtro es todo polos, es decir, que el numerador de su función de transferencia es una constante. La expresión que estamos suponiendo para el filtro es de la forma: G 1 − a1 z −1 − a2 z −2 − · · · − ap z −p HAR (z) = (5.48) donde se ve claramente que conociendo los coeficientes del filtro, conozco el filtro y mediante la ecuación (5.47) la DEP de la señal. Al valor p se le denomina orden del modelo, y se suele hablar de modelos AR-p. Dado que la respuesta impulsional de estos filtros es infinita, también lo será su autocorrelación. Este tipo de modelos permiten pues, conociendo Ruido blanco - e[n] Señal a analizar h[n] - x[n] Figura 5.45: Modelo de generación de señales en análisis espectral paramétrico. 222 CAPı́TULO 5. ANÁLISIS ESPECTRAL los coeficientes del filtro, conocer la autocorrelación para todo m de modo análogo a como hicimos en la figura 5.44. ARMA (Auto-Regresive and Moving Average): Este tipo de modelos suponen que el filtro tiene por numerador y denominador polinomios en z −1 , es decir: HARM A (z) = b0 + b1 z −1 + b2 z −2 + · · · + bq z −q 1 − a1 z −1 − a2 z −2 − · · · − ap z −p (5.49) Por su mayor complejidad, no estudiaremos aquı́ este tipo de modelos. El lector interesado puede consultar [4]. 5.7.1. Modelos AR En esta sección estudiaremos cómo se pueden estimar los coeficientes del filtro del modelo a partir de las muestras de señal. Estamos suponiendo que el filtro es todo polos. Por lo tanto: HAR (z) = X(z) G = −1 E(z) 1 − a1 z − a2 z −2 − · · · − ap z −p (5.50) La anterior ecuación permite establecer la ecuación en diferencias que relaciona las muestras de e[n] con las de x[n]: x[n] = G e[n] + a1 x[n − 1] + a2 x[n − 2] + · · · + ap x[n − p] (5.51) Multiplicando por x[n] ambos miembros de la ecuación anterior, y tomando esperanzas matemáticas, se obtiene: Rx [0] = G Rxe [0] + a1 Rx [1] + a2 Rx [2] + · · · + ap Rx [p] (5.52) Por las propiedades de la correlación cruzada entre la entrada y la salida de un filtro, sabemos que: Rxe [m] = E{x[n + m] e[n]} = h[m] ∗ Re [m] = h[m] (5.53) Aplicándolo en la ecuación (5.52): Rxe [0] = h[0] = G (5.54) Rx [0] = G2 + a1 Rx [1] + a2 Rx [2] + · · · + ap Rx [p] (5.55) por lo que podemos escribir: 223 5.7. Análisis Espectral Paramétrico Multipliquemos ahora por x[n − 1] ambos miembros de la ecuación (5.51) y volvamos a tomar esperanzas matemáticas: Rx [1] = G Rxe [−1] + a1 Rx [0] + a2 Rx [1] + · · · + ap Rx [p − 1] (5.56) Por la ecuación (5.53) sabemos que Rxe [−1] = h[−1] = 0 por lo que obtenemos: Rx [1] = 0 + a1 Rx [0] + a2 Rx [1] + · · · + ap Rx [p − 1] (5.57) Si multiplicamos ahora por x[n − 2] y tomamos esperanzas, y repetimos el proceso hasta x[n − p] obtenemos un sistema de ecuaciones: G2 + a1 Rx [1] + a2 Rx [2] + · · · + ap Rx [p] = Rx [0] 0 + a1 Rx [0] + a2 Rx [1] + · · · + ap Rx [p − 1] = Rx [1] (5.58) ··· = ··· 0 + a1 Rx [p − 1] + a2 Rx [p − 2] + · · · + ap Rx [0] = Rx [p] Dicho sistema de ecuaciones de p + 1 ecuaciones y p + 1 incógnitas se conoce como Ecuaciones de Yule-Walker y permite obtener los coeficientes del filtro del modelo AR a partir de valores de correlación de la señal. Dichos valores se estiman directamente a partir de las muestras de la señal tal y como se vio en la sección 5.5.3. El mencionado sistema se suele escribir en forma matricial del siguiente modo: ··· Rx [p] · · · Rx [p − 1] · · · Rx [p − 2] .. .. . . Rx [p] Rx [p − 1] Rx [p − 2] · · · Rx [0] Rx [0] Rx [1] Rx [2] .. . Rx [1] Rx [0] Rx [1] .. . Rx [2] Rx [1] Rx [0] .. . 1 −a1 −a2 .. . −ap = G2 0 0 .. . 0 (5.59) Resumiendo el método de análisis espectral mediante modelos AR, consistirı́a en: Elegir el orden y el tipo de modelo. Estimar los valores de correlación necesarios para plantear las ecuaciones de Yule-Walker. Suele utilizarse el estimador sesgado. 224 CAPı́TULO 5. ANÁLISIS ESPECTRAL 10 8 6 4 2 0 -2 -4 -6 -8 -10 0 5 10 15 20 25 n 30 35 40 45 50 Figura 5.46: Muestras pertenecientes a un fragmento de proceso aleatorio tipo AR de orden 4. Resolver las ecuaciones de Yule-Walker. Mediante la expresión (5.47) calcular la DEP. Vamos a ver a continuación algunos ejemplos de análisis mediante esta técnica para tener una idea de lo que se puede lograr con ella. La figura 5.46 muestra un fragmento de 50 muestras de un proceso AR de orden 4. Dicho fragmento ha sido obtenido filtrando un ruido blanco con un filtro todo polos de orden 4 conocido. Por tanto, conocemos la DEP teórica de dicho fragmento de señal. En un problema de análisis real no conocerı́amos la DEP verdadera del proceso (¡es lo que tratamos de averiguar!). Cuando veamos los resultados obtenidos por diferentes métodos compararemos lo que se obtiene con cada uno de ellos con dicha DEP teórica. En la figura 5.47 vemos el resultado de realizar un análisis espectral utilizando un modelo AR de orden 4 (el correcto). Vemos que el resultado obtenido se acerca mucho al real (pocos dB de diferencia), pese a haber utilizado muy pocas muestras. Las diferencias se deben a que la autocorrelación empleada en las ecuaciones de Yule-Walker es estimada y no la teórica. Para que entendamos la potencia de este tipo de análisis, vamos a comparar el análisis de las mismas 50 muestras de señal mediante un periodograma. 225 5.7. Análisis Espectral Paramétrico 25 20 15 dB 10 5 0 -5 -10 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.47: Comparación entre la DEP teórica y la estima AR de orden 4 de la señal de la figura 5.46. La figura 5.48 muestra el resultado. Como puede apreciarse, el periodograma presenta un resultado totalmente aleatorio. Podrı́a pensarse en utilizar alguna de las técnicas vistas en los métodos no paramétricos para reducir la varianza. Veamos que sucede, si por ejemplo consideramos el método BT con un ancho de ventana de 21 (rectangular). El resultado se muestra en la figura 5.49. A la vista de las figuras 5.47, 5.48 y 5.49 uno podrı́a tener la idea de que los métodos paramétricos son muy superiores a los no paramétricos. Y en efecto ası́ es siempre que acertemos con el modelo adecuado. Si se utiliza un modelo no adecuado, los resultados obtenidos son totalmente absurdos. En la figura 5.50 se muestra el resultado de realizar el análisis de las mismas muestras de señal pero suponiendo modelo AR de orden 2 y en la figura 5.51 suponiendo orden 8 (recordemos que el orden verdadero es de 4). Como puede verse los resultados son totalmente insatisfactorios debido a no haber elegido correctamente el modelo. 226 CAPı́TULO 5. ANÁLISIS ESPECTRAL 30 25 20 15 dB 10 5 0 -5 -10 -15 -20 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.48: Comparación entre la DEP teórica y periodograma de la señal de la figura 5.46. 30 25 20 15 dB 10 5 0 -5 -10 -15 -20 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.49: DEP teórica, estima mediante BT del espectro de la señal de la figura 5.46 y diferencia en dB. 227 5.7. Análisis Espectral Paramétrico 25 20 15 dB 10 5 0 -5 -10 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.50: Comparación entre la DEP teórica y la estima mediante un modelo AR de orden 2 del espectro de la señal de la figura 5.46. 25 20 15 dB 10 5 0 -5 -10 0 0.05 0.1 0.15 0.2 0.25 f 0.3 0.35 0.4 0.45 0.5 Figura 5.51: Comparación entre la DEP teórica y la estima mediante un modelo AR de orden 8 del espectro de la señal de la figura 5.46. 228 CAPı́TULO 5. ANÁLISIS ESPECTRAL 5.8. Problemas 1. La transformada de Fourier de tiempo corto se puede definir de una forma diferente a como se expresa en la ecuación (5.39). Dicha forma alternativa es: X̌[n, λ) = ∞ X x[m] w[n − m] e−jλm m=−∞ a) Realice una interpretación gráfica de la anterior definición y compárela con la de la ecuación (5.39). ? b) Encuentre la relación X[n, λ) ←→ X̌[n, λ). c) Demuestre que s[n] = X̌[n, λ0 ) es una señal paso-bajo ∀λ0 d ) Sea x[n] una señal arbitraria que se aplica a la entrada de un filtro FIR de respuesta impulsiva h[n] para obtener y[n] a la salida. y[n] = M X h[k] x[n − k] k=0 ? Encuentre la relación X[n, λ) ←→ Y [n, λ) si se utiliza en ambos casos la misma ventana. e) Demuestre que si la longitud de la ventana es larga comparada con M , la longitud del filtro h[n] se cumple: Y̌ [n, λ) ' H(ejλ ) X̌[n, λ) siendo H(ejω ) la respuesta en frecuencia del filtro. Ejercicios con MATLAB Los archivos necesarios para realizar estos ejercicios se encuentran en: http://ttt.upv.es/∼aalbiol/librotds 1. Identificar pares multifrecuencia. En este ejercicio, vamos a tratar de comprobar la utilidad del análisis espectral en la decodificación de señalización telefónica multifrecuencia. Como se sabe en telefonı́a existe una forma de transmitir señalización consitente en transmitir una pareja de frecuencias diferente para cada número que se desee transmitir. La tabla de frecuencias se muestra a continuación. Las fases de los tonos generados, es en general aleatoria, lo que hace que el aspecto temporal de las señales pueda ser bastante diferente para un mismo dı́gito. 229 5.8. Problemas El archivo UNOS.MAT contiene dos vectores correspondientes a dos unos distintos (fases iniciales diferentes) y con una pequeña proporción de ruido. Compruebe que son diferentes, y que en el dominio del tiempo no resulta sencillo decidir el dı́gito correspondiente. 679 770 852 941 hz hz hz hz 1209 hz 1 4 7 * 1336 hz 2 5 8 0 1477 hz 3 6 9 # Cuadro 5.2: Tablas de códigos multifrecuencia. El archivo DTMF.MAT tiene varios dı́gitos, correspondientes a un número de teléfono de 7 cifras. Intente averiguar cuáles son, utilizando el mı́nimo número de muestras, la ventana que crea más conveniente, y comparando con las frecuencias de la tabla. ¿Cuál cree que es la máxima velocidad de pulsación de dı́gitos que se puede tener para poder decodificar correctamente los mismos? (suponga que no existen pausas entre los dı́gitos). 2. El juego de los espı́as. En este ejercicio, suponga que es el responsable de un servicio de contraespionaje, y que su objetivo es interceptar los mensajes del enemigo. Se sabe, que el enemigo transmite mensajes codificados en forma de presencia de tonos camuflados junto a otros que solamente pretenden distraer nuestra atención (tonos de camuflaje). En concreto se sabe que emplea dos técnicas: Enviar tonos de pequeña amplitud comparados con los de camuflaje (30 dB menos) y de frecuencia claramente distinta a la de los tonos de camuflaje. Enviar tonos de amplitud menor aunque comparable a la de los tonos de camuflaje pero de frecuencia muy similar a la de alguno de los tonos de camuflaje. Se ha estimado que la separación mı́nima de frecuencia que se prevé que utilice es de 1/200 hz. Los tonos de camuflaje son de distinta frecuencia de una transmisión a otra pero en una cierta transmisión todos tienen la misma amplitud. El enemigo transmite estas señales durante bastante tiempo pero interesa ser capaces de detectar la presencia de los tonos lo antes posible (utilizando la minima cantidad de muestras) dado que es posible que el 230 CAPı́TULO 5. ANÁLISIS ESPECTRAL mensaje implique un riesgo sobre nosotros. Su misión es definir y aplicar el procedimiento para detectar la presencia de los mensajes (tonos), utilizando la mı́nima cantidad de muestras posibles. En el servidor de TDS, se encuentra el archivo CAMU1.MAT que contiene un vector con muestras de un mensaje interceptado al enemigo. Para comprobar la utilidad de las herramientas de análisis presentadas hasta el momento, compruebe que a la vista de las muestras (en el tiempo) si le es posible saber las frecuencias de los tonos de camuflaje y de los posibles mensajes. Utilizando las técnicas de análisis espectral que considere oportunas, determine la presencia de tonos camuflados. ¿Cuál es el mı́nimo número de muestras necesario para detectar los tonos? 3. Análisis espectral de señales de voz. En este ejercicio se van a comprobar algunas de las propiedades de la voz en el dominio de la frecuencia. Para ello se tomará el fichero DONDE.MAT que contiene la palabra “donde” dicha de forma enunciativa e interrogativa en las variables d1 y d2. El espectro localizado (en fragmentos donde se puede suponer estacionariedad) de la señal de voz se caracteriza por dos aspectos: El pitch o frecuencia fundamental de los sonidos sonoros. Los sonidos sonoros son cuasi-periódicos. Por lo tanto su espectro está formado aproximádamente por deltas situadas en los armónicos de la frecuencia fundamental. El pitch es el reponsable del tono de voz y es de aproximádamente unos 100 hz para los hombre y de unos 200 hz para las mujeres (depende bastante de los individuos particulares). Para un mismo individuo, y dentro de una frase se producen variaciones del mismo que subjetivamente el cerebro asocia con la entonación de la frase. Ası́, una frase enunciativa tiene una variación temporal del pitch muy pequeña, mientras que en una frase interrogativa el pitch aumenta al final de la misma. Los formantes. Antes hemos mencionado que los sonidos sonoros son casi periódicos. Si el pitch estaba relacionado con el periodo de repetición, los formantes estan relacionados con la forma de los periodos. Dicha forma depende como se sabe de la envolvente espectral. Los formantes son las frecuencias de resonancia (picos) de dicha envolvente espectral. La envolvente espectral es la responsable de que identifiquemos los distintos sonidos, es decir, de que distingamos la ‘o’ de la ‘e’, por ejemplo. 231 5.8. Problemas En el ejercicio vamos a aplicar los conocimientos que tenemos para inferir información de las señales de voz. a) Determinación de la entonación. Parece lógico que dado que lo que buscamos es la evolución de una frecuencia (pitch) con el tiempo se utilicen técnicas de análisis tiempo-frecuencia. En el servidor encontrará la función stft.m que implementa la transformada de Fourier de tiempo corto. Para ser capaz de ver la evolución del pitch, es necesario que la resolución en frecuencia de la ventana de análisis empleada permita resolver los distintos armónicos. Determine cuál es la longitud mı́nima de ventana de Hamming que se deberı́a utilizar si no se sabe si el locutor es hombre o mujer. Utilizando una duración de ventana el doble de la anteriormente calculada, analice mediante la TF de tiempo corto las señales d1 y d2. Visualice los resultados utilizando la función Matlab pcolor. ¿Puede a la vista de los resultados inferir cuál es la interrogativa? Puede comprobar si ha acertado utilizando la función sound de Matlab. Observe las señales en el dominio del tiempo e indique si hubiera sido capaz de encontrar la frase interrogativa en dicho dominio. En la segunda parte vamos a analizar mediante métodos paramétricos fragmentos de señal de voz para hacer reconocimiento de sonidos. La señal de voz se corresponde bastante bien con un modelo AR. En dichos modelos todo polos la forma del espectro presenta una serie de resonancias debidas a cada uno de los polos. El número de resonancias depende del ancho de banda considerado. Para un ancho de banda de 4 khz (fs = 8 khz) se suele considerar un orden de 10 (5 resonancias). Indique si a la vista de los resultados del punto anterior dicha cantidad parece razonable. A E I O U Cuadro 5.3: Tablas Formante 1 Formante 2 620–800 1000-1500 420–500 1600-2000 200–300 2000-2500 400–500 800-1000 230–290 600-900 de frecuencias de formantes en castellano. 232 CAPı́TULO 5. ANÁLISIS ESPECTRAL Se han seleccionado bloques de 40 ms. correspondientes a las o’s y las e’s del primer y segundo vector(o1, o2, e1, e2). Analice las señales mediante un modelo AR de orden 10. Una vez obtenidos los coeficientes del filtro, represente los polos de todos los filtros en una misma gráfica (con distintos sı́mbolos). Sabiendo que el argumento de los polos corresponde con la frecuencia de resonancia, ¿Cree poder identificar las señales? Compruebe que en el dominio del tiempo, las señales correspondientes a un mismo sonido (‘o’ por ejemplo) son suficientemente distintas como para que sea difı́cil reconocer el sonido en dicho dominio. Apéndice A Señales Aleatorias Discretas A.1. Introducción En tratamiento digital de la señal existen dos conceptos fundamentales: las señales y los sistemas. Una manera de considerar las señales es a través de un enfoque determinista, en el cual una señal discreta es una secuencia de números correspondientes a los valores de amplitud de la señal en distintos instantes de tiempo. En teorı́a de la señal hay una gran variedad de herramientas (Transformada de Fourier, Transformada Z, etc.) que permiten la descripción de señales deterministas en dominios distintos al tiempo. En lo referente a los sistemas, resulta interesante conocer como un sistema modifica la señal que tiene en su entrada, con el objetivo de ser capaces de diseñar sistemas que realicen tareas de interés. Si un sistema se caracteriza adecuadamente y en su entrada hay una señal determinista, se puede saber analı́ticamente cuál es la señal determinista en su la salida. Parece razonable pensar, por tanto, que el enfoque determinista es de gran utilidad. Sin embargo, en la práctica este enfoque es poco útil debido fundamentalmente a dos razones: Habitualmente, la secuencia de entrada en un sistema discreto de interés no es única. Ası́ por ejemplo, en comunicaciones, las señales suelen provenir de fuentes de información continuas o discretas, donde la forma de onda de la señal depende del mensaje que se transmite, el cual, habitualmente no se conoce a priori. Asumiendo la variabilidad de la señal en la entrada de un sistema, el enfoque determinista tiene poco interés, ya que por ejemplo, a la hora de diseñar el sistema: ¿Cuál serı́a, de entre todas las posibles, la señal que deberı́amos considerar como señal de entrada? La existencia de señales de naturaleza intrı́nsecamente aleatoria llamadas ruido. El ruido es una señal impredecible debida a diversos fenómenos 233 234 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS fı́sicos que está siempre presente (al menos en condiciones fı́sicas normales). Por ejemplo, en sistemas de comunicación, uno de los principales inconvenientes para una correcta detección o decodificación, aparte de la atenuación y la distorsión de la señal transmitida, es el ruido introducido en el proceso de transmisión-recepción. Estas dos razones hacen que, en la práctica, sea necesaria una caracterización aleatoria o estadı́stica en la que las señales se consideren realizaciones de procesos estocásticos. A.2. Procesos Estocásticos Discretos Un proceso estocástico discreto (PED) {x[n]} asocia a cada instante discreto de tiempo n una variable aleatoria x̃[n], constituyendo una concatenación en tiempo discreto de variables aleatorias. Desde otro punto de vista, cada realización xk [n] del proceso {x[n]}, constituye una secuencia en la que la amplitud de cada muestra es el valor que ha tomado la variable aleatoria correspondiente a ese instante de tiempo y en esa realización (Figura A.1). Figura A.1: Proceso Aleatorio Discreto. 235 A.2. Procesos Estocásticos Discretos La existencia en la práctica de procesos aleatorios discretos, o al menos de secuencias que se pueden considerar realizaciones de tales procesos, se debe fundamentalmente a dos razones: Muestreo de Procesos Continuos. En general, las fuentes de información digital provienen del muestreo (discretización en el tiempo) de fuentes de información continuas, por lo que si la fuente continua se modela a través de un proceso estocástico continuo {x(t)}, su muestreo proporcionará un proceso discreto {x[n]}. Además, en la práctica, la amplitud de la secuencia resultante también se discretiza (cuantificación) lo que da lugar a una secuencia error discreta llamada ruido de cuantificación, que bajo ciertas circunstancias pueden modelarse como PED. Generación de Ruido en los Procesadores Digitales. Los procesadores digitales operan con precisión finita, introduciendo errores (redondeo en los cálculos, almacenamiento en memoria, etc.) que se pueden modelar como PED. A continuación trataremos la caracterización estadı́stica de los procesos estocásticos discretos. A.2.1. Funciones de Distribución y de Densidad de Probabilidad Si en un PED {x[n]} consideramos un instante de tiempo n, la variable aleatoria x̃[n] puede caracterizarse a través de su función de distribución Px̃[n] (x) Px̃[n] (x) = P rob {x̃[n] ≤ x} (A.1) a través de la cual podemos obtener su función de densidad de probabilidad (fdp) px̃[n] (x) dPx̃[n] (x) px̃[n] (x) = (A.2) dx que es función de dos variables, una continua x y otra discreta n. El significado fı́sico de la fdp es una función cuya integral proporciona probabilidad P rob{x0 ≤ x̃[n] ≤ x1 } = Z x1 x0 px̃[n] (x) dx (A.3) Si consideramos dos instantes de tiempo, n1 y n2 , la relación estadı́stica entre las dos variables aleatorias x̃[n1 ] y x̃[n2 ] viene determinada totalmente a través de la función de distribución de segundo orden Px̃[n1 ] x̃[n2 ] (x1 , x2 ) = P {x̃[n1 ] ≤ x1 , x̃[n2 ] ≤ x2 } (A.4) 236 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS y su función de densidad px̃[n1 ] x̃[n2 ] (x1 , x2 ) px̃[n1 ],x̃[n2 ] (x1 , x2 ) = ∂ 2 Px̃[n1 ] x̃[n2 ] (x1 , x2 ) ∂x1 ∂x2 (A.5) Estas definiciones pueden generalizarse para obtener la función de distribución conjunta de n-ésimo orden ası́ como su función de densidad de probabilidad conjunta correspondiente. En general, para caracterizar de forma completa un proceso deberı́amos conocer la función de distribución conjunta de orden infinito, información que en la práctica no suele estar disponible. Por esta razón, en lugar de estas funciones se utiliza una caracterización a través de los llamados promedios. A.3. Promedios Los promedios estadı́sticos o simplemente estadı́sticos, son parámetros o funciones que permiten una caracterización sencilla aunque incompleta de procesos estocásticos. Los promedios pueden clasificarse en: aquellos que hacen referencia a medidas instantáneas del proceso, esto es, caracterı́sticas del proceso en cada instante de tiempo individual (promedios instantáneos), y aquellos que miden la dependencia que hay en el proceso en dos instantes de tiempo (promedios con memoria). A.3.1. Promedios instantáneos Los promedios instantáneos son tres: Valor medio o Media µx [n] que se define como la esperanza de cada variable aleatoria en cada instante de tiempo Z ∞ µx [n] = E{x̃[n]} = −∞ x px̃[n] (x) dx (A.6) siendo E{·} el operador esperanza matemática. Valor cuadrático medio o Potencia Media Px [n] que se define como la esperanza de la variable aleatoria |x̃[n]|2 en cada instante de tiempo 2 Px [n] = E{|x̃[n]| } = Z ∞ −∞ |x|2 px̃[n] (x) dx (A.7) La Varianza σx2 [n], definida como σx2 [n] = E{|x̃[n] − µx [n]|2 } (A.8) 237 A.3. Promedios que también es igual a σx2 [n] = E{|x̃[n]|2 } − |µx [n]|2 (A.9) La varianza σx2 [n] es una medida de cuanto pueden variar los valores que toma un proceso aleatorio en cada instante de tiempo. De hecho, si la varianza de un proceso es 0 en todo n, entonces el proceso se puede caracterizar exactamente de forma determinista. Observe que los tres parámetros anteriores dependen del instante de tiempo considerado. Además, existen semejanzas entre estos parámetros y otros similares utilizados en la caracterización de señales deterministas como por ejemplo: valor medio u offset, potencia media de una señal y valor eficaz. La relación entre ambos tipos de parámetros se hará más patente cuando se introduzca más tarde el concepto de ergodicidad. A.3.2. Promedios con memoria Existen dos tipos de promedios con memoria: los que hacen referencia a la dependencia que hay en un mismo proceso en dos instantes de tiempo y aquellos que muestran esa dependencia entre dos procesos distintos. Entre los primeros están: La autocorrelación Rxx [n1 , n2 ] Rxx [n1 , n2 ] = E{x̃[n1 ] x̃∗ [n2 ]} = Z ∞ Z ∞ −∞ −∞ x1 x∗2 px̃[n1 ] x̃[n2 ] (x1 , x2 ) dx1 dx2 (A.10) La autocovarianza Cxx [n1 , n2 ] Cxx [n1 , n2 ] = E {(x̃[n1 ] − µx [n1 ]) (x̃[n2 ] − µx [n2 ])∗ } (A.11) Observe que Rxx [n, n] = Px [n], Cxx [n, n] = σx2 [n]. (A.12) y que si la media del proceso es cero, autocorrelación y autocovarianza coinciden. La autocorrelación Rxx [n1 , n2 ] es un promedio que mide el grado de parecido estadı́stico del proceso en dos instantes de tiempo n1 y n2 . La autocovarianza también mide el parecido del proceso en dos instantes de tiempo, pero sin considerar sus medias. En ocasiones la autocorrelación y la autocovarianza se denotan mediante Rx [n1 , n2 ] y Cx [n1 , n2 ] respectivamente. 238 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS Los promedios con memoria que miden la dependencia entre dos procesos estocásticos distintos en dos instantes de tiempo son: La correlación cruzada Rxy [n1 , n2 ] ∗ Rxy [n1 , n2 ] = E{x̃[n1 ] ỹ [n2 ]} = Z ∞ Z ∞ −∞ −∞ x y ∗ px̃[n1 ],ỹ[n2 ] (x, y) dx dy (A.13) La covarianza cruzada Cxy [n1 , n2 ] Cxy [n1 , n2 ] = E {(x̃[n1 ] − µx [n1 ]) (ỹ[n2 ] − µy [n2 ])∗ } (A.14) Cabe destacar que todos los promedios, ya sean parámetros o funciones, carecen de aleatoriedad, esto es, no varı́an según la realización del proceso sino que representan al conjunto de todas las realizaciones. A.4. PED Estacionarios Los promedios proporcionan una caracterización más simple del proceso que la función de densidad de probabilidad conjunta, pero aún ası́, la caracterización se hace a través de funciones de una variable (media, potencia media, varianza) o dos variables (autocorrelación, covarianza). Existe una clase de procesos, los procesos estocásticos estacionarios (en sentido amplio), que admiten una caracterización más sencilla todavı́a, y que se basan en las siguientes propiedades: Los promedios instantáneos son independientes del instante n considerado • E{x̃[n]} = µx = cte. • E{|x̃[n]|2 } = Px = cte. • σx2 [n] = σx2 = cte. Los promedios con memoria dependen sólo de la diferencia de tiempos correspondientes a las variables aleatorias consideradas • Rxx [m] = E {x̃[n + m] x̃∗ [n]} • Cxx [m] = E {(x̃[n + m] − µx ) (x̃[n] − µx )∗ } 239 A.4. PED Estacionarios En el caso de procesos estacionarios, la autocorrelación es una medida del parecido estadı́stico del proceso en un instante de tiempo y una versión de él desplazada m muestras o, de otra forma, el parecido que hay en el proceso entre dos instantes de tiempo distintos. En m = 0, el grado de parecido es máximo ya que ambos procesos coinciden por lo que Rxx [0] constituye siempre un máximo de la autocorrelación. Si m 6= 0, entonces la autocorrelación mide el grado de parecido cuando el proceso se desplaza en el tiempo, o dicho de otro modo, del grado de memoria en función del tiempo que tiene el proceso. La caracterización de los procesos estacionarios es sencilla puesto que los promedios de primer orden son únicamente un parámetro mientras que los promedios con memoria son funciones de una única variable (la diferencia de tiempos). A veces resulta interesante ver la dependencia entre dos procesos estacionarios distintos. Dos procesos estacionarios {x[n]} e {y[n]} son conjuntamente estacionarios (en sentido amplio) si cada uno lo es y su correlación cruzada sólo depende de la diferencia de tiempos Rxy [m] = E {x[n + m] y ∗ [n]} (A.15) En ese caso, la covarianza cruzada es Cxy [m] = E {(x[n + m] − µx ) (y[n] − µy )∗ } = Rxy [m] − µx µ∗y A.4.1. (A.16) Propiedades de los PED estacionarios A continuación se enumeran algunas de las propiedades de los promedios de primer y segundo orden. 1. Hermiticidad. A través de un cambio de variable es fácil demostrar que ∗ [−m] Rxx [m] = Rxx ∗ [−m] Rxy [m] = Ryx ∗ [−m] Cxx [m] = Cxx Si además los procesos {x[n]} e {y[n]} son reales Rxx [m] = Rxx [−m] Rxy [m] = Ryx [−m] Cxx [m] = Cxx [−m] y por tanto las secuencias de autocorrelación y autocovarianza son pares. 240 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS 2. Suma de dos procesos {x[n]} e {y[n]} conjuntamente estacionarios. Si z̃[n] = ax̃[n] + bỹ[n] entonces Rzz [m] = |a|2 Rxx [m] + ab∗ Rxy [m] + a∗ bRyx [m] + |b|2 Ryy [m] (A.17) y en el caso en que los procesos estén incorrelados (Rxy [m] = Ryx [m] = 0): Rzz [m] = |a|2 Rxx [m] + |b|2 Ryy [m] (A.18) 3. Función semidefinida positiva XX i ai Rxx [i − j] aj ≥ 0, ∀ai , aj (A.19) j 4. Máximo de la autocorrelación y la autocovarianza Rxx [0] ≥ |Rxx [m]|, ∀m Cxx [0] ≥ |Cxx [m]|, ∀m A.4.2. (A.20) Estacionariedad en el mundo real Anteriormente se ha introducido el concepto de PED estacionario y se han visto las ventajas analı́ticas que este tipo de procesos tienen. No obstante, cabe preguntarse: en el mundo real, ¿existen PED estacionarios?. Uno de los principales inconvenientes para que la respuesta sea afirmativa, es que los procesos estacionarios son de duración infinita y por tanto, la estacionariedad debe exigirse en todo instante de tiempo, desde n = −∞ hasta n = ∞. Sin embargo, en el mundo real toda señal útil tiene un principio y un fin, por lo que necesariamente las propiedades del proceso varı́an con el tiempo. Pero obviando este tema, ¿Cabe suponer que la estacionariedad se conserve mientras dure la señal? La respuesta es en general negativa ya que, en la práctica, las propiedades estadı́sticas de los procesos de interés varı́an con el tiempo. Pero aun ası́, se asume que los procesos son estacionarios debido a las ventajas analı́ticas que ello comporta. Además, existen procesos como por ejemplo la señal de voz, que aunque no son estacionarios, cuando se analizan en intervalos de tiempo suficientemente pequeños conservan sus propiedades estadı́sticas. Esta estacionariedad local permite el diseño de sistemas adaptativos capaces de variar sus caracterı́sticas ajustándose adecuadamente a los cambios que se producen en la señal. 241 A.5. Procesos Ergódicos A.5. Procesos Ergódicos Para obtener los promedios de un PED estacionario, es necesario conocer sus funciones de densidad de probabilidad de primer y segundo orden, funciones que habitualmente no están disponibles. Además, en la práctica, la única información con la que habitualmente se cuenta es una realización del proceso. No obstante, existen procesos estocásticos donde los promedios pueden obtenerse tanto a partir de las definiciones vistas hasta ahora como a partir de una única realización xk [n] mediante los llamados promedios temporales. Estos procesos reciben el nombre de procesos ergódicos. Por tanto, si un proceso estacionario es además ergódico en media, entonces la media temporal de cualquier realización xk [n] N X 1 xk [n] N →∞ 2N + 1 n=−N < xk [n] >= lı́m (A.21) coincide con la media estadı́stica µx . Si el proceso es ergódico en autocorrelación, entonces la autocorrelación temporal de cualquier realización N X 1 xk [n + m] x∗k [n] N →∞ 2N + 1 n=−N < xk [n + m] xk [n] >= lı́m (A.22) coincide con la autocorrelación estadı́stica Rxx [m]. Por tanto, si el proceso es ergódico, la única información necesaria para obtener la media y la autocorrelación es una realización xk [n] cualquiera. Observe que los promedios temporales (A.21) y (A.22) constituyen las definiciones de media y autocorrelación en el caso de señales deterministas definidas en potencia. En la figura A.2 se muestran las distintas formas de calcular los promedios de un proceso. En el caso del cálculo de los promedios estadı́sticos, hay que fijarse en cada variable aleatoria x̃[n] considerando su valor en las infinitas realizaciones del proceso (. . . , x−1 [n], x0 [n], x1 [n], . . .). En el caso particular del cálculo de la media, para cada n obtendrı́amos la media del proceso en ese instante. Si además el proceso es estacionario, es suficiente con calcular la media en un instante, ya que su valor permanece constante con el tiempo. A la hora de calcular los promedios temporales, hay que fijarse en las realizaciones xk [n] del proceso y calcular la media temporal de cada realización. Si el proceso es estacionario y ergódico, entonces las medias temporales de todas las realizaciones coinciden (por lo que es suficiente con calcularla una vez) y a la vez, coinciden con la media estadı́stica. Una pregunta interesante es: en el mundo real, ¿Existen procesos ergódicos? 242 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS Figura A.2: Promedios estadı́sticos y temporales de un Proceso Estocástico Discreto. La pregunta es difı́cil de responder porque: Para calcular los promedios temporales de una realización necesitamos la realización completa, esto es, desde n = −∞ hasta n = ∞, lo cual es imposible ya que nuestra vida, al igual que la de la fuente de información, es finita. Aunque tuviéramos el promedio temporal, para calcular el promedio estadı́stico y de esta manera comprobar que coinciden, necesitarı́amos las infinitas realizaciones del proceso, lo cual es imposible. Además, en el hipotético caso en que tuviésemos disponibles las infinitas realizaciones del proceso, la ergodicidad del proceso dejarı́a de ser importante, puesto que nada impedirı́a calcular a partir de ellas los promedios estadı́sticos. Aunque sea imposible comprobar la ergodicidad de un proceso en la práctica, 243 A.6. Densidad Espectral de Potencia podrı́amos asumirla si encontraramos razones que justificasen su aceptación. Desafortunadamente resulta difı́cil encontrar fenómenos fı́sicos donde esto sea posible. A pesar de todo esto, la ergodicidad es una propiedad que se suele asumir ya que permite el cálculo de promedios a partir de una única realización. No obstante, aún asumiendo ergodicidad, en la práctica sólo podemos disponer de una realización truncada en el tiempo (duración finita) sobre la que realizar una estimación del promedio en cuestión. Para cada realización, el estimador temporal proporcionará un parámetro o una secuencia, dependiendo del tipo de promedio (instantáneo o con memoria) buscado. Por tanto, el conjunto de parámetros o secuencias, que potencialmente puede proporcionar el estimador al considerar todos las posibles realizaciones del proceso constituyen una variable aleatoria o un proceso estocástico discreto respectivamente. Con el fin de ponderar la fiabilidad de un estimador se introducen los conceptos de sesgo y consistencia (ver problemas 5 y 6). Si la esperanza del estimador coincide con el promedio buscado, se dice que el estimador es insesgado. Si al considerar una realización de duración infinita, la varianza del estimador es cero, se dice que el estimador es consistente. A.6. Densidad Espectral de Potencia la Transformada de Fourier es una representación especialmente útil en procesado de señal. Sin embargo, al igual que con los procesos estacionarios continuos, los procesos estacionarios discretos no admiten una caracterización frecuencial a través de la transformada de Fourier en la forma conocida para las señales deterministas, debido a su naturaleza aleatoria y a que su duración (infinita) no garantiza la convergencia de la integral de Fourier. No obstante, podrı́amos truncar las realizaciones del proceso, considerando sólo las 2N + 1 muestras centrales de cada realización: n = −N, · · · , −1, 0, 1, · · · , N Como las secuencia que resultan del truncamiento son de energı́a finita, tienen Transformada de Fourier (k) X̃N (ejω ) = N X n=−N xk [n] e−jωn , (A.23) 244 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS y la consideración de todas las posibles transformadas de Fourier darı́a lugar a un proceso aleatorio continuo (en ω) N X X̃N (ejω ) = x̃[n] e−jωn . (A.24) n=−N La potencia media de X̃N (ejω ) es n N X o E |X̃N (ejω )|2 = N X E{x̃[n1 ] x̃∗ [n2 ]} e−jω(n1 −n2 ) (A.25) n1 =−N n2 =−N y haciendo el cambio de variable m = n1 − n2 y recordando que el proceso {x[n]} es estacionario, se tiene n jω 2 E |X̃N (e )| o = N X NX −n2 Rxx [m] e−jωm (A.26) n2 =−N m=−N −n2 En la expresión anterior, el segundo sumatorio siempre cuenta con 2N + 1 términos, los cuales dependen del valor del ı́ndice n del primer sumatorio, tal y como se muestra en la Figura A.3. En la siguiente tabla se muestra el número de veces que aparece cada término de la forma Rxx [m] e−jωm en la expresión (A.26). n2 = −N m - −2N 0 .. . n2 = 0 2N m - −2N −N n2 = N 0 .. . N 2N m - −2N 0 2N Figura A.3: Conjunto de términos Rxx [m] e−jω del segundo sumatorio de (A.26) en los casos n2 = −N, 0 y N . 245 A.6. Densidad Espectral de Potencia Términos Rxx y Rxx [2N ]e−jω2N Rxx [−2N + 1]ejω(2N −1) y Rxx [2N − 1]e−jω(2N −1) ... jω Rxx [−1]e y Rxx [1]e−jω Rxx [0] [−2N ]ejω2N No de veces 1 2 ... 2N 2N + 1 A partir de la tabla es fácil convertir el doble sumatorio en uno sólo obteniendo 2N X E{|X̃N (ejω )|2 } = (2N + 1) 1− m=−2N |m| 2N + 1 Rxx [m] e−jωm (A.27) Sin embargo, la función anterior no representa al proceso x̃[n] sino a una versión truncada de él. Para obtener una representación que caracterice en frecuencia al proceso en su totalidad se define la Densidad Espectral de Potencia (DEP) de {x[n]} como E{|X̃N (ejω )|2 } N →∞ 2N + 1 Sxx (ejω ) = lı́m lo cual conduce a ∞ X Sxx (ejω ) = Rxx [m] e−jωm (A.28) (A.29) m=−∞ con lo cual la Densidad Espectral de Potencia y la Función de autocorrelación de un proceso son pares transformados (Teorema de Wiener-Khinchin). Al igual que ocurre con la autocorrelación, la DEP de un proceso se denota a veces simplemente mediante Sx (ejω ). Observe que Sxx (ejω ) es una función, no un proceso, ya que es la transformada de Fourier de la función de autocorrelación del proceso (función determinista). Por tanto, la DEP hereda las propiedades de la T. de Fourier de secuencias, de forma que, Sxx (ejω ) es una función periódica y de periodo 2π y ∗ [−m]), es debido a la simetrı́a de la función de autocorrelación (Rxx [m] = Rxx una función real. Además como la potencia no puede ser negativa, la DEP es una función no negativa (Sxx (ejω ) ≥ 0). Teniendo en mente el T. de Wiener-Khinchin, la autocorrelación del proceso se puede obtener mediante Rxx [m] = 1 2π Z π −π Sxx (ejω ) ejωm dω (A.30) 246 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS y recordando que la potencia media es la autocorrelación del proceso evaluada en m = 0, se obtiene Z 1 π Px = Sxx (ejω ) dω (A.31) 2π −π lo cual justifica el nombre que hemos dado a esta función, ya que es una función que integrada en ω proporciona potencia. Por tanto, la Densidad Espectral de Potencia indica como está distribuida la potencia en función de la frecuencia. Recuerde que existe una expresión similar en el caso de los procesos continuos, pero mientras en estos últimos la integral se extiende desde −∞ hasta ∞, en el caso de procesos discretos se integra desde −π hasta π. Si el proceso es real, la potencia en una determinada banda frecuencial (ω1 , ω2 ), esto es, la potencia de la señal que resultarı́a si se filtrará el proceso a través de un filtro paso-banda ideal con banda de paso (ω1 , ω2 ), es P(ω1 ,ω2 ) = 2 2π Z ω2 Sxx (ejω ) dω = 2 ω1 Z f2 Sxx (ej2πf ) df (A.32) f1 ya que como la DEP de un proceso real es una función par, es suficiente integrar en el intervalo [ω1 , ω2 ] y multiplicar el resultado por 2. Resulta interesante recordar que para señales deterministas también existen funciones similares a la DEP: Densidad Espectral de Energı́a para señales definidas en energı́a y Densidad Espectral de Potencia para señales deterministas definidas en potencia. Por otro lado, se puede definir un espectro cruzado entre dos procesos {x[n]} e {y[n]} conjuntamente estacionarios mediante Sxy (ejω ) = TF{Rxy [m]} (A.33) Syx (ejω ) = TF{Ryx [m]} (A.34) y de la misma forma Estos espectros cruzados carecen de significado fı́sico (a diferencia de la DEP). Sin embargo, pueden utilizarse para comprobar ciertas caracterı́sticas de los procesos que relacionan. Por ejemplo, si los procesos {x[n]} e {y[n]} ortogonales (Rxy [m] = 0), entonces Sxy (ejω ) = Syx (ejω ) = 0. También pueden ser útiles para estimar la respuesta frecuencial de sistemas LTI (problema 4) y a la hora de calcular la llamada Función de Coherencia γxy (ejω ) = q Sxy (ejω ) Sxx (ejω ) Syy (ejω ) (A.35) 247 A.7. Filtrado de Procesos Discretos que permite establecer el grado de linealidad que presentan dos procesos x e y en función de la frecuencia. A.7. Filtrado de Procesos Discretos Desde la perspectiva determinista, la secuencia de entrada y salida en un sistema LTI discreto con respuesta impulsiva h[n], están relacionadas a través de la convolución lineal ∞ X y[n] = x[k] h[n − k] (A.36) k=−∞ Desde el punto de vista aleatorio, cada realización del proceso en la entrada {x[n]} da lugar a una realización del proceso de salida {y[n]} (Figura A.4), relacionadas también a través de la convolución lineal. {x[n]} - {y[n]} h[n] - Figura A.4: Filtrado de un proceso. Resulta interesante relacionar los promedios del proceso de salida con los de la entrada. Desde aquı́ y hasta el final de la sección, denotaremos mediante x[n] e y[n] a los PED {x[n]} e {y[n]} respectivamente. Asumiendo un proceso de entrada estacionario, la media del proceso de salida es: µy = E ∞ X k=−∞ x[n − k] h[k] ∞ X = E{x[n]} h[k] = µx H(ej0 ) (A.37) k=−∞ donde hay que recordar que la respuesta impulsiva es una secuencia determinista. La correlación cruzada entrada-salida Rxy [m] es Rxy [m] = E {x[n + m] y ∗ [n]} ( = E x[n + m] ) X k ∗ ∗ x [n − k] h [k] 248 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS = X = X h∗ [k] E{x[n + m] x∗ [n − k]} k h∗ [k] Rxx [m + k] k = Rxx [m] ∗ h∗ [−m] (A.38) De forma análoga: Ryx [m] = Rxx [m] ∗ h[m] (A.39) En cuanto a la autocorrelación de la salida Ryy [m] Ryy [m] = E {y[n + m] y ∗ [n]} ( ) = E y[n + m] X x∗ [n − k]h∗ [k] k = X = X ∗ h [k] E{y[n + m]x∗ [n − k]} k h∗ [k] Ryx [m + k] k = Ryx [m] ∗ h∗ [−m] = Rxx [m] ∗ h∗ [−m] ∗ h[m] (A.40) Por lo que respecta a los espectros de las correlaciones, a partir de (A.38), (A.39) y (A.40) y considerando h[n] real, se obtiene Sxy (ejω ) = Sxx (ejω ) H ∗ (ejω ) jω jω jω jω jω jω (A.41) Syx (e ) = Sxx (e ) H(e ) (A.42) ∗ jω jω 2 Syy (e ) = Sxx (e ) H(e ) H (e ) = Sxx (ω) |H(e )| (A.43) La ecuación (A.43) es especialmente importante pues permite relacionar las densidades espectrales de los procesos de entrada y salida de un sistema LTI. A.8. Ruido Blanco Discreto El ruido blanco es un proceso estocástico de media nula caracterizado por tener una DEP constante 2 Sww (ejω ) = σw (A.44) e igual a la varianza del proceso. La autocorrelación es pues 2 Rww [m] = σw δ[m] (A.45) 249 A.9. Problemas con lo que en el ruido blanco no existe ninguna dependencia entre dos muestras, por muy cercanas que estén. A diferencia del ruido blanco continuo, su versión discreta si que tiene potencia media finita puesto que Z 0,5 Pw = −0,5 2 Sww (ej2πf ) df = σw (A.46) por lo que es un proceso realizable, a diferencia del ruido blanco continuo. Aunque en las expresiones (A.44) y (A.46) se obtiene el mismo valor, nótese que el significado fı́sico es distinto: densidad espectral de potencia en el primer caso y potencia media en el segundo. Si el ruido blanco además tiene una f.d.p. gaussiana, se dice que es un ruido blanco gaussiano. No obstante, merece la pena recalcar que la gaussianidad no implica que el proceso sea blanco ni viceversa. Si un ruido blanco se filtra a través de un sistema LTI discreto, entonces la DEP del proceso de salida es 2 Syy (ejω ) = σww |H(ejω )|2 (A.47) obteniéndose un proceso de salida cuya DEP tiene la misma forma que |H(ejω )|2 y recibe el nombre de ruido coloreado siendo su potencia media Z 0,5 Py = −0,5 2 Syy (ej2πf ) df = σww Z 0,5 −0,5 2 |H(ej2πf )|2 df = σww ∞ X |h[n]|2 n=−∞ (A.48) El término n recibe el nombre de ganancia del filtro para el ruido blanco, ya que representa la ganancia en potencia que tiene el filtro únicamente cuando la entrada es un ruido blanco. Esta magnitud constituye una caracterı́stica exclusiva del filtro. En ocasiones, varios ruidos blancos independientes se suman dando lugar a otro ruido w[n] = w1 [n] + w2 [n] + · · · + wN [n] (A.49) P |h[n]|2 que también es blanco ya que su autocorrelación es 2 Rww [m] = (σ12 + σ22 + · · · + σN ) δ[m] (A.50) 2 Sww (ω) = σ12 + σ22 + · · · + σN (A.51) y su DEP es A.9. Problemas 1. La función de MATLAB randn permite generar ruido blanco gaussiano de media cero y varianza unidad. 250 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS 1.1. Genere una secuencia de ruido de longitud N = 16, de media cero y varianza 9. Utilizando las funciones mean() y std() calcule la media y la varianza de la secuencia generadas. ¿Qué tipos de promedios ha calculado, estadı́sticos o temporales? ¿Los resultados obtenidos son los esperados? ¿Por qué? ¿Cómo solucionarı́a el problema? 1.2. Suponga que se pretenden calcular promedios, pero de forma estadı́stica. Para ello, utilice MATLAB y sus funciones mean() y std(). Según los resultados obtenidos, ¿cree que el proceso considerado es estacionario? ¿y ergódico? 1.3. Un proceso MA (Moving Average) es un proceso basado en el modelo x[n] = M −1 X bk w[n − k] k=0 donde w[n] es ruido blanco gaussiano de media nula. El proceso MA puede ser visto como el filtrado del ruido blanco. ¿Cuál es la respuesta impulsiva del filtro? ¿Cuál es la media del proceso MA? Si el filtro tiene una respuesta impulsiva h[n] = b0 , n = 0, . . . , M − 1, ¿Cuáles son los coeficientes bk para que la varianza del proceso MA sea igual a la del ruido? 1.4. Genere un ruido blanco de longitud N = 256 de varianza 9, y fı́ltrelo para obtener el proceso MA del apartado anterior con M = 16. Calcule con MATLAB la media y la varianza del proceso. Los valores obtenidos, ¿Coinciden con los resultados teóricos? Comente los resultados. 2. Un proceso Autoregresivo de primer orden AR(1) está caracterizado por la expresión x[n] = w[n] + ax[n − 1] donde w[n] es un ruido blanco de potencia σn2 . 2.1 Todo proceso AR se puede obtener mediante el filtrado IIR del ruido blanco w[n]. ¿Cuál es en este caso la respuesta impulsiva del filtro IIR? 2.2 Calcula la respuesta frecuencial del filtro y la DEP del proceso x[n]. Comente como cambia la DEP en función del signo de a. 2.3 Calcule la autocorrelación Rxx [m]. ¿Cuál es la potencia del proceso? 251 A.9. Problemas 3. La predicción lineal es una técnica de procesado de señal en la que se intenta predecir el valor de una muestra de un proceso x[n] a partir de muestras anteriores (Figura A.5). La base de esta técnica es el predictor, un sistema que proporciona el valor predicho para x[n] mediante combinación lineal de muestras anteriores: x̂ = P X aj x[n − j] j=1 siendo {aj } los coeficientes de predicción y P el orden de predicción. El error de predicción e[n] es e[n] = x[n] − x̂[n] = x[n] − P X aj x[n − j] j=1 y los coeficientes de predicción óptimos deben de elegirse para minimizar la potencia de dicho error. x[n] - - e[n] 6x̂[n] - Predictor Figura A.5: Predicción de x[n]. 3.1 Si x[n] es un proceso de media nula, obtenga las expresiones de los valores de los coeficientes de predicción óptimos. 3.2 Suponga que el predictor utilizado es de orden 1, y que el proceso es autoregresivo AR(1). Calcule el coeficiente de predicción óptimo. ¿Cuál es DEP del error de predicción? 4. Una aplicación de los espectros cruzados Sxy (ejω ) es el cálculo de respuestas frecuenciales de sistemas LTI. 4.1 Suponga que un sistema LTI tiene en la entrada el proceso {x[n]} y en su salida el proceso {y[n]}. Demuestre que la respuesta frecuencial 252 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS del sistema se puede obtener a través de H(ejω ) = Syy (ejω ) Sxy (ejω ) H(ejω ) = Syx (ejω ) Sxx (ejω ) 4.2 En muchas ocasiones la salida del sistema está contaminada por ruido aditivo, tal y como se muestra en la figura A.6, siendo únicamente accesibles las secuencias x[n] e y[n], lo cual puede complicar la determinación de la respuesta frecuencial. Una posible situación donde esto ocurre es cuando el transductor utilizado para captar la salida es de peor calidad que el de entrada, de forma que el ruido que introduce es mucho mayor que el introducido para captar la entrada. Considere las siguientes respuestas frecuenciales H1 (ejω ) = Szz (ejω ) Sxz (ejω ) H2 (ejω ) = Szx (ejω ) Sxx (ejω ) ¿Cuál de las dos funciones proporciona una mejor estimación de la respuesta frecuencial? (Suponga que el ruido está incorrelado con la señal de entrada) 4.3 En otras ocasiones se da la situación contraria, esto es, la señal captada en la entrada está contaminada por ruido (Figura A.7). En este caso, ¿Cuál de las dos medidas eligirı́a? 4.4 ¿Y si, como se muestra en la Figura A.8, se tiene simultáneamente ruido en la adquisición de la entrada w1 [n] y la salida w2 [n]? 5. Sea {v[n]} un proceso estocástico real estacionario de media µ y cuyas variables aleatorias están incorreladas E{v[n] v[k]} = E{v[n]} E{v[k]} = µ2 , ∀n 6= k Suponga además que la varianza de v[n] es σ 2 . w[n] y[n] ? x[n] - Sist. LTI - + - z[n] Figura A.6: Sistema LTI con ruido aditivo a la salida. 253 A.9. Problemas v[n] - z[n] - Sist. LTI ? + w[n] ? x[n] Figura A.7: Sistema LTI con ruido en la adquisición de la entrada. y[n] v[n] - Sist. LTI ? + w1 [n] - + - z[n] 6 w2 [n] ? x[n] Figura A.8: Sistema LTI con ruido aditivo en la adquisición de la entrada y la salida. a) Calcule y dibuje la función de autocorrelación y la Densidad Espectral de Potencia del proceso. b) Suponga ahora que un proceso {x[n]} se obtiene a partir de {v[n]} mediante x[n] = v[n] + 3v[n − 1] Calcule la media, la función de autocorrelación y la Densidad Espectral de Potencia de x[n]. 6. Sea el proceso estocástico definido como x[n] = A cos(ω0 n) + w[n] 2 y w[n] es donde A es una variable aleatoria de media cero y varianza σA 2. ruido blanco de media cero, independiente de A y varianza σw 254 APÉNDICE A. SEÑALES ALEATORIAS DISCRETAS a) Compruebe si x[n] es un proceso estacionario y, en caso de que lo sea, calcule su Densidad Espectral de Potencia. b) Repita el apartado anterior pero suponiendo que ahora x[n] es x[n] = A cos(ω0 n + φ) + w[n] donde φ es una variable aleatoria uniformemente distribuida entre −π y π e independiente de A y w[n]. 7. Sea {x[n]} un proceso estacionario de media desconocida (µx ) del cual disponemos de una realización x[n]. Definimos un estimador de media mediante N X 1 x[n] µ̂x = 2N + 1 n=−N ¿Es un estimador insesgado? ¿Es consistente? ¿Qué condición debe de cumplirse para que {x[n]} sea ergódico en media? ¿La cumple un proceso AR de primer orden, con 0 < ρ < 1? 8. Sea {x[n]} un proceso aleatorio estacionario. Para la obtención de la autocorrelación utilizamos el estimador rxx [m] = N X 1 x∗ [n] x[n + m] 2N + 1 n=−N donde rxx [m] puede considerarse la realización de un proceso aleatorio r̃xx [m]. ¿El estimador es insesgado? ¿Bajo que condiciones es consistente? Bibliografı́a [1] F.J. Harris. On the use of wndows for harmonic analysis with the discrete fourier transform. Proceedings IEEE, 66(1):51–83, january 1978. [2] Simon Haykin. Adaptive Filter Theory. Prentice Hall, 3rd edition, 1996. [3] Emmanuel C. Ifeachor and Barrie W. Jervis. Digital Signal Processing : A Practical Approach. Addison-Wesley, 1993. [4] Steven M. Kay. Modern Spectral Estimation Theory and Application. Prentice Hall, 1988. [5] S. L. Marple. Digital spectral analysis with applications. Prentice Hall, 1987. [6] Alan V. Oppenheim and Ronald W. Schaffer. Discrete-Time Signal Processing. Prentice Hall, 1989. [7] Alan V. Oppenheim, Ronald W. Schaffer, and John R. Buck. DiscreteTime Signal Processing. Signal Processing. Prentice Hall, 2nd edition, 1999. [8] Alan V. Oppenheim and Alan S. Wilsky. Señales y Sistemas. Prentice Hall, 2nd edition, 1997. [9] John G. Proakis and Dimitris G. Manolakis. Tratamiento Digital de Señales. Principios Algoritmos y Aplicaciones. Prentice Hall, 1997. [10] Samir S. Soliman and Mandyam D. Srinath. Continuous and Discrete Signals and Systems. Prentice Hall, 1998. [11] Bernard Widrow. Adaptative signal processing. Prentice Hall, 1985. 255