Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT Análisis espectral de señales periódicas con FFT Contenido Pg. 7.1 7.2 7.3 7.4 7.5 7.6 Introducción a la Transformada Discreta de Fourier Uso de la Transformada Discreta de Fourier Método de uso de la FFT Cálculo de potencia en el dominio de la frecuencia Cálculos de relación señal a ruido Estimación del espectro de una señal aleatoria MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 3-3 3-5 3-8 3-12 3-12 3-13 2009 1 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 2 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 7.1. Introducción a la Transformada Discreta de Fourier 7.4.1. Transformada Discreta de Fourier En matemáticas, la transformada Discreta de Fourier, designada con frecuencia por la abreviatura DFT (del inglés Discrete Fourier Transform), y a la que en ocasiones se denomina transformada de Fourier finita, es una operación ampliamente empleada en tratamiento de señales y en campos afines para analizar las frecuencias presentes en una señal muestreada, resolver ecuaciones diferenciales parciales y realizar otras operaciones, como convoluciones y correlaciones. La Transformada discreta de Fourier puede calcularse de modo muy eficiente mediante el algoritmo FFT. Hay dos situaciones a considerar en cuanto al uso de la Transformada Discreta de Fourier: • • Sólo sirve para señales potencia del tipo periódico. La mayoría de las señales a estudiar no son periódicas. Considere ahora la secuencia de números complejos , , , , los cuales son muestras de una señal analógica. Tal secuencia debe transformarse en la secuencia de números complejos , , , , las cuales son muestras del espectro de la señal analógica, según la fórmula: ; Siendo: • • • • 0, , 1 (7.1) la base de los logaritmos naturales, la unidad imaginaria ( 1) es el número de muestras. Esta transformada se denota de forma común mediante el símbolo , La transformada de Fourier discreta inversa (por sus siglas en inglés IDFT, Inverse Discrete Fourier Transform) se calcula, por otra parte, mediante: 1 ; 0, , 1 (7.2) Siendo que • • el número de muestras MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 3 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 7.4.2. Transformada Rápida de Fourier FFT es la abreviatura usual (del inglés Fast Fourier Transform) de un algoritmo eficiente que permite calcular la Transformada Discreta de Fourier (DFT) y su inversa. Así entonces, consideremos nuevamente la secuencia de números complejos , , , , la cual debe transformarse en la secuencia de números complejos , , , según la fórmula en la ecuación (7.1). La evaluación directa de esa fórmula requiere !" # operaciones aritméticas. Mediante un algoritmo FFT se puede obtener el mismo resultado con sólo !" $%& # operaciones. En general, dichos algoritmos funcionan para una , potencia de 2. Aunque también existen versiones menos rápidas para cualquier par. La idea que permite esta optimización es la descomposición de la transformada a tratar en otras transformadas más simples y éstas a su vez en otras más simples hasta llegar a transformadas de 2 elementos " 2#. Una vez resueltas las transformadas más simples hay que agruparlas en otras de nivel superior que deben resolverse de nuevo y así sucesivamente hasta llegar al nivel más alto. Al final de este proceso, los resultados obtenidos deben reordenarse. Dado que la Transformada Discreta Inversa de Fourier es análoga a la Transformada Discreta de Fourier, con distinto signo en el exponente y un factor 1/, cualquier algoritmo FFT puede ser fácilmente adaptado para el cálculo de la transformada inversa. 7.4.3. FFT y Matlab Matlab permite el cálculo de la FFT para una secuencia de muestras de señal contenidas en un vector. Una forma simple de uso es como sigue: t=0:0.003/(512-1):0.003; X=sin(2*pi*1000*t); F=fft(X); magnitude=abs(F); %magnitud del espectro plot(magnitude); 7.4.4. Aplicaciones Algunas aplicaciones que definen a la FFT son: • • • • • • • • • Compresión de imagen y audio. Filtrado digital. Reducción de ruido en señales, como el ruido blanco. Resolución de ecuaciones diferenciales parciales. Análisis en frecuencia de cualquier señal discreta, ya sea periódicas o aperiódicas. Análisis de materiales y estadística. Síntesis, mediante la transformada inversa IFFT. Algoritmos rápidos de convolución y correlación Detección de movimiento MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 4 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 7.4.5. Teorema de muestreo de Nyquist Este teorema puede expresarse tanto en el dominio del tiempo como en el de la frecuencia. Así entonces. Teorema de Nyquist en el dominio del tiempo. Sea una señal sin componentes espectrales mayores a )*+ ,-./, ésta queda determinada en forma única por sus valores en intervalos uniformes menores o iguales a 1⁄2)*+ . Teorema de Nyquist en el dominio de la frecuencia. La rapidez de muestreo 1 de una señal es por lo menos el doble de la frecuencia máxima contenida en la señal ")*+ #: 1 2 2)*+ . 7.2. Uso de la Transformada Discreta de Fourier Consideremos una señal periódica de la que se toma un espacio muestral con cardinalidad de en un periodo de duración 3 tal como se ilustra en la figura 1. Fig01 Figura 1 Según la figura • • • 3 periodo de la señal es el número de muestras 6 45 periodo de muestreo De la figura 1, note que la muestra no forma parte del espacio muestral que se pretende analizar ya que corresponde al siguiente periodo de la señal. MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 5 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT Luego se aplica la operación DFT a la señal. Para entender el significado del resultado, debe considerarse que el espectro de una señal discreta y periódica es también discreto y periódico. La figura 2 ilustra un periodo de tal espectro. Figura 2. Espectro prototipo. El espectro consta de un número par de muestras. De la figura 2 podemos establecer las siguientes relaciones • • • 1 1⁄41 : frecuencia de muestreo 7 resolución frecuencial. 1 ⁄2 es la frecuencia máxima con significado en el espectro. Note que: • • La frecuencia máxima que se calcula en el espectro es 5 "1 1⁄# y no 5 debido a que esta última frecuencia corresponde con el siguiente periodo del espectro: recuerde que el espectro es periódico. La frecuencia máxima con significado en el espectro es 5 ⁄2 . Esta frecuencia no es la frecuencia máxima de la señal. MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 6 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 7.2.1. Periodicidad del espectro La DFT es una operación para señales discretas periódicas, en consecuencia, el espectro es discreto y periódico. Así entonces, el espectro de alguna señal que se ve en la figura 2 es sólo parte del espectro mostrado en la figura 3. Figura 3. 7.2.2. Corrección del espectro La DFT, calculada a través de la FFT, nos genera un espectro como el de la figura 2. Podemos aprovechar la periodicidad y simetría de que caracteriza a la DFT para generar un espectro como el mostrado en la figura 4, lo cual es más acorde con lo que esperamos ver. Figura 4. En Matlab, para lograr un espectro como el mostrado en la figura 4, se usa la función 89:;8. El siguiente ejemplo ilustra el uso de la función: t=0:0.003/(512-1):0.003; X=sin(2*pi*1000*t); F=fftshift(fft(X)); magnitude=abs(F); %magnitud del espectro plot(magnitude); MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 7 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 7.2.3. Factor de ajuste Luego de aplicar el algoritmo de FFT, para obtener espigas con magnitudes que correspondan a la teoría, se debe considerar un factor de ajuste: GE8%D 7 GF98 1 (7.3) En resumen, tenemos una nueva versión de la Transformada Discreta de Fourier, la cual está dada por GE8%D_LF98 M 8"# (7.4) Donde • • , , , Secuencia de muestras de una señal en el dominio del tiempo , , , Secuencia de muestras del espectro de la señal. 7.3. Método de uso de la FFT con MATLAB La FFT, aunque efectiva, no es una herramienta fácil de usar. Los siguientes pasos son una receta que puede ser útil: Paso 1: Se requieren de dos datos previos para preparar el cálculo de la DFT. El primer dato es la frecuencia máxima contenida en el mensaje )*+ ¿ ? El segundo dato previo es el número de muestras de la señal. Este debe ser potencia de 2. Por lo general se prefiere trabajar con 8192, 16384, 32768 o 65536 muestras: 8192 Paso 2: Calcule los parámetros espectrales: 5 @ 2ABC 7 MI. Mario Alfredo Ibarra Carrillo 5 DEF E;G 7 HF98D% I9%$FE;ó DEF E;G$ [Escribir texto] 2009 8 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT Paso 3: Calcule parámetros temporales 1 5 45 3 45 ND;%7% 7 HF98D% 8HO%DG$ PFDGE;% 7$ 9OGE;% HF98DG$ 8HO%DG$ Paso 4: En el dominio del tiempo, calcule el vector de instantes de muestreo y la señal. La señal "8# puede ser capturada por micrófono o generada por alguna ecuación: las muestras se almacenan en el vector . 8 1 0: 45 : 3 R1 S T 7$ 8;HO% % 7%H; ;% 8HO%DG$ "8# F E;ó 7$ 8;HO% Paso 5: En el dominio de la frecuencia, calcule el vector de frecuencias en hertz y el espectro -. 5 5 1 : 7: R1 S 2 2 T 7 $G DEF E;G % 7%H; ;% 9OE8DG$ 1 89:;8 U 8"#V T9OE8D% 7 $G 9ñG$ "9%$% HG& ;8F7# Paso 6: Grafique la señal en el dominio del tiempo. A esta gráfica se le suele conocer vulgarmente como el oscilograma. ;&FD"1# O$%8"8, # 8;8$"X!9E;$%&DGHGX# Es posible que el oscilograma se exhiba como un manchón, es decir, hay demasiadas muestras, tantas que saturan el oscilograma. Para observar un fragmento de la señal graficada use la función axis antes de la función title: G;9",8H; 8HG YH; YHG/# Donde 8H; 8HG especifican los límites temporales entre los cuales se visualiza la señal. Los valores YH; YHG son los límites en magnitud entre los cuales se grafica la señal. MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 9 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT Paso 7: Grafique el espectro de la señal. ;&FD"2# O$%8"-., GZ9"## 8;8$"XT9OE8D%X# Observe el uso de la función GZ9" #. Esta función es necesaria ya que las muestras del espectro son números complejos y sólo se desea exhibir la magnitud de tales. Es posible que el espectro se exhiba como un pequeño manchón en el centro de la gráfica, es decir, el espectro está concentrado en una pequeña banda de frecuencias. Para observar sólo esa banda de frecuencias use la función axis: G;9",H; HG 0 .HG/# Al usar la función axis para exhibir sólo frecuencias positivas, el espectro debe multiplicarse por un factor de dos. A consecuencia, el código para exhibir el espectro de una señal, con sólo las frecuencias positivas, queda como: ;&FD"2# O$%8"-., 2 [ GZ9"## G;9",H; HG 8;8$"XT9OE8D% MI. Mario Alfredo Ibarra Carrillo \# 0 .HG/# [Escribir texto] 2009 10 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 7.3.1. Ejemplo: Senoide Calcule el espectro de una señal sinusoidal de 1000Hz. El equipo tiene capacidad para almacenar 256 puntos. Use una frecuencia de muestreo de 16 veces la frecuencia máxima. % 1) La frecuencia máxima en la señal fmax=1000; % 2 El número de muestras N=256; % 3) Parámetros espectrales fs=16*fmax; df=fs/N; % 4) Parámetros temporales ts=1/fs; T=N*ts; % 5) Cálculo de la función senoidal t=0:ts:T*(1-1/N); X=sin(2*pi*1000*t); % 6) Cálculo del espectro fHz=-0.5*fs : fs/N : 0.5*fs*(1-1/N); %frecuencia en Hz F=fftshift(fft(X)/N); % 7) Oscilograma figure(1) subplot(2,1,1); plot(t,X); axis([0 0.003 -2 2]) % Se grafican 3ms de la señal o tres ciclos title('Osciloscopio') % 8) Espectro subplot(2,1,2); stem(fHz,abs(F)); axis([-2000, 2000, 0, 1]) title('Analizador de espectros') MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 11 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT La figura generada es: Domino del tiempo 2 1 0 -1 -2 0 0.5 1 1.5 2 2.5 3 -3 x 10 1 0.5 0 -2000 -1500 -1000 -500 0 500 1000 1500 2000 Figura 5. Observe que las amplitudes de las espigas son de 0.5,_/, esto es porque se cumple con una de las formas del teorema de Parseval: O%8 E;G 7 9ñG$ 7%H; ;% 8;HO% O%8 E;G 7 9ñG$ 7%H; ;% 9OE8D% Expresado en otra forma, se tiene que: MI. Mario Alfredo Ibarra Carrillo ` ` (7.5) [Escribir texto] 2009 12 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 7.3.2. Ejemplo: dos senoides Calcule el espectro de: 9; "2a10008# b 29; "2a15008# (7.6) El equipo tiene capacidad para almacenar 256 puntos. Use una frecuencia de muestreo de 16 veces la frecuencia máxima. % 1) La frecuencia máxima en la señal fmax=1000; % 2 El número de muestras N=256 % 3) Parámetros espectrales fs=16*fmax; df=fs/N; % 4) Parámetros temporales ts=1/fs; T=N*ts; % 5) Cálculo de la función senoidal t=0:ts:T*(1-1/N); X=sin(2*pi*1000*t) + 2*sin(2*pi*1500*t); % 6) Cálculo del espectro fHz=-0.5*fs : fs/N : 0.5*fs*(1-1/N); %frecuencia en Hz F=fftshift(fft(X)/N); % 7) Oscilograma figure(1) subplot(2,1,1); plot(t,X); axis([0 0.003 -3 3]) % Se grafican 3ms de la señal o tres ciclos title('Osciloscopio') % 8) Espectro subplot(2,1,2); stem(fHz,abs(F)); axis([-2000, 2000, 0, 2]) title('Analizador de espectros') MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 13 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT La figura generada es: Domino del tiempo 2 0 -2 0 0.5 1 1.5 2 2.5 3 -3 x 10 Domino de la frecuencia 2 1.5 1 0.5 0 -2000 -1500 -1000 -500 0 500 1000 1500 2000 Figura 6. MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 14 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 7.3.3. Ejemplo: Desplazamiento en frecuencia En este ejemplo vamos a comprobar una de las propiedades de la transformada de Fourier. La propiedad a verificar es la traslación en frecuencia, es decir "8# cd e "f f # (7.7) Este ejemplo consta de un desplazamiento a la derecha de 500Hz 9; "2a10008# ge (7.8) El equipo tiene capacidad para almacenar 256 puntos. Use una frecuencia de muestreo de 16 veces la frecuencia máxima. % 1) La frecuencia máxima en la señal fmax=1000; % 2 El número de muestras N=512; % 3) Parámetros espectrales fs=16*fmax; df=fs/N; % 4) Parámetros temporales ts=1/fs; T=N*ts; % 5) Cálculo de la función senoidal t=0:ts:T*(1-1/N); X=sin(2*pi*1000*t).*exp(i*2*pi*500*t); % 6) Cálculo del espectro fHz=-0.5*fs : fs/N : 0.5*fs*(1-1/N); F=fftshift(fft(X)/N); % 6) Oscilograma figure(1) subplot(2,1,1); plot(t,abs(X)); axis([0 0.003 -2 2]) % Se grafican 3ms de la señal o tres ciclos title('Domino del tiempo') subplot(2,1,2); stem(fHz,abs(F)); axis([-2000, 2000, 0, 1]) title('Domino de la frecuencia') MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 15 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT La gráfica generada tiene la forma Domino del tiempo 2 1 0 -1 -2 0 0.5 1 1.5 2 2.5 3 -3 x 10 Domino de la frecuencia 1 0.5 0 -2000 -1500 -1000 -500 0 500 1000 1500 2000 Figura 7. Observe que la gráfica del dominio del tiempo aparece rectificada debido a la función “abs()”. La propiedad de desplazamiento en frecuencia afecta espectralmente a la señal y no la afecta en el dominio del tiempo. MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 16 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 7.4. Cálculo de potencia 7.4.1. En el dominio del tiempo El cálculo de la potencia de una señal continua y periódica, en el dominio del tiempo, queda expresado en la ecuación 7.9 `"8# 1 i "8#78 3 (7.9) 6 Pero si la señal se discretiza, debemos discretizar la respectiva ecuación considerando las siguientes relaciones 8 78 3 45 45 (7.10) 45 Así nos queda que la potencia de la señal se puede aproximar como: `"8# h 1 " 41 #41 41 (7.11) Dado que las muestras de "8# se almacenan en un vector , . . , , . . , , podemos escribir 1 `"8# h 41 41 (7.12) Resolviendo los términos comunes 1 `"8# h MI. Mario Alfredo Ibarra Carrillo [Escribir texto] (7.13) 2009 17 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT Donde • • es la n-ésima muestra. es el número de muestras de la señal y dado que la señal se almacena en un vector, tal número se consigue con la función MATLAB $ &8:"#. Finalmente, dado que trabajamos ahora con un vector de muestras, , podemos expresar la potencia de tal vector como sigue: 1 ` (7.14) Al estilo de MATLAB, hacemos ` 9FH".[ #/ (7.15) Donde • • es el vector renglón que contiene a las muestras de la señal. es el número de muestras de la señal. 7.4.2. En el dominio de la frecuencia El espectro de una señal quedó definido en la ecuación (7.4). Si se aplica inmediatamente el factor, de ajuste, la ecuación resulta en: 1 8"# (7.16) Donde: • es el vector de muestras del espectro: , , , j , , El cálculo de potencia en la frecuencia, mediante la Transformada Discreta de Fourier, recordando que es para señales discretas y periódicas, se calcula en el dominio de la frecuencia como: ` [ (7.17) [Escribir texto] 2009 MI. Mario Alfredo Ibarra Carrillo 18 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT La ecuación 7.17, en el estilo de MATLAB queda como: ` 9FH".[ E% "## (7.18) Donde • • es un vector que contiene las muestras del espectro. E% "# es un vector que contiene las muestras conjugadas del espectro: las muestras del espectro son números complejos. 7.4.3. Teorema de Parseval El respectivo teorema de Parseval relaciona los cálculos de potencia en los dominios discretos del tiempo y de la frecuencia de la forma siguiente: ` ` (7.19) 7.4.4. El código para cálculo de la potencia en el dominio de la frecuencia %signal=<capturada o generada> F=fftshift( fft(X)/lneght(X) ) ; SF=sum(F.*conj(F)); 7.5. Cálculos de relación señal a ruido La Relación Señal a Ruido es factor que indica la calidad de una señal en alguna de las etapas de un sistema de comunicación. Esta relación se define como: I`I `9ñG$ N%8 E;G 7 9ñG$ `DF;7% N%8 E;G 7 DF;7% (7.20) En muchos experimentos sólo podemos medir • • `9ñG$ `9ñG$ b DF;7% Como observa, no se cuenta con la capacidad de medir directamente la potencia del ruido involucrado. Para medir esta cantidad podemos considerar la siguiente relación, la cual se deriva del teorema de Parseval. MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 19 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT `9ñG$ b DF;7% `9ñG$ b `DF;7% (7.21) Sustituyendo esta relación de la ecuación 7.21 en la ecuación 7.20 resulta: I`I `9ñG$ `9ñG$ b DF;7% `9ñG$ (7.22) 7.6. Estimación del espectro de una señal aleatoria 7.6.1. Teorema de equivalencia espectral de Maic La DFT sólo es útil para señales discretas periódicas. Al respecto, ¿Qué pasa con las señales que son aleatorias? Una forma de estudiar estas señales es mediante dos consideraciones: a. b. Se obtiene un espacio muestral de la señal aleatoria y se considera que esta ventana es periódica. Aplique el siguiente teorema: “El contenido espectral de la señal aleatoria es igual al contenido espectral de la correlación cruzada promediada de tal señal consigo misma”. Este teorema es válido cuando la curva de correlación sea una función causal y del tipo energía. Las dos consideraciones pueden anotarse en forma de ecuación de la siguiente forma: k` h [[ (7.23) k` [[ Donde • • • • • es el vector de muestras de la señal. ` es la potencia de la señal en tiempo continuo calculada a partir de sus muestras. [[ E%DD", XF Z;G97X#; es la correlación promediada es insesgadandel vector de muestras consigo mismo. ` [[ es la potencia de la función que resulta de la correlación. [[ es el espectro de la correlación: [[ 89:;8"8" [[ #/$ &8:" [[ # Este teorema en forma de la ecuación 7.23 permite calcular, de forma aproximada, el espectro de una señal cualquiera a partir de su correlación promediada, ecuación siguiente: X MI. Mario Alfredo Ibarra Carrillo k` k` [[ [Escribir texto] [[ (7.24) 2009 20 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT Si comparamos el cálculo de las potencias de los espectros definidos por las ecuaciones 7.16 y 7.24, tendremos la siguiente relación ` `X (7.25) h X (7.26) No obstante que las magnitudes de las espigas entre y X son ligeramente diferentes: 7.6.2. Cálculo del espectro de una señal aleatoria Los pasos que siguen nos indican cómo calcular el espectro. 1. Capturar una muestra de una señal aleatoria. Es buena idea si el número de muestras es par y es aún mejor idea si el número de muestras es una potencia de 2. La figura 8 ilustra un registro temporal u oscilograma, de la palabra manzana. 0.015 0.01 0.005 0 -0.005 -0.01 -0.015 -0.02 0 200 400 600 800 1000 1200 Figura 8. 2. Se obtiene la correlación cruzada promediada de tal muestra consigo misma. Úsese la función MATLAB xcorr con el parámetro ‘unbiassed’, es decir, calcule una correlación sin errores de aproximación. La figura 9 muestra la correlación cruzada de la señal consigo misma. Se puede observar que la curva de correlación cruzada es simétrica y es de tipo energía. MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 21 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 0.025 0.02 0.015 0.01 0.005 0 -0.005 0 0.5 1 1.5 2 2.5 3 3.5 4 x 10 Figura 9. 3. 4. Grafique la curva de correlación. Si esta curva parece ser del tipo energía, entonces proceda con el paso 4, de otra forma, termina. La gráfica anterior ilustra perfectamente una curva de correlación cruzada del tipo energía ya que concentra sus cambios en un pequeño intervalo. Extrae la mitad derecha de la curva de correlación: esta mitad corresponde con una función del tipo causal. La figura 10 muestra que se ha extraído la mitad derecha de la curva de correlación cruzada. Esta mitad corresponde con una señal de causal y de tipo energía. 0.025 0.02 0.015 0.01 0.005 0 -0.005 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 Figura 10. MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 22 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT 5. Calcula de FFT de la curva de correlación. La gráfica está acotada en hertz y en valores pico. 0.025 0.02 0.015 0.01 0.005 0 -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 Figura 8. El código siguiente es una función que captura voz mediante un micrófono conectado a la laptop. Este código funciona con palabras cortas como “manzana”. function xpectrum(level) %Parámetros de la señal fs=8000; %sample frec. N=16384; %num. Samples ts=1/fs; T=N*ts; input('Presione tecla para grabar voz') onda=level*wavrecord(N,fs,1,'double'); disp('registrado') figure(1) plot(onda(1000:2000)); rxx=xcorr(onda,'unbiased'); figure(2) plot(rxx) rxx=rxx(ceil(0.5*length(rxx)):length(rxx)); figure(3) plot(rxx) onda_pow=sum(onda.*onda)/length(onda); spec=fft(rxx)/length(rxx); spec_pow=sum(spec.*conj(spec)); spectrum=sqrt(onda_pow/spec_pow)*abs(fftshift(spec)); f=-0.5*fs:fs/N:0.5*fs*(1-1/N); figure(4) plot(f,spectrum) MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 23 Sistemas de Comunicaciones Capítulo 7. Análisis Espectral de Señales periódicas con FFT Apéndice A. Generación de señales en MATLAB La señal cuadrada Para generar una señal cuadrada se usa la función square, la cual tiene las siguientes formas: 9lFGD "m# 9lFGD "m, 7F8Y# Donde: • • • mn,0,2a/ para un solo ciclo. 7F8Y es el ciclo de trabajo expresado en porcentaje de 0 a 100. La amplitud de la señal cuadrada varía de 1 a 1. Para generar un tren de pulsos, basta con seguir la siguiente fórmula L ¿? ; T9 $G GHO$;8F7 7$ 8D 7 OF$9%9 1 1 [ L [ 9lFGD"m, 7F8Y# b [ L ; 3D 7 OF$9%9 2 2 La señal diente de sierra Para generar una señal diente de sierra se usa la función sawtooth, la cual tiene las siguientes formas: 9Go8%%8: "m# 9Go8%%: "m, 7F8Y# Donde: • • • mn,0,2a/. o;78: es el factor de simetría cuyo valor varía de de 0 a 1. Un valor de 0.5 genera una función triangular. La amplitud de la señal cuadrada varía de 1 a 1. MI. Mario Alfredo Ibarra Carrillo [Escribir texto] 2009 24