Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica Hallazgo de patrones óptimos de muestras espaciadas no-uniformemente para el diseño de filtros digitales FIR Por: Enmanuel Murillo Murillo Ciudad Universitaria Rodrigo Facio Diciembre de 2007 Hallazgo de patrones óptimos de muestras espaciadas no-uniformemente para el diseño de filtros digitales FIR Por: Enmanuel Murillo Murillo Sometido a la Escuela de Ingeniería Eléctrica de la Facultad de Ingeniería de la Universidad de Costa Rica como requisito parcial para optar por el grado de: BACHILLER EN INGENIERÍA ELÉCTRICA Aprobado por el Tribunal: _________________________________ Ing. Jorge A. Romero Chacón, PhD. Profesor Guía ________________________________ Ing. Victor Hugo Chacón Prendas, MSc. Profesor lector ii _________________________________ Ing. Mauricio Ávila Duarte. Profesor lector PARA MI MADRE iii ÍNDICE GENERAL ÍNDICE DE FIGURAS....................................................................................v ÍNDICE DE TABLAS.....................................................................................vi NOMENCLATURA.......................................................................................vii RESUMEN.................................................................................................... viii CAPÍTULO 1: Introducción ...........................................................................1 1.1 Objetivos.................................................................................................................3 Objetivo general..............................................................................................3 Objetivos específicos ......................................................................................3 Metodología ............................................................................................................4 1.1.1 1.1.2 1.2 CAPÍTULO 2: Desarrollo teórico ..................................................................5 2.1 Reproducción de núcleos ........................................................................................5 2.1.1 Definiciones básicas ..............................................................................................5 2.1.2 Cálculo del núcleo reproductor..............................................................................7 2.2 Expansiones de muestreo......................................................................................10 CAPÍTULO 3: Diseño de un filtro digital FIR de fase lineal.....................14 3.1 3.2 3.3 Filtros FIR de fase lineal.......................................................................................14 Patrones de muestras espaciadas no-uniformemente............................................16 Diseño de un filtro digital FIR de fase lineal en el dominio de la frecuencia ......19 CAPÍTULO 4: Conclusiones y recomendaciones .......................................37 REFERENCIAS .............................................................................................40 BIBLIOGRAFÍA............................................................................................42 APÉNDICES...................................................................................................44 APÉNDICE I. Relaciones previas (polinomios ortogonales) .....................45 APÉNDICE II. Programa para obtener filtros de Legendre .....................48 iv ÍNDICE DE FIGURAS Figura 3.1 Tipos de filtros FIR con fase lineal .................................................................16 Figura 3.2 Patrones de muestras para los polinomios de Laguerre y Legendre ...............17 Figura 3.3 Filtro paso bajo, diseñado con los polinomios de Laguerre y Legendre, en comparación con tres basados en la técnica de ventanas..................................................23 Figura 3.4 Filtro paso bajo diseñado con el polinomio de Legendre de orden 30, en comparación con tres basados en la técnica de ventanas..................................................25 Figura 3.5 Filtro paso alto diseñado con el polinomio de Legendre de orden 34, en comparación con tres basados en la técnica de ventanas..................................................27 Figura 3.6 Filtro rechaza banda basado en el polinomio de Legendre de orden 40, en comparación con tres basados en la técnica de ventanas..................................................30 Figura 3.7 Filtro pasa banda basado en el polinomio de Legendre de orden 40, en comparación con tres basados en la técnica de ventanas..................................................32 Figura 3.8 Filtro pasa banda de orden 76 basado en el polinomio de Legendre de orden 38, en comparación con tres basados en la técnica de ventanas .......................................36 v ÍNDICE DE TABLAS Tabla 3.1 Distribución de los coeficientes según el valor de M. ......................................15 vi NOMENCLATURA f(ti) Plantilla de diseño del filtro. FIR Finite Impulse Response (Respuesta finita al impulso). h(n) Respuesta al impulso. H(w) Respuesta en frecuencia. K(x,y) Núcleo reproductor (Kernel) de variables x y y. Pn(t) Polinomio ortogonal de orden n y variable t. Si(t) Expansión de muestreo. SVD Singular Value Decomposition (Descomposición de valor singular). ti Raíces del polinomio ortogonal de orden N+1. T Periodo de muestreo. α Parámetro libre de los polinomios de Jacobi. β Parámetro libre de los polinomios de Jacobi. ρ Parámetro libre de los polinomios Ultra-esféricos. ω Vector de frecuencias, en radianes por segundo. vii RESUMEN En este trabajo se presenta una técnica para el diseño de filtros digitales FIR de fase lineal en el dominio de la frecuencia, utilizando muestras espaciadas no uniformemente, las cuales se obtienen de los polinomios ortogonales que presentan una característica de no linealidad entre sus raíces, ya que son éstas y su relación, las que se utilizan para definir las muestras. Los polinomios estudiados en este trabajo son los de Legendre, para estos, sus raíces se presentan muy juntas en los extremos y separadas hacia el centro, mostrando su no linealidad; para poder utilizar estas raíces como muestras, se desarrolló una expansión de muestreo que permite su relación con la función que se desea obtener; fue de esta manera, utilizando dicha expansión de muestreo y una plantilla de filtro de diseño en frecuencia basada en las raíces (muestras) del polinomio, que se lograron obtener las cuatro configuraciones típicas de los filtros con resultados muy satisfactorios. Las bandas de transición de los filtros diseñados son tan buenas como las que se obtienen con la técnica de ventanas y la atenuación en la banda de rechazo es superior a algunas de las ventanas más famosas, según la tendencia con que se haya diseñado el filtro, ya que se encontró que dependiendo del orden de estos polinomios, se logran tendencias de atenuación plana en la banda de rechazo o aumento de la atenuación en dicha banda, conforme aumenta la frecuencia. Dado que el enfoque de este trabajo fue el diseño de filtros digitales FIR de fase lineal y se reconoce la importancia del muestreo no uniforme dentro de otros tópicos, se insta a un estudio más profundo de la propuesta en otros temas dentro del procesamiento digital de señales, pues es necesario ahondar en estos temas tanto como se ha hecho con el muestreo uniforme. viii CAPÍTULO 1: Introducción Los filtros digitales de respuesta finita al impulso (FIR) son muy utilizados en el procesamiento digital de señales, pues poseen las ventajas de ser relativamente sencillos de diseñar, tener gran estabilidad y ser poco susceptibles a errores de redondeo en las operaciones de diseño; además, con solo imponer cierta restricción a los coeficientes de este tipo de filtros, se obtiene una característica de suma importancia cuando se trabaja con señales digitales, la fase lineal. Conjuntamente con la característica de fase lineal, se presenta la distorsión que se produce en la señal, la cual es de las más bajas que se obtienen en el diseño de filtros digitales. Estas peculiaridades de los filtros con fase lineal son criterios de diseño para los filtros digitales de aplicación general, de aquí que se utilicen mayormente los filtros FIR. Los filtros digitales FIR se diseñan generalmente mediante la técnica de ventanas, que utiliza funciones especiales de determinada longitud, las cuales al multiplicarlas por la respuesta al impulso (que es infinita), la acortan, esto en el dominio del tiempo discreto. Sin embargo, la técnica que se presenta en este trabajo se conoce como de muestreo en frecuencia, con ésta se trabaja en el dominio de la frecuencia y aunque no es tan utilizada, ni tan sencilla como la anterior, es de suma importancia en el procesamiento de señales aleatorias, como la voz. Utilizando la técnica mencionada, se quiere diseñar un filtro digital FIR, cuyas muestras no estén separadas por la misma distancia (es decir, que estén separadas en forma 1 2 no uniforme). Para lograrlo se utilizan los polinomios denominados ortogonales, y entre éstos los que posean una distribución no lineal de sus raíces. La idea es utilizar esas raíces como las muestras del filtro, para diseñarlo a partir de ellas, con la peculiaridad de ser muestras no uniformes. Lo anterior ya fue realizado para los polinomios ortogonales de Laguerre, Hermit, Jacobi y Bessel, por lo que el enfoque de este trabajo es encontrar nuevos patrones para el mismo fin (diseñar filtros FIR), que también superen los resultados que se obtienen con otras técnicas, como la de ventanas. 3 1.1 Objetivos 1.1.1 Objetivo general • Hallar patrones de muestras espaciadas no-uniformemente, para el diseño de filtros digitales FIR de fase lineal obtenidos mediante la técnica de muestreo en frecuencia, que superen los resultados que se han logrado mediante otras técnicas. 1.1.2 Objetivos específicos • Reproducir patrones de muestras espaciadas no-uniformemente utilizadas en el diseño de filtros digitales FIR. • Evaluar distintos datos que optimicen la propuesta de diseño del filtro digital FIR (Elaborar patrones). • Comparar las características del filtro digital obtenido mediante los patrones de muestras espaciadas no-uniformemente, con filtros similares diseñados por otras técnicas. 4 1.2 Metodología La investigación bibliográfica es el punto de partida de este trabajo, ya que con ella se obtiene la información sobre el estado de la cuestión, así como la información necesaria para respaldar los resultados. Posteriormente, se revisará el procedimiento que llevó a la solución del problema en cuestión utilizando los polinomios ortogonales de Laguerre, Hermit, Jacobi y Bessel, lo anterior a fin de obtener los mismos resultados y con esto comprobar, tanto el dominio del tema, como el algoritmo computacional que debe desarrollarse; los resultados de éste deben corresponder con los resultados obtenidos previamente con los polinomios mencionados. Luego, se deberá adaptar el algoritmo desarrollado para poder obtener nuevos patrones de muestras, con las cuales se pueda diseñar el filtro digital (FIR). En este punto se debe elegir el tipo de polinomios con que se va a trabajar, los cuales, idealmente, deberán aportar alguna novedad al estado de la cuestión. Finalmente, los resultados que se obtengan se compararán con resultados similares utilizando otras técnicas, siendo la de ventanas la elegida para este fin por su relativa facilidad de diseño; de esta forma se determinará si estos patrones de muestras no uniformes realmente optimizan la respuesta de los filtros que se diseñan en condiciones equitativas. CAPÍTULO 2: Desarrollo teórico 2.1 Reproducción de núcleos 2.1.1 Definiciones básicas [8, 9, 13] Definición 2.1-1 Sea V un espacio lineal. Una norma en V es un dominio γ que asigna un número real γ(φ) a cada φ ∈ V y satisface los axiomas siguientes: 1. γ (αφ ) = α γ (φ ) 2. γ (φ + ψ ) ≤ γ (φ ) + γ (ψ ) 3. γ (φ ) = 0 ⇔ φ es el elemento cero de V donde φ ,ψ ∈ V y α es un número complejo. Definición 2.1-2 Sea I un intervalo abierto en el eje real, tal que a < x < b , donde se puede dar que a = − ∞ y b = ∞ . Una función f(x) es cuadráticamente integrable en I si es localmente integrable en I, de tal forma que: α 0 ( f ) = ∫ f ( x) dx a b 2 1/ 2 <∞ (2.1-1) Con esto se define un espacio lineal completo L2(I), en el que α0 es una norma, más aun α0 es una multinorma (es un único elemento). Definición 2.1-3 El producto escalar es una operación que asigna un número complejo (f, g) a cada par de elementos f, g en L2(I), de la forma: b ( f , g ) = ∫ f ( x) g ( x)dx a 5 (2.1-2) 6 donde g (x) es el complejo conjugado de g(x). Además el producto escalar es continuo con respecto a sus argumentos, o sea, si f m → f conforme m → ∞ , entonces: ( f m , g) → ( f , g ) y (g, f m ) → (g, f ) De lo anterior se deriva que un conjunto de funciones {ψn} es ortonormal si: 0 n ≠ m (ψ n ,ψ m ) = 1 n = m La completitud de un conjunto de funciones ortonormales {ψn}, significa que existe una serie, en términos de {ψn} que define cada f ∈ L2(I); como se expresa en la siguiente relación: ∞ f = ∑ ( f ,ψ n )ψ n (2.1-3) n=0 Y se conoce como expansión en series ortonormales de f con respecto a {ψn}, la cual converge en L2(I), o sea: N n=0 α 0 f − ∑ ( f ,ψ n )ψ n → 0 (2.1-4) conforme N → ∞ . Definición 2.1-4 Un espacio de Hilbert (complejo o real) es el que se obtiene cuando el producto escalar sobre un espacio C (complejo) o R (real) es completo con respecto a la norma. 7 Definición 2.1-5 Un espacio de Hilbert H es completo cuando cada secuencia de Cauchy converge a un elemento en H [10]. Definición 2.1-6 La función K(x,y) de variables x, y en Ε, se conoce como núcleo reproductor Λ, donde Λ es una clase de funciones definidas en Ε, si satisface las propiedades (a) y (b) siguientes. (a) Para cada y, K(x,y) como función de x pertenece a Λ. (b) Propiedad reproductora [10]: para cada y ∈ Ε y cada f ∈ Λ f ( y ) = ( f ( x), K ( x, y ) ) = ∫ f ( x) K ( x, y )dx (2.1-5) E 2.1.2 Cálculo del núcleo reproductor De acuerdo a 2.1-3 cada f ∈ L2(I), se puede expresar como [9]: ∞ ∞ n=0 n =0 f = ∑ ( f ,ψ n )ψ n = ∑ F (n)ψ n (2.1-6) donde F (n) = ( f ( x),ψ n ( x) ) = ∫ f ( x)ψ n ( x)dx I (2.1-7) F(n) es una función discreta, e I es un intervalo real donde hay ortonormalidad. Ahora, si se descompone f en una suma finita de funciones, se obtendrá una expansión dentro del intervalo discreto {0, N} y para valores fuera de este intervalo 8 (n > N), F(n) = 0. La justificación de esta idea y la ampliación de la misma se encuentran en [13]. Por tanto: N f = ∑ F (n)ψ n ( x) (2.1-8) n=0 El núcleo reproductor, considerado aquí, según 2.1-7 sería: K (n, y ) = ∫ K ( x, y )ψ n ( x)dx =ψ n ( y ) I (2.1-9) de acuerdo a la propiedad reproductora de K, con lo que: N N n =0 n=0 K ( x, y ) = ∑ K (n, y )ψ n ( x) = ∑ψ n ( y )ψ n ( x) (2.1-10) El conjunto ortonormal de funciones, se obtiene de polinomios ortogonales [4], los cuales se normalizan [9] para formar el conjunto de funciones {ψn}, como sigue: w( x) ψ n ( x) = p n ( x) hn 1/ 2 (2.1-11) Con pn(x) el polinomio de orden n, w(x) una función de peso que define ortogonalidad y hn un factor que define normalidad, ambas en el intervalo I [7, 12]. Lo anterior, junto con la identidad de Cristoffel-Darboux [14, 4] n (t − x)∑ p k (t ) p k ( x) = k =0 an [ pn+1 (t ) p n ( x) − p n (t ) pn+1 ( x)] a n+1 (2.1-12) 9 convierten la ecuación 2.1-10 en: a p ( x) p N ( y ) − p N +1 ( y ) p N ( x) K ( x, y ) = [ w( x) w( y )]1 / 2 N N +1 hN ( x − y) a N +1 (2.1-13) donde a N es el coeficiente más elevado del polinomio de orden N. Los núcleos reproductores para los polinomios de Laguerre, Jacobi, Hermit y Bessel ya fueron desarrollados para este propósito en [13]. Ahora se ampliará la propuesta utilizando los polinomios Ultra-esféricos, específicamente, los polinomios de Legendre. Para calcular el núcleo reproductor de estos, primero se debe conocer su función de peso, w(x) y factor de normalización, hn, los cuales son [9]: w( x) = N + 12 hn Con la información anterior y la ecuación 2.1-13, se puede proceder a calcular el núcleo reproductor de dichos polinomios. a C ( x)C N ( y ) − C N +1 ( y )C N ( x) K ( x, y ) = ( N + 12 ) N N +1 ( x − y) a N +1 (2.1-14) donde C N es el polinomio de Legendre de orden N (α = β = 0 en los polinomios de Jacobi o ρ = 1/2 en los polinomios Ultra-esféricos), definido en el intervalo I = [-1,1]. 10 2.2 Expansiones de muestreo La expansión de muestreo más conocida quizá sea el Teorema del muestreo [6], sin embargo éste es muy limitado, ya que solo puede ser utilizado cuando las muestras tienen una separación uniforme entre ellas (nT). Esto ha provocado un interés por el desarrollo de otras expansiones de muestreo que sirvan para muestras separadas no-uniformemente. Con este fin en [13] se desarrolló una expansión de muestreo basada en los núcleos reproductores, la cual es la base para extraer otra expansión de muestreo, ahora utilizando los polinomios de Legendre. Según el Teorema de muestreo generalizado de Kramer [11] una señal f(t) puede ser reconstruida por medio de sus muestras de la siguiente manera: f (t ) = lim N →∞ ∑ f (t n ) S n (t ) (2.2-1) n ≤N donde Sn(t) es una nueva función de muestreo dada por: S n (t ) = ∫ K ( x, t ) K ( x, t ) dx ∫ K ( x, t ) dx n I 2 I (2.2-2) n Para encontrar esta función se parte de la expresión general para el núcleo reproductor (ecuación 2.1-13); y por la propiedad reproductora se obtiene: ∫ K ( x, t )K ( x, t 1 2 ) = K (t1 , t 2 ) = I a p (t ) p (t ) − p N +1 (t 2 ) p N (t1 ) [ w(t1 ) w(t 2 )]1 / 2 N N +1 1 N 2 hN (t1 − t 2 ) a N +1 (2.2-3) 11 La ecuación anterior debe ser cero, para cumplir con la ortogonalidad de K(x,t1) y K(x,t2), lo anterior solo es posible cuando: p N +1 (t1 ) p N (t 2 ) − p N +1 (t 2 ) p N (t1 ) = 0 Para cumplirla en [13], se eligieron los ti como las raíces del polinomio de orden N+1, pN+1(x). Por tanto, el numerador se simplifica al aplicar directamente: ∫ K ( x, t ) K ( x, t ) = [ w(t ) w(t )] 1/ 2 i i I a N p N +1 (t ) p N (t i ) a N +1 hN (t − t i ) (2.2-4) Entonces para los polinomios de Legendre se obtiene que el numerador de Sn(t) es: a C (t )C N (t i ) K (t , t i ) = ( N + 12 ) N N +1 (t − t i ) a N +1 (2.2-5) Para hallar el denominador, si se tiene presente la elección de los ti como las raíces del polinomio de orden N+1, se logra una simplificación, por lo que: ∫ K ( x, t ) i I 2 dx = lim ∫ K ( x, t i ) K ( x, t )dx t →t i I 1/ 2 = lim [w(t ) w(t i )] t →t i a N p N +1 (t ) p n (t i ) a N +1 hN (t − t i ) (2.2-6) 12 Por tanto el denominador de Sn(t) será: 1 ∫ −1 a C (t )C N (t i ) 2 K ( x, t i ) dx = lim ( N + 12 ) N N +1 t →t i (t − t i ) a N +1 C (t )C N (t i ) a = ( N + 12 ) N lim N +1 (t − t i ) a N +1 t →ti a d = ( N + 12 ) N C N (t i ) C N +1 (t ) dt t = ti a N +1 Ahora, de la ecuación diferencial encontrada en [14]: C ' n +1 ( x) − C ' n −1 ( x) = (2n + 1) C n ( x) se obtiene que la derivada del polinomio de Legendre de orden N+1 es: C ' n +1 ( x) = (2n + 1) C n ( x) + C ' n−1 ( x) Y por extensión de la misma ecuación, para el polinomio de Legendre de orden N-1, C ' n−1 ( x) , se obtiene la expresión que definirá por completo el denominador, la cual es: N d C N +1 (t ) = ∑ [2 ( N − j ) + 1]C N − j (t i ) , j = 0, 2, 4, ... dt j =0 { } Por tanto, el denominador de la expansión de muestreo, Sn(t), queda descrito de la siguiente manera: 13 1 ∫ −1 N a 2 K ( x, ti ) dx = ( N + 12 ) N C N (ti )∑ [2 ( N − j ) + 1]C N − j (ti ) j =0 aN +1 { } (2.2-7) para j par. Luego, la expresión para la función de muestreo se obtiene al dividir 2.2-5 por 2.2-7. Si (t ) = 1 ⋅ (t − ti ) C N +1 (t ) N ∑ {[2 ( N − j) + 1]C N− j } (2.2-8) (ti ) j =0 Finalmente la señal puede ser reconstruida por medio de: N +1 f (t ) = ∑ f (t )S (t ) i i (2.2-9) i =1 donde los N+1 ti´s, son las raíces del polinomio de Legendre de orden N+1, C N +1 ( x) y Si(t) la expansión de muestreo para estos polinomios (ecuación 2.2-8). 14 CAPÍTULO 3: Diseño de un filtro digital FIR de fase lineal 3.1 Filtros FIR de fase lineal Los filtros digitales FIR pueden forzarse para obtener la característica de fase lineal mediante cierta relación entre sus coeficientes, para esto, es necesario conocer primero la respuesta en frecuencia de dichos filtros, la cual es: M H (ω ) = ∑ h(n) e− jωT (3.1-1) n=0 donde h(n) es la respuesta al impulso o coeficientes del filtro, ω es la frecuencia en radianes por segundo y T el periodo de muestreo. La relación entre los coeficientes del filtro, necesaria para lograr la fase lineal, se define entonces, en forma general, como: h ( n) = ± h* ( M − n ) (3.1-2) donde h * denota el complejo conjugado, sin embargo, restringiéndose solo a coeficientes reales se obtiene: h ( n) = ± h ( M − n ) (3.1-3) La relación anterior da como resultado cuatro tipos diferentes de filtros, esto porque M puede tomar valores pares o impares. 15 Tabla 3.1 Distribución de los coeficientes según el valor de M. M par M impar Tipo I: Tipo II: h ( n) = h( M − n ) h ( n) = h( M − n ) Tipo III: Tipo IV: h ( n) = − h( M − n ) h ( n) = − h( M − n ) En la tabla 3.1 se muestra el tipo de filtro y el valor de los coeficientes del mismo, según sea M, par o impar; a su vez, el tipo de filtro tiene que ver con la disposición y relación (+/-) entre los coeficientes del filtro. Esta disposición de los coeficientes se relaciona en forma directa con M. Si M es par, se logra colocar un coeficiente del filtro en la posición M y otro en la posición M/2, siendo los coeficientes iguales (Simétricos, Tipo I) u opuestos (Anti-simétricos, Tipo III), con respecto a esta última posición. Por otro lado, si M es impar, solo se logrará colocar un coeficiente del filtro en la posición M, pero conservando la misma posibilidad de los coeficientes de ser iguales (Simétricos, Tipo II) u opuestos (Anti-simetricos, Tipo IV), con respecto al punto medio, M/2. Dichas relaciones se ejemplifican en forma más simple en la figura 3.1. 16 Figura 3.1 Tipos de filtros FIR con fase lineal 3.2 Patrones de muestras espaciadas no-uniformemente Antes de proceder al diseño del filtro digital, se debe conocer si el patrón de muestras a utilizar cumple con la condición de que cada una de éstas esté separada de las otras de una manera no lineal. Para comprobar lo anterior, se obtuvieron los ceros de los polinomios a utilizar, específicamente, los ceros de los polinomios de Laguerre y Legendre. El orden utilizado para dichos polinomios fue 21, aunque se puede utilizar cualquier orden con el que se obtenga un número considerable de muestras, ya que con éstas solo se está 17 Figura 3.2 Patrones de muestras para los polinomios de Laguerre y Legendre 18 tratando de comprobar que los polinomios, en general, cumplen con la característica de no-uniformidad entre sus ceros. Una vez obtenidos los ceros de los polinomios, se normalizan y se comparan con un patrón o distribución uniforme (lineal), también normalizado. Estos patrones de ceros (o muestras) se ejemplifican en forma de gráfico en la figura 3.2, donde se logra apreciar de mejor forma, que en efecto, tanto los polinomios de Laguerre como los de Legendre guardan una relación no-lineal entre sus ceros, por lo que se puede continuar con estos polinomios para el desarrollo del trabajo. Cabe mencionar que el patrón que se obtiene con los polinomios de Legendre no cambia para un mismo orden de polinomio, pues el parámetro libre que poseen los polinomios Ultra-esféricos se fijó en el valor de ½, a fin de dar paso a los polinomios en cuestión (Legendre). Por otro lado, el patrón de ceros de los polinomios de Laguerre, puede cambiar para un mismo orden de polinomio, con solo cambiar el parámetro α (en los resultados de la figura 3.2 se fijó en 9), esto brinda mayor flexibilidad a la hora de trabajar con los polinomios de Laguerre; sin embargo se eligió de esta manera, pues los polinomios Ultra-esféricos presentan el inconveniente de poseer raíces complejas, las cuales debido a su parte imaginaria, no permiten su relación con un conjunto de muestras ubicadas en un intervalo de tiempo real. La única manera de no obtener raíces complejas fue fijando el parámetro libre, caso en el que se convierten en polinomios de Legendre. El hecho de no poder variar dicho parámetro, no los coloca en desventaja, solo limita sus características, las que 19 se puedan obtener con determinado orden de polinomio. Por lo que el cambio de orden es necesario si se desean cambiar las características. 3.3 Diseño de un filtro digital FIR de fase lineal en el dominio de la frecuencia Considérese un filtro FIR de fase lineal Tipo I, esto es con M par y con coeficientes simétricos con respecto al punto medio (M/2). Con lo anterior y la ecuación 3.1-1 se puede obtener la expresión matemática para dicho tipo de filtro, esto es: M 2 −1 H (ω ) = ∑ h(m) e − jω mT + h( M2 ) e − jω M2 T m =0 M + ∑ h ( m) e m = M2 − jω mT (3.3-1) +1 Dada la simetría de los coeficientes se puede reescribir la ecuación anterior de una manera más compacta. Si se toma la exponencial de M/2 como factor común se obtiene: −1 2 − jωT ( m − M2 ) − jωT ( M2 − m ) M +e h ( 2 ) + ∑ h ( m ) e m=0 M H (ω ) = e − jω M2 T [ ] Finalmente, al reescribir el término entre paréntesis cuadrados como un coseno, se obtiene la expresión final para un filtro Tipo I: −1 2 M M h( 2 ) + 2 ∑ h(m) cos[ωT ( 2 − m)] m=0 M H (ω ) = e − jω M2 T (3.3-2) 20 La ecuación para un filtro Tipo II (con M impar) es muy similar a la anterior, solamente que este tipo de filtro no cuenta con un coeficiente en el punto medio (pues la posición no es entera): 2 M 2 ∑ h(m) cos[ωT ( 2 − m)] m=0 M −1 H (ω ) = e − jω M2 T (3.3-3) En ambos casos (Tipo I y II), la expresión entre llaves es función de la frecuencia ω y la respuesta al impulso h(n), parámetro que se desea conocer. Dado que la frecuencia es una variable real y que la respuesta al impulso debe ser real, dicha función tiene que ser real, es por esto que la podemos aproximar por medio de la expresión 2.2-9, o sea, utilizando la expansión de muestreo obtenida de los polinomios de Legendre. Entonces, para un filtro Tipo I se tiene: M 2 N +1 ∑ f (t n −1 ) S n (ω ) = h ( ) + 2 ∑ h (m) cos [ωT ( M2 − m)] n =1 M 2 (3.3-4) m =0 donde f(tn) es la plantilla de diseño en frecuencia del filtro deseado, que depende de las raíces ti del polinomio de Legendre y Sn(ω) la expansión de muestreo obtenida de estos, la cual se evalúa en un vector de frecuencias ω y depende de cada ti, por tanto el lado izquierdo queda definido como un vector de N+1 valores con solo establecer el vector de frecuencias [13]. 21 Por su parte, el lado derecho cuenta con que M 2 M 2 + 1 incógnitas, por lo que se obtiene = N . Con esto se logra un sistema de ecuaciones de la forma Bh=d, de donde se deduce que la longitud del vector de frecuencias debe ser como mínimo N+1 ( M 2 + 1 ) para formar un sistema cuadrado, o mayor para formar un sistema sobredeterminado. En este caso se necesita un sistema sobredeterminado para mejorar la resolución de la respuesta del filtro. Este sistema sobredeterminado de ecuaciones lineales se resuelve por el método de descomposición de valor singular (SVD por sus siglas en inglés). Dicha solución se obtiene en términos del vector singular derecho v y los valores singulares σi, que corresponden a la descomposición de valor singular de la matriz B, de la siguiente manera [13]: R h= ∑ 1 i =1 σ i vi viT B T d (3.3-5) donde h es el vector de coeficientes del filtro (respuesta al impulso), R es el número de columnas linealmente independientes de B (rango de B), d es el vector de los N+1 valores obtenidos del lado izquierdo de la expresión 3.3-4 y B la matriz de cosenos que se origina en la sumatoria del lado derecho de la misma expresión, evaluada en los distintos valores del vector de frecuencias ω. 22 Mediante esta técnica y utilizando los polinomios de Laguerre, ya se habían obtenido resultados satisfactorios para el diseño de filtros digitales. Es precisamente lo anterior lo que se muestra en la figura 3.3, donde se expone el diseño de un filtro digital FIR de fase lineal paso bajo, con frecuencia de corte de 0.1 (normalizada de 0 a 0.5) y que cuenta con un numero impar de coeficientes (M par). El orden del polinomio (N+1) de Laguerre utilizado fue 20, con el parámetro libre α=9.89. Este diseño es independiente del anterior, aunque igualmente satisfactorio, ya que al compararlo con tres diseños del mismo orden e igual número de coeficientes, obtenidos mediante la técnica de ventanas (Hamming, Von Hann y Blackman), se aprecia que la banda de transición es más estrecha y por tanto la respuesta es más rápida con estos polinomios y aunque no supera la atenuación que se logra con las ventanas, sí se logra superar la atenuación mínima en la banda de rechazo de 50 dB, lo cual ya se había comprobado en [13]. En dicha figura, se adiciona el diseño del mismo tipo de filtro, pero utilizando el polinomio de Legendre de orden 20, el cual no es tan rápido como el de Laguerre, pero sí presenta una similitud en la banda de transición con las ventanas de Von Hann y Hamming, logrando mejorar la que se obtiene con la ventana Blackman. La atenuación en la banda de rechazo se logra superar, pese a que en el primer lóbulo solo se logran aproximadamente 45 dB; esto sin embargo, no significa que el filtro sea un mal diseño, pues como se puede apreciar el filtro de Von Hann también presenta dicha ganancia en su primer lóbulo. 23 Figura 3.3 Filtro paso bajo, diseñado con los polinomios de Laguerre y Legendre, en comparación con tres basados en la técnica de ventanas 24 Por otro lado, dicho orden de polinomio (20) no es la mejor representación de la respuesta de un filtro que se pueda obtener con el patrón de muestras de un polinomio de Legendre, solamente se obtuvo con el propósito de comprobar la eficacia del algoritmo desarrollado, al compararlo con el filtro paso bajo diseñado en [13], de esta manera, posteriormente se puede proceder a determinar el o los órdenes que optimicen la respuesta de un filtro de Legendre, además se logra apreciar una tendencia similar a la del diseño de Hamming, siendo una característica de relevancia que se debe tener presente. En la figura 3.4 se tiene un filtro paso bajo con frecuencia de corte de 0.1 y con un numero impar de coeficientes (los cuales son simétricos respecto al punto medio M/2), diseñado con la técnica expuesta, utilizando el polinomio de Legendre de orden, N+1 = 30. Este diseño es comparado, nuevamente, con tres filtros del mismo tipo (mismo orden e igual número de coeficientes) obtenidos mediante el método de ventanas, en esta figura se puede apreciar que este filtro conserva la característica del diseño anterior, de tener la banda de transición muy similar a las de los filtros de VonHann y Hamming, en este caso se consigue una mejoría, pero el valor es muy pequeño; de nuevo, se obtiene una banda de transición mucho más corta con el filtro de Legendre que con el filtro Blackman, esto se logra apreciar claramente, pues el primer lóbulo del filtro de Legendre está dentro de la banda de transición del filtro de Blackman. 25 Figura 3.4 Filtro paso bajo diseñado con el polinomio de Legendre de orden 30, en comparación con tres basados en la técnica de ventanas 26 El filtro de la figura 3.4 esquematiza una de las mejores representaciones de un diseño paso bajo que se puede alcanzar con los polinomios de Legendre, no solo por su velocidad en la banda de transición, también por la atenuación que se logra en la banda de rechazo, la cual continúa aumentando conforme aumenta la frecuencia, semejando mucho la respuesta del filtro de Von Hann, inclusive éstos dos tipos de filtros tienen su primer lóbulo en el mismo valor (cercano a los 45 dB), y en el último lóbulo, se da una diferencia de aproximadamente 10 dB a favor del filtro de Von Hann. Es importante resaltar que el diseño anterior, corresponde a una de las mejores representaciones de un filtro paso bajo que posea una similitud con los filtros de Von Hann, ya que se ha observado que con estos polinomios también se pueden obtener características similares a las de un diseño de Hamming; en cuyo caso el orden del polinomio de Legendre que optimiza la respuesta del filtro podría ser otro. Para reforzar lo planteado anteriormente, en la figura 3.5 se generó un filtro paso alto con características similares a las de un filtro de Hamming, o sea, con una atenuación casi constante en la banda de rechazo, cumpliendo, por supuesto, con la atenuación mínima de 50 dB en dicha banda. La frecuencia de corte para este filtro paso alto es 0.4 (normalizada de 0 a 0.5), además M es par. Una de las mejores representaciones para este tipo de filtro, con la que se logra una optimización de la respuesta del mismo, es la expuesta en la figura 3.5, que cuenta con un orden de polinomio (N+1) de Legendre de 34. 27 Figura 3.5 Filtro paso alto diseñado con el polinomio de Legendre de orden 34, en comparación con tres basados en la técnica de ventanas 28 Al comparar este diseño paso alto con sus similares, diseñados mediante la técnica de ventanas, con el mismo orden e igual número de coeficientes, se aprecia un comportamiento similar al de los ejemplos que ya fueron planteados, esto es, que el ancho de su banda de transición es mucho menor que el ancho de dicha banda para un diseño por medio de la ventana de Blackman, pues un lóbulo entero del filtro de Legendre, junto con su banda de transición, caben por completo dentro de la banda del filtro de Blackman; es evidente además, la similitud que se obtiene con las restantes dos ventanas (Von Hann y Hamming), aunque para este caso se aprecia una pequeña variación en el ancho de la banda, siendo un poco más estrechas las bandas de transición obtenidas con los diseños de Von Hann y Hamming. Específicamente para este orden y tipo de filtro, para el cual se deseaba una respuesta similar a la de un filtro de Hamming, se logra obtener un comportamiento más plano en la banda de rechazo, esto es, que la atenuación en dicha banda es prácticamente la misma (excepto para el primer lóbulo), logrando superar con este factor, el diseño de Hamming que presenta una forma más escalonada en los primeros lóbulos. Al extender el estudio a las diferentes configuraciones típicas de filtros existentes, cabe recalcar que la técnica desarrollada tiene la capacidad de generarlas, con tan solo cambiar la plantilla de diseño en frecuencia, lo cual es evidente en la ecuación 3.3-4, considerando que la expansión de muestreo no cambia, pues se cuenta con una para los polinomios en cuestión (Legendre); se menciona este hecho como 29 parte importante del trabajo, debido a que la especialización de un sistema, lo hace ineficiente ante cambios futuros, por otro lado, un diseño flexible y multi-adaptable es menos susceptible a estos cambios. Específicamente, el algoritmo diseñado tiene la capacidad de realizar las diferentes configuraciones con solo cambiar el “tipo” de filtro y la o las frecuencias de corte, pues las plantillas se generan a partir de esta información. Al definir una plantilla rechaza banda con frecuencias de corte en 0.1 y 0.4 (normalizadas de 0 a 0.5), se obtuvo el filtro FIR de fase lineal rechaza banda de Legendre de la figura 3.6, el cual cuenta con un numero impar de coeficientes, esto es M par. Dicha representación es para un polinomio de Legendre de orden, N+1 = 40 y corresponde a uno de los mejores diseños para este tipo de filtro. Al compararlo con los diseños basados en la técnica de ventanas (de Hamming, Von Hann y Blackman), se da por sentado la característica que se ha venido mencionando con respecto a su banda de transición; y es que este ejemplo no es la excepción, pues el ancho de banda de los filtros diseñados mediante Legendre, Von Hann y Hamming, es prácticamente del mismo valor (lo cual implica que sus bandas de transición también tendrán un valor similar), por lo que en cuanto al ancho de banda respecta, el método expuesto es igualmente elegible que estos ante determinada situación, con la característica especial de haber sido diseñado a partir de un patrón de 30 Figura 3.6 Filtro rechaza banda basado en el polinomio de Legendre de orden 40, en comparación con tres basados en la técnica de ventanas 31 muestras espaciadas no-uniformemente. También se obtiene un ancho de banda superior al que se obtiene con la ventana Blackman, lo cual ya se conocía de los ejemplos anteriores, por lo que se logra reforzar este hecho. En cuanto a la atenuación en la banda de rechazo, se logra un resultado muy satisfactorio y a la vez bastante similar al que se obtiene con la ventana de Von Hann, superando la atenuación que se logra con el diseño de Hamming, para este tipo de filtros también se pueden obtener resultados de atenuación constante en la banda de rechazo y de igual forma que se supere el mínimo de atenuación establecido para esa banda. Con los ejemplos que se han presentado hasta ahora, se aprecia que el diseño de filtros digitales FIR mediante los polinomios de Legendre, resulta una técnica con resultados muy variados y placenteros, importante de tener presente. Sin embargo, es de suma importancia conocer que no todos los patrones de muestras obtenidos a partir de estos polinomios, optimizan los resultados que se obtienen mediante la técnica de ventanas, de hecho, en el diseño de filtros pasa banda los resultados más satisfactorios se obtuvieron para N+1 = 40, tanto para M par como impar. Como se aprecia en la figura 3.7 (que corresponde al diseño con M impar), la respuesta para un filtro pasa banda no supera los resultados que se obtienen con los filtros de Hamming, Von Hann o Blackman; el ancho de banda es, inclusive, mayor al del filtro de Blackman y por tanto, mucho mayor al de los otros dos diseños, siendo 32 Figura 3.7 Filtro pasa banda basado en el polinomio de Legendre de orden 40, en comparación con tres basados en la técnica de ventanas 33 las frecuencias de corte, de 0.4 y 0.6 (normalizadas de 0 a 1), las mismas para los cuatro diseños. La atenuación mínima de 50 dB en la banda de rechazo, se logra en el tercer lóbulo aproximadamente, considerando esto, se podría decir que las bandas de transición equivalen a la mitad del valor de la frecuencia de corte inferior, por lo que la respuesta es sumamente lenta; posiblemente lo único rescatable de este diseño sea el hecho de que en la banda de rechazo se continúa aumentando la atenuación conforme se aleja la frecuencia de los puntos de corte. Cambiando los puntos de corte se obtienen resultados similares; y en los que se logra cumplir con la atenuación mínima, crece mucho el ancho de banda; por otro lado, los que cumplen con el ancho de banda presentan ganancias bastante bajas. Con lo anterior se hace evidente que el diseño de un filtro digital pasa banda a partir del patrón de ceros de los polinomios de Legendre, no es posible con resultados satisfactorios, al menos no de una forma directa. Por tanto, se considera ahora una técnica de diseño muy conocida, que se utiliza cuando el filtro deseado presenta simetría, con respecto a algún punto en su respuesta; estos son los filtros rechaza banda y pasa banda. Con este método se diseña solo parte del filtro, la otra parte se obtiene por simetría; tiene la ventaja de que las características se conservan, pues una parte es la imagen reflejada del segmento diseñado. 34 Dado que los filtros pasa banda son los que presentan problemas de diseño, solo se utilizará el método mencionado para la optimización de éstos. De esta manera, el segmento del filtro pasa banda a diseñar, es un filtro paso alto con frecuencia de corte igual a la frecuencia de corte inferior del filtro pasa banda; este filtro paso alto debe cumplir con la atenuación mínima en la banda de rechazo y tener una banda de transición estrecha, de modo que al hacer la reflexión para obtener el filtro completo, éste ultimo también cumpla con los requerimientos; como se ha visto en los ejemplos anteriores, los diseños paso bajo y paso alto, cumplen a cabalidad con los requerimientos mínimos de diseño e inclusive se logran superar ciertas características de diseños similares obtenidos mediante la técnica de ventanas. Desde el punto de vista de las muestras, se tendría un orden de polinomio que definiría el patrón de muestras para el filtro paso alto y el mismo patrón de muestras, pero invertido, es decir la imagen de espejo (o reflexión) del patrón, para definir el filtro paso bajo (que tiene su frecuencia de corte igual a la frecuencia de corte superior del filtro pasa banda), que complementa el diseño pasa banda, por tanto el orden del filtro es el doble del orden del polinomio. De esta manera, utilizando las mismas frecuencias de corte que en el filtro pasa banda anterior (0.4 y 0.6 normalizadas de 0 a 1) y con el uso de un polinomio de orden, N+1=38, que define un filtro paso alto con M par; se obtiene el filtro pasa banda optimizado de orden 76 de la figura 3.8, el cual, como en los ejemplos anteriores, presenta una banda de transición tan estrecha como la que se obtiene con 35 los diseños de Von Hann y Hamming y por consiguiente un ancho de banda tan bueno como los de dichas ventanas; éste a su vez es mejor que el que se obtiene con la ventana de Blackman. Todo lo anterior, es el común denominador entre los distintos diseños, pues ha sido un hecho presente en todos los ejemplos anteriores; sin embargo, en este ultimo ejemplo, esto era lo que se esperaba, pues el punto de partida es un filtro paso alto, el cual presenta dicha característica. En la figura 3.8, se aprecia además, que la característica de similitud con la ventana de Von Hann o Hamming no cambia, en este caso se asemeja a la de Hamming, pero consolida un distintivo que se había presentado en el filtro paso alto y es el hecho de que la respuesta en la banda de rechazo es más plana para el filtro de Legendre; además, también presenta una mejoría en la ganancia de dicha banda, la cual es de aproximadamente 5 dB. Con esta variación en el diseño del filtro pasa banda, se logran optimizar todas las configuraciones típicas de los filtros, con esto se quiere destacar la potencia de este método en el diseño de filtros digitales FIR de fase lineal, pues es capaz de igualar y hasta mejorar en ciertas características a los diseños más comunes, con el distintivo especial de ser un diseño enteramente en el dominio de la frecuencia y que utiliza patrones de muestras no uniformes. 36 Figura 3.8 Filtro pasa banda de orden 76 basado en el polinomio de Legendre de orden 38, en comparación con tres basados en la técnica de ventanas CAPÍTULO 4: Conclusiones y recomendaciones • Con los polinomios de Legendre, específicamente con la posición relativa de sus raíces, se logran obtener patrones de muestras espaciadas de una manera no uniforme y a partir de éstos, se puede proceder al procesamiento digital de señales. Dentro del procesamiento digital de señales se encuentra el diseño de filtros digitales, los cuales se pueden obtener, mediante la técnica de muestreo en frecuencia, utilizando estas muestras no-uniformes. • Se logró obtener una nueva expansión de muestreo, esto es una relación similar a la del teorema del muestreo (que es una expansión para muestras separadas uniformemente), basada en los polinomios de Legendre, con el fin de poder relacionar de manera adecuada las muestras no-uniformes que se obtienen de dichos polinomios, con la señal (o función) que se desea reconstruir, para así lograr utilizarlas en el procesamiento digital de señales. • En el diseño de filtros digitales FIR de fase lineal, se logran obtener las distintas configuraciones típicas de filtros existentes (paso alto, paso bajo, pasa banda y rechaza banda), para éstas existen muchos patrones de muestras de los polinomios de Legendre con los que se logran resultados que satisfacen los requerimientos de diseño de un filtro (atenuación y transición) y otros patrones 37 38 de muestras con los que se logran superar algunas de las características de diseños similares obtenidos con la técnica de ventanas. • La respuesta de los filtros diseñados con los polinomios de Legendre presentó una variación importante para ciertos órdenes de polinomio. Fue la similitud con la respuesta de Von Hann o Hamming según dicho orden. Este orden no se logró establecer, pues varía con la frecuencia de corte, el tipo de filtro y además depende de M. Sin embargo, lo importante es que cuando la respuesta es similar a la de Von Hann se logra superar la atenuación que se obtiene con el diseño de Hamming, aunque éste ultimo tiene mejor atenuación en los primeros lóbulos; por su parte, cuando la respuesta de Legendre se asemeja a la del diseño de Hamming, se tiene una mejor atenuación en los primeros lóbulos, en comparación con la respuesta de Von Hann, e inclusive una mayor estabilidad en la banda de atenuación que su similar (Hamming). • Mediante una técnica muy conocida y simple, se logró optimizar la respuesta del filtro pasa banda. Esta técnica se utiliza solamente para diseñar filtros pasa banda y rechaza banda; consiste en diseñar únicamente la primera mitad del filtro deseado y la otra mitad se obtiene por la reflexión de dicha primera mitad. Con esto se logra la simetría entre las dos partes y por supuesto las mismas características de banda de transición y atenuación para todo el filtro. 39 Como recomendaciones para profundizar en este tema se considera: • Ampliar el uso de los polinomios de Legendre a otros tópicos dentro del procesamiento digital de señales, ya que en este trabajo solamente se utilizaron en el diseño de filtros digitales FIR de fase lineal; sin embargo las muestras no uniformes se pueden utilizar en todos los temas que comprenden el muestreo uniforme, como por ejemplo en compresión y reconstrucción de señales. • Desarrollar un tipo de polinomio que sea complementario con los polinomios de Legendre, esto es, que tenga sus raíces dispuestas de manera tal, que sean la imagen espejo de las raíces de Legendre. Con lo anterior se pueden obtener nuevas expresiones para el núcleo reproductor y para la expansión de muestreo, las cuales serían complementarias a las obtenidas en este trabajo; esta nueva expansión de muestreo, en conjunto con la ya obtenida, podrían ayudar a mejorar la respuesta del filtro pasa banda y se podrían obtener resultados interesantes para las otras configuraciones. 40 REFERENCIAS 1. Azofeifa, I. F. – “Guía para la investigación y desarrollo de un tema”, Segunda edición, Universidad de Costa Rica, 2006. 2. De Freitas, J. M. – “Digital Filter Design Solutions”, Artech House, 2005. 3. Lorente, G. G. - “Bernstein Polynomials”, Mathematicals expositions Nº 8, Board, Toronto, 1953. 4. Szegö, G. - “Orthogonal Polynomials”, Vol. XXIII, American Mathematical Society, New York, 1939. 5. Askey, R. - “Orthogonal Polynomials and special functions”, Society for Industrial and Applied Mathematics, 1975. 6. Antoniou, A. - “Digital Filters: Analysis, design and applications”, Segunda edición, McGraw Hill, 1993. 7. Nikiforov, A. F., Suslov, S. K. and Uvarov, V. B. - “Classical Orthogonal Polynomials of a discrete variable”, Springer-Verlag, Berlin Heidelberg, 1991. 8. Hochstadt, H. - “Integral Equations”, Wiley-Interscience Publications, New York, 1973. 9. Zemanian, A. H. - “Generalized Integral Transformations”, Vol. XVIII, Interscience Publishers, 1968. 10. Bergman, S. - “The Kernel function and conformal mapping”, American Mathematical Society, New York, 1950. 11. Kramer, H. P. - “A generalized sampling theorem”, Vol. 11, Journal of Mathematics and Physics, 1967. 41 12. Koelink, E. and Van Assche, W. - “Orthogonal Polynomials and special functions”, Springer-Verlag, Berlin Heidelberg, 2003. 13. Romero, J. A. - “Signal Processing based on Irregular Sampling: Reconstruction, Compression and signal transformation”, Concordia University, Montréal Canada, 1996. 14. Jackson, D. - “Fourier Series and Orthogonal Polynomials”, Vol. VI, The Mathematical Association of America, 1941. BIBLIOGRAFÍA Libros • Antoniou, A. - “Digital Filters: Analysis, design and applications”, Segunda edición, McGraw Hill, 1993. • Askey, R. - “Orthogonal Polynomials and special functions”, Society for Industrial and Applied Mathematics, 1975. • Azofeifa, I. F. – “Guía para la investigación y desarrollo de un tema”, Segunda edición, Universidad de Costa Rica, 2006. • Bergman, S. - “The Kernel function and conformal mapping”, American Mathematical Society, New York, 1950. • De Freitas, J. M. – “Digital Filter Design Solutions”, Artech House, 2005. • Hochstadt, H. - “Integral Equations”, Wiley-Interscience Publications, New York, 1973. • Jackson, D. - “Fourier Series and Orthogonal Polynomials”, Vol. VI, The Mathematical Association of America, 1941. • Koelink, E. and Van Assche, W. - “Orthogonal Polynomials and special functions”, Springer-Verlag, Berlin Heidelberg, 2003. • Kramer, H. P. - “A generalized sampling theorem”, Vol. 11, Journal of Mathematics and Physics, 1967. • Lorente, G. G. - “Bernstein Polynomials”, Mathematicals expositions Nº 8, Board, Toronto, 1953. • Nikiforov, A. F., Suslov, S. K. and Uvarov, V. B. - “Classical Orthogonal Polynomials of a discrete variable”, Springer-Verlag, Berlin Heidelberg, 1991. 42 43 • Romero, J. A. - “Signal Processing based on Irregular Sampling: Reconstruction, Compression and signal transformation”, Concordia University, Montréal Canada, 1996. • Szegö, G. - “Orthogonal Polynomials”, Vol. XXIII, American Mathematical Society, New York, 1939. • Zemanian, A. H. - “Generalized Integral Transformations”, Vol. XVIII, Interscience Publishers, 1968. 44 APÉNDICES 45 APÉNDICE I. Relaciones previas (polinomios ortogonales) Los siguientes son algunos resultados relacionados con los temas del capítulo 2, que fueron previamente obtenidos para los polinomios mencionados en este trabajo [13, 9, 4]. • Polinomios de Laguerre Con la función de peso w(x), factor de normalización hN y coeficiente de mayor orden aN N +α (−1) N , a N = w( x) = x α e − x , hN = Γ(α + 1) N! N se obtiene el núcleo reproductor de estos α K ( x, y ) =( xy ) e 2 − x+ y 2 Γ ( N + 2) LαN ( x) LαN +1 ( y ) − LαN ( y ) LαN +1 ( x) Γ ( N + α + 1) x− y Y con éste, la expansión de muestreo correspondiente α S n (t ) = 1− α t −t n − 2 [ t (t n ) e − LαN +1 (t ) (t − t n )( N + α + 1) LαN (t n ) 2 2 ] donde LαN (t ) es el polinomio de Laguerre de orden N y parámetro α. • Polinomios de Jacobi Se tiene 46 w( x) = (1 − x) α (1 + x) β hN = Γ (α + N + 1) Γ (β + N + 1) 2α + β +1 ⋅ α + β + 2N + 1 Γ (α + β + N + 1) N ! aN = 1 Γ (α + β + 2 N + 1) ⋅ 2 N Γ (α + β + N + 1) N ! Con ello, se obtiene el núcleo reproductor 1 K ( x, y ) = [w( x) w( y )]2 Γ ( N + 2) Γ ( N + α + β + 2) 2 −α − β ⋅ 2 N + α + β + 2 Γ ( N + α + 1) Γ ( N + β + 1) PNα+, 1β ( x) PNα , β ( y ) − PNα+, 1β ( y ) PNα , β ( x) x− y Y finalmente, la expansión de muestreo 1 w(t ) 2 2 PNα+, β1 (t ) S n (t ) = α +1, β +1 (t n ) w(t n ) (t − t n )( N + α + β + 2) PN donde PNα , β (t ) es el polinomio de Jacobi de orden N y parámetros α, β. • Polinomios de Hermite Para estos 2 w( x) = e − x , hN = 2 N π N ! , a N = 2 N con lo cual se determina el núcleo reproductor K ( x, y ) = e − 2 N +1 x2 + y2 2 H N +1 ( x) H N ( y ) − H N +1 ( y ) H N ( x) x− y π N! 47 luego, la expansión de muestreo sería S n (t ) = t 2 − t n2 − 2 [H ] (t ) 2(t − t n )( N + 1) H N (t n ) π e N +1 donde H N (t ) es el polinomio de Hermite de orden N. • Polinomios de Bessel Conociendo Γ (a ) b w( x ) = − ∑ 2π j n =0 Γ (a + n − 1) x 1 hN = ∞ n ( −1) N +1 b N !Γ ( a ) ( 2 N + a − 1) Γ (a + N − 1) Γ ( 2 N + a − 1) b N Γ ( N + a − 1) el núcleo reproductor calculado es aN = 1 K ( x, y ) = [w( x) w( y )]2 (−1) N +1 Γ ( N + a) y N +1 ( x) y N ( y ) − y N +1 ( y ) y N ( x) (2 N + a) Γ (a) N! x− y el cual da paso a la siguiente expansión de muestreo 1 w(t ) 2 t n2 [2( N + 1) + a − 2] y N +1 (t ) S n (t ) = (t − t n ) b ( N + 1) y N (t n ) w(t n ) donde y N (t ) es el polinomio de Bessel de orden N. 48 APÉNDICE II. Programa para obtener filtros de Legendre El programa desarrollado en Matlab para la elaboración de este trabajo se muestra a continuación. El segmento principal de código se llamó “Raices” clear; clc; n=19; % Orden deseado del filtro. par=1; % Se relaciona con "m". Un 1 implica paridad alf=9.89; % Parametro libre del polinomio de Laguerre. freci=0.20; % Frecuencia de corte inferior frecs=0.80; % Frecuencia de corte superior tipo='bajo'; % Con tipo se establece si se quiere un paso bajo (bajo), %paso alto (high), pasa banda (pass) o atrapa banda (stop) [Lalf]=laguerre (n+1,alf); [Crho]=legendre (n+1); % Calculo de los coeficientes del polinomio % de orden n+1 (laguerre y Legendre). Crho=(2)^(-(n+1)).*Crho; % Lg % La funcion legendre posee ecuaciones para %Crho=gamma(n+2).*Crho; % H % polinomios de Legendre (Lg), Hermite (H)y %Crho=(n/2).*Crho; % T % Tchebichef (T). zl=roots(Lalf); % Calculo y normalizacion de las raices del m=length(zl); zl=sort(zl) % polinomio de Laguerre de orden n+1. [lmin,xlmin]=min(zl); if lmin>=0 l=zl-lmin; [lm,xlm]=max(l); l=l./lm else lmin=abs(lmin); l=zl+lmin; [lm,xlm]=max(l); l=l./lm end figure (1);clf; u=0:1/(m-1):1; plot(u,u,'-.') grid on hold on figure (1) plot(u,l,'o'); % Grafico de relacion Lineal. % Grafico de las n+1 raices de Laguerre. 49 zc=roots(Crho); % Calculo y normalizacion de las raices del m=length(zc); zc=sort(zc) % polinomio de Legendre de orden n. [cmin,xcmin]=min(zc); if cmin>=0 c=zc-cmin; [cm,xcm]=max(c); c=c./cm else cmin=abs(cmin); c=zc+cmin; [cm,xcm]=max(c); c=c./cm end u=0:1/(m-1):1; plot(u,c,'b.'); % Grafico de las n raices de Legendre. title('Posición de las Raices') xlabel('Distribución uniforme (Normalizada)') ylabel('Raices (Normalizadas)') legend('Distribución Lineal','Laguerre','Legendre',2) figure (6) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (tipo=='pass'); cp=c/2; cm=max(cp); cc=cp+cm; cp=[cp;cc] plot(cp,0,'ro') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% else plot(c,0,'ro') end grid on; %hold on; %plot(l,0,'bx') %tkl=zl.*pi; %tkc=zc.*pi; % Disposicion de las raices de los polinomios de orden % n+1 (Laguerre l y Legendre c) entre 0 y pi. nm=512; w=0:pi/(nm-1):pi; % Numero de muestras % vector de frecuencias equidistantes. v=length(w); % Tamaño del vector de frecuencias. 50 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (tipo=='pass'); w=0:pi/((nm/2)-1):pi; v=length(w); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% k=length(zl); % Tamaño del vector de ceros. Bl=zeros(v,k); % Matriz de cosenos (que acompañan los if (par==1) % coeficientes del filtro) para cada for i=n:-1:1 % frecuencia w Bl(:,k-i)=2*cos(i*w); end % En la cual el valor que acompaña el Bl(:,k)=1; % ultimo coeficiente es uno ( h(n)). else for i=2*n+1:-2:1 Bl(:,fix((2*k+1-i)/2))=2*cos(i*w/2); end end % B es un vector de cero a n (1 a n+1), evaluado en v frecuencias %(w) [Ul,Dl,Vl]=svd(Bl); sigl=diag(Dl); % Descomposicion de valor singular de B. % Vector de valores singulares (diagonal de Dl). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% nm=512; % Numero de muestras w=0:pi/(nm-1):pi; % vector de frecuencias equidistantes. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (isreal(zl)==1) % Calculo de los coeficientes con Laguerre %(Raices reales) respfl = calcoefl (n,freci,frecs,w,zl,l,Lalf,alf,Bl,sigl,Vl,tipo,nm); resl=0; else respfl=1; resl=1; display(' ');display(' '); display(' Raices Complejas en Polinomio de Laguerre'); display(' ');display(' '); end if (isreal(zc)==1) % Calculo de los coeficientes con Legendre (Raices %reales) respfc = calcoefc (n,freci,frecs,w,zc,c,Crho,Bl,sigl,Vl,tipo,nm); resc=0; else respfc=1; resc=1; 51 display(' ');display(' '); display(' Raices Complejas en Polinomio de Legendre'); display(' ');display(' '); end if (resl~=1 || resc~=1) compwind (n,freci,frecs,w,respfl,respfc,tipo); else end Segmento del programa que calcula los parámetros para el filtro de Laguerre function [respfl] = calcoefl(n,freci,frecs,w,l,ln,Lalf,alf,Bl,sigl,Vl,tipo,nm) % Funcion para calcular los coeficientes del filtro, utilizando % los polinomios de Legendre % Redistribucion de los ceros dentro del vector de frecuencias (w) fcil=freci*max(ln); % ln: ceros normalizados (0 a 1) fcsl=frecs*max(ln); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (tipo=='pass') w=0:pi/((nm/2)-1):pi; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wl=((max(l)-min(l))*w+(min(l)*max(w)-max(l)*min(w)))/(max(w)-min(w)); tkl=l; v=length(w); k=length(tkl); % Tamaño del vector de frecuencias. % Tamaño del vector de ceros. fl=zeros(1,k); if (tipo=='bajo') ml=find(ln<=fcil); % Plantilla PB para el diseño del filtro, vector fl(1:length(ml)+1)=1; % con 1`s hasta la frecuencia de corte y ceros fl(length(ml)+2:k)=eps; %fl((length(ml))+(1:2))=1; fl(length(ml)+2)=0.69; % despues de esta, tomando 2 puntos de %transicion fl(length(ml)+3)=0.18; else if (tipo=='high') ml=find(ln<fcsl); % Plantilla PA para el diseño del filtro, %vector 52 fl(1:length(ml))=eps; % con 1`s hasta la frecuencia de corte y %ceros fl(length(ml):k)=1; %fl((length(ml))+(1:2))=1; fl(length(ml))=0.69; % despues de esta, tomando 2 puntos de %transicion. fl(length(ml)-1)=0.18; else if (tipo=='pass') ml=find(ln<2*fcil); % Plantilla Pbanda para el diseño del %filtro fl(1:length(ml))=eps; fl(length(ml):k)=1; % PA con la frecuencia de corte inferior %fl((length(ml))+(1:2))=1; fl(length(ml))=0.92; % Tomando 2 puntos de transicion fl(length(ml)-1)=0.23; %ml=find(ln<=fcsl); % PB con frecuencia de corte superior %fl(length(ml)+2:k)=eps; %%fl((length(ml))+(1:2))=1; %fl(length(ml)+1)=0.92; % Tomando 2 puntos de transicion %fl(length(ml)+2)=0.23; else if (tipo=='stop') ml=find(ln<=fcil); % Plantilla Atrapa banda para el %diseño del filtro fl(1:length(ml)+1)=1; fl(length(ml)+2:k)=eps; % PB con frecuencia de corte %inferior %fl((length(ml))+(1:2))=1; fl(length(ml)+1)=0.92; % Tomando 2 puntos de transicion fl(length(ml)+2)=0.23; ml=find(ln<fcsl); % PA con frecuencia de corte superior fl(length(ml):k)=1; %fl((length(ml))+(1:2))=1; fl(length(ml))=0.92; % Tomando 2 puntos de transicion fl(length(ml)-1)=0.23; end end end end [Ln]=laguerre (n,alf); % Calculo del polinomio de Laguerre de orden n LAlf=polyval(Lalf,wl); LN=polyval(Ln,tkl); % Evaluacion de los polinomios de orden n+1 en w, % y los de orden n en la disposicion de ceros for i=1:k % tkl for j=1:v %w restl=wl(j)-tkl(i); if (abs(restl)<0.0001) % Condicion para evitar indefiniciones 53 Sl(j,i)=1; else % Calculo de la expansion de muestreo Sl(j,i)=((wl(j)^(alf/2))*(tkl(i)^(1-alf/2))*(exp(-restl/2))*LAlf(j))/(restl*(n+1+alf)*LN(i)); end end end dl=Sl*fl'; m=find(dl>1); dl(m)=1; % Vector de valores conocidos (d), apartir de la expansion % y la plantilla de diseño. No debe ser mayor a 1 %figure (2);clf; %plot(w/pi,dl,'b-') %grid on % Grafico de la aproximacion del filtro por la % expansion de muestreo S hl=zeros(k,1); for i=1:k hl=Vl(:,i)*Vl(:,i)'*(1/(sigl(i))^2)*Bl'*dl+hl; end %hl Vector de coeficientes del filtro de Laguerre. respfl=(Bl*hl); % Respuesta en frecuencia del filtro if (fl(k)==0) respfl(v)=0.0001; % Ajuste segun plantilla de diseño else respfl(v)=respfl(v-k); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (tipo=='pass') respflc=flipud(respfl); respfl=[respfl; respflc]; w=0:pi/(nm-1):pi; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure (3);clf; plot(w/(2*pi),respfl,'r-') grid on % Grafico de la respuesta en frecuencia % contra la frecuencia normalizada. figure (4);clf; plot(w/(2*pi),20*log10(abs(respfl)),'r-') grid on % Grafico de la respuesta en % frecuencia en dB contra la % frecuencia normalizada. 54 Segmento del programa que calcula los parámetros para el filtro de Legendre function [respfc] = calcoefc (n,freci,frecs,w,c,cn,Crho,Bl,sigl,Vl,tipo,nm) % Funcion para calcular los coeficientes del filtro, utilizando % los polinomios de Legendre % Redistribucion de los ceros dentro del vector de frecuencias (w) fcic=freci*max(cn); % cn: ceros normalizados (0 a 1) fcsc=frecs*max(cn); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (tipo=='pass') w=0:pi/((nm/2)-1):pi; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wc=((max(c)-min(c))*w+(min(c)*max(w)-max(c)*min(w)))/(max(w)-min(w)); tkc=c; v=length(w); k=length(tkc); % Tamaño del vector de frecuencias. % Tamaño del vector de ceros. fc=zeros(1,k); if (tipo=='bajo') mc=find(cn<=fcic); % Plantilla PB para el diseño del filtro, vector fc(1:length(mc))=1; % con 1`s hasta la frecuencia de corte y ceros fc(length(mc):k)=eps; %fc((max(mc))+(1:3))=1; fc(length(mc))=0.450; % despues de esta, tomando 2 puntos de %transicion. fc(length(mc)+1)=0.170; % 0.45, 0.17 else if (tipo=='high') mc=find(cn<fcsc); % Plantilla PA para el diseño del filtro, %vector fc(1:length(mc))=eps; % con 1`s hasta la frecuencia de corte %y ceros fc(length(mc)+1:k)=1; %fc((length(mc))+(1:2))=1; fc(length(mc)+1)=0.45; % despues de esta, tomando 2 puntos de %transicion. fc(length(mc))=0.16; else if (tipo=='pass') mc=find(cn<2*fcic); % Plantilla PBanda para el diseño del %filtro fc(1:length(mc))=eps; fc(length(mc)+1:k)=1; % PA con frecuencia de corte inferior %fc((length(mc))+(1:2))=1; % Tomando 2 puntos de transicion fc(length(mc)+1)=0.45; 55 fc(length(mc))=0.16; %16 %mc=find(cn<=fcsc); % PB con frecuencia de corte superior %fc(length(mc)+1:k)=eps; %%fc((max(mc))+(1:3))=1; %fc(length(mc)+1)=0.450; % Tomando 2 puntos de transicion %fc(length(mc)+2)=0.17; %17 else if (tipo=='stop') mc=find(cn<=fcic); % Plantilla Atrapa Banda para el %diseño del filtro fc(1:length(mc))=1; fc(length(mc):k)=eps; % PB con frecuencia de corte %inferior %fc((max(mc))+(1:3))=1; fc(length(mc))=0.450; % Tomando 2 puntos de transicion fc(length(mc)+1)=0.170; mc=find(cn<fcsc); % PA con frecuencia de corte %superior fc(length(mc)+1:k)=1; %fc((length(mc))+(1:2))=1; fc(length(mc)+1)=0.45; % Tomando 2 puntos de transicion fc(length(mc))=0.16; end end end end %[Cn]=(2)^(-(n))*(2*n+1)*legendre (n); %Cn=gamma(n+1).*legendre (n); % H Cn=derleg (n); % Calculo del polinomio de Legendre de orden n %Cn=ultraesf (n,3/2); CRho=polyval(Crho,wc); CN=polyval(Cn,tkc); % Evaluacion de los polinomios de orden n+1 en w, % y los de orden n en la disposicion de ceros for i=1:k % tkc for j=1:v %w restc=wc(j)-tkc(i); if (abs(restc)<0.15) % Condicion para evitar indefiniciones Sc(j,i)=1; else % Calculo de la expansion de muestreo Sc(j,i)=((CRho(j))/(restc*CN(i))); % Lg %Sc(j,i)=(sqrt(pi)*(exp(-((wc(j)^2)% (tkc(i)^2))/2))*CRho(j))/(2*(n+1)*restc*CN(i)); % H end end end 56 dc=Sc*fc'; m=find(dc>1); dc(m)=1; % Vector de valores conocidos (d), apartir de la expansion % y la plantilla de diseño. No debe ser mayor a 1 %figure (2); % Grafico de la aproximacion del filtro por la %grid on; hold on % expansion de muestreo S %plot(w/pi,dc,'r--') %title('Aproximación por expansión de muestreo (S)') %xlabel('Frecuencia Normalizada') %ylabel('Respuesta en frecuencia') %legend('Laguerre','Legendre') hc=zeros(k,1); for i=1:k hc=Vl(:,i)*Vl(:,i)'*(1/(sigl(i))^2)*Bl'*dc+hc; end %hc Vector de coeficientes del filtro de Legendre. respfc=(Bl*hc); % Respuesta en frecuencia del filtro if (fc(k)==0) respfc(v)=0.0001; % Ajuste segun plantilla de diseño else respfc(v)=respfc(v-k); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (tipo=='pass') respfcc=flipud(respfc); respfc=[respfc; respfcc]; w=0:pi/(nm-1):pi; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure (3); % Grafico de la respuesta en frecuencia contra la grid on; hold on % frecuencia normalizada. plot(w/(2*pi),respfc,'b--') title('Filtro FIR diseñado') xlabel('Frecuencia Normalizada') ylabel('Respuesta en frecuencia') legend('Laguerre','Legendre') figure (4); % Grafico de la respuesta en frecuencia en dB contra la grid on; hold on % frecuencia normalizada. plot(w/(2*pi),20*log10(abs(respfc)),'b--') title('Filtro FIR diseñado') xlabel('Frecuencia Normalizada') ylabel('Respuesta en frecuencia en dB') legend('Laguerre','Legendre') 57 Segmento que ayuda al cálculo del denominador de la expansión de muestreo function [Cn] = derleg (n) Cn=(2*n+1)*legendre(n); for i=2:2:n cy=(2*(n-i)+1)*legendre(n-i); C=zeros(1,length(Cn)); C(1:length(cy))=cy; Cn=Cn+C; end Segmento del programa que calcula los polinomios de Laguerre function [Lalf] = laguerre (n,alf) % % % % Funcion para el calculo de los coeficientes del polinomio de Laguerre de orden n y parametro alfa, considerando que en Matlab el primer elemento de un vector acompaña a la variable de mayor orden. for i=1:n+1 % Coeficientes desde 0 hasta n. Lalf(n+2-i)=((gamma(n+alf+1)*(-1)^(i-1))/(gamma(i)*gamma(ni+2)*gamma(alf+i))); End Segmento del programa que calcula los polinomios de Legendre function [Crho]=legendre (n) % % % % Funcion para el calculo de los coeficientes de los polinomios de Legendre (Lg), Hermite (H), o Tchebichef (T) de orden n. Considerando que en Matlab, el primer elemento de un vector acompaña a la variable de mayor orden. a=n/2; b=round(a); d=2*b; % Segun sea n par o impar, los coeficientes se guardan en % posiciones pares o impares. if d==n 58 for k=1:(n/2+1) Crho(2*k-1)=(((-1)^(k-1)*gamma(2*n-2*(k-1)+1)*(1)^(n-2*(k1)))/(gamma(k)*gamma(n-k+2)*gamma(n-2*(k-1)+1))); % Lg %Crho(2*k-1)=(((-1)^(k-1))*(2^(n-2*(k-1))))/(gamma(k)*gamma(n%2*(k-1)+1)); % H %Crho(2*k-1)=(((-1)^(k-1))*gamma(n-k+1)*2^(n-2*(k%1)))/(gamma(k)*gamma(n-2*(k-1)+1)); % T end else Crho(n+2)=0; for k=1:((n-1)/2+1) Crho(2*k)=(((-1)^(k-1)*gamma(2*n-2*(k-1)+1)*(1)^(n-2*(k1)))/(gamma(k)*gamma(n-k+2)*gamma(n-2*(k-1)+1))); % Lg %Crho(2*k)=(((-1)^(k-1))*(2^(n-2*(k-1))))/(gamma(k)*gamma(n-2*(k%1)+1)); % H %Crho(2*k)=(((-1)^(k-1))*gamma(n-k+1)*2^(n-2*(k%1)))/(gamma(k)*gamma(n-2*(k-1)+1)); % T end end Segmento del programa que compara los filtros diseñados con algunas de las conocidas “ventanas” function compwind (n,freci,frecs,w,respfl,respfc,tipo) % Funcion para comparar la respuesta en frecuencia % de los filtros diseñados con los polinomios de % Laguerre y Legendre, con filtros que se obtienen % mediante la tecnica de ventanas if (tipo=='high') frecs=0.92*frecs; dhamm=fir1(2*n,frecs,tipo,hamming(2*n+1)); % Calculo de los dhann=fir1(2*n,frecs,tipo,hann(2*n+1)); % coeficientes de cada dblack=fir1(2*n,frecs,tipo,blackman(2*n+1)); % tipo de ventana dkai=fir1(2*n,frecs,tipo,kaiser(2*n+1)); % deseada (Paso Alto) else if (tipo=='pass') frec=[0.93*freci 1.05*frecs]; dhamm=fir1(4*n,frec,'bandpass',hamming(4*n+1)); % Calculo de los dhann=fir1(4*n,frec,'bandpass',hann(4*n+1)); % coeficientes %de cada dblack=fir1(4*n,frec,'bandpass',blackman(4*n+1)); % tipo de %ventana dkai=fir1(4*n,frec,'bandpass',kaiser(4*n+1)); % deseada %(Pasa Banda) 59 else if (tipo=='stop') frec=[1.35*freci 0.91*frecs]; dhamm=fir1(2*n,frec,tipo,hamming(2*n+1)); % Calculo de los % coeficientes dhann=fir1(2*n,frec,tipo,hann(2*n+1)); %de cada dblack=fir1(2*n,frec,tipo,blackman(2*n+1)); % tipo de ventana dkai=fir1(2*n,frec,tipo,kaiser(2*n+1)); % deseada (Atrapa %banda) else if (tipo=='bajo') freci=1.35*freci; dhamm=fir1(2*n,freci,'low',hamming(2*n+1)); % Calculo de %los dhann=fir1(2*n,freci,'low',hann(2*n+1)); % coeficientes %de cada dblack=fir1(2*n,freci,'low',blackman(2*n+1)); % tipo de %ventana dkai=fir1(2*n,freci,'low',kaiser(2*n+1)); % deseada %(Paso bajo) end end end end hhamm=freqz(dhamm,1,w); hhann=freqz(dhann,1,w); hblack=freqz(dblack,1,w); hkai=freqz(dkai,1,w); % Calculo de la respuesta en frecuencia % para las distintas ventanas figure (5);clf; plot(w/(2*pi),20*log10(abs(hhamm)),'b-.');hold on plot(w/(2*pi),20*log10(abs(hhann)),'r--');hold on plot(w/(2*pi),20*log10(abs(hblack)),'b.');hold on %plot(w/(2*pi),20*log10(abs(hkai)),'g-');hold on plot(w/(2*pi),20*log10(abs(respfl)),'m:');hold on plot(w/(2*pi),20*log10(abs(respfc)),'k-');hold on grid on title('Comparación con "ventanas"') xlabel('Frecuencia normalizada') ylabel('Respuesta en frecuencia (dB)') legend('Hamming','Hann','Blackman','Laguerre','Legendre',3);