anÁlisis de la transformada de fourier discreta v2-19-12-2012

35
TRANSFORMADA DE FOURIER DISCRETA VENTAJAS Y LIMITACIONES PARA EL PROCESAMIENTO DIGITAL DE SEÑALES REALIZADO POR LIANA MARGARITA JULIO GUERRERO GABRIEL EDUARDO MEJÍA RUIZ Profesores NICOLÁS MUÑOS JUAN PABLO RIVERA UNIVERSIDAD DE ANTIOQUIA MAESTRÍA EN INGENIERÍA AUTOMATIZACIÓN Y CONTROL DEPARTAMENTO DE INGENIERÍA ELÉCTRICA 1

Upload: gabriel-mejia

Post on 08-Aug-2015

180 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

TRANSFORMADA DE FOURIER DISCRETA

VENTAJAS Y LIMITACIONES PARA EL PROCESAMIENTO DIGITAL DE SEÑALES

REALIZADO POR

LIANA MARGARITA JULIO GUERRERO

GABRIEL EDUARDO MEJÍA RUIZ

Profesores

NICOLÁS MUÑOS

JUAN PABLO RIVERA

UNIVERSIDAD DE ANTIOQUIA

MAESTRÍA EN INGENIERÍA

AUTOMATIZACIÓN Y CONTROL

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA

MEDELLÍN 2012

1

Page 2: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

CONTENIDO

1. INTRODUCCIÓN..........................................................................................................................3

2. OBJETIVOS..................................................................................................................................4

2.1. OBJETIVO GENERAL............................................................................................................4

2.2. OBJETIVOS ESPECÍFICOS.....................................................................................................4

3. MARCO TEÓRICO........................................................................................................................5

3.1. TRANSFORMADA DE FOURIER............................................................................................5

3.2. TRANSFORMADA DE FOURIER DISCRETA...........................................................................5

3.3. DERRAMAMIENTO ESPECTRAL (“LEAKAGE”)......................................................................6

3.5. INTERPOLACIÓN.................................................................................................................8

4. DESARROLLO............................................................................................................................10

4.1. Algoritmo usado para la adquisición de datos las señales sinusoidales mediante el DSC F2833510

4.2. Algoritmo usado para calcular la FFT de las señales sinusoidales con el DSC F28335......12

4.3. Algoritmo usado para simular la FFT de una Señal sinusoidal en Matlab.........................12

4.4. Algoritmo de Jain usado para la interpolación.................................................................15

5. RESULTADOS............................................................................................................................18

5.1. Análisis señal sinusoidal pura:..........................................................................................19

5.2. Análisis señal sinusoidal con ventana Hanning:................................................................19

5.3. Análisis señal sinusoidal con ventana Hamming:..............................................................20

5.4. Análisis señal sinusoidal con ventana Blackman:..............................................................21

5.5. Análisis del derramamiento espectral de la señal con diferentes ventanas:....................22

5.6. Análisis del algoritmo de interpolación propuesto por (Jain et al., 1979):.......................23

6. CONCLUSIONES........................................................................................................................25

7. REFERENCIAS BIBLIOGRÁFICAS.................................................................................................26

8. ANEXOS....................................................................................................................................27

2

Page 3: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

1. INTRODUCCIÓN

EL tratamiento digital de señales involucra un extenso conjunto de operaciones matemáticas realizadas en tiempo discreto. La transformada de Fourier discreta (DFT, por sus siglas en inglés) es una herramienta matemática potente que permite analizar las señales en el dominio de la frecuencia. Este tipo de análisis permiten caracterizar las señales y obtener información que no es evidente en el dominio temporal. A pesar de las grandes ventajas que posee la DFT para el análisis de señales digitales también tiene limitaciones de precisión en el espectro resultante como el derramamiento espectral.

El derramamiento espectral es una fuga de energía de los componentes espectrales originales de la señal hacia los componentes laterales a estos calculados por la FFT. Este derramamiento o fuga de energía se produce por las discontinuidades en los límites del bloque de las muestras de la señal a la cual se aplica la DFT o a la elección de una frecuencia de muestreo que no es un submúltiplo de la frecuencia fundamental de la señal objeto de análisis (Kadambe, 1992).

Existen al menos cuatro métodos para reducir el problema de derramamiento espectral:

1. El primero de ellos consiste en agregar ceros al final del bloque de datos (método conocido como “zero padding”). Con este método se aumenta la cantidad de datos usados en el cálculo de la FFT y así se aumenta la resolución frecuencial, lo cual conduce a que los componentes espectrales reales de la señal están más cerca de los componentes espectrales calculados por la FFT o DFT.

2. El segundo método consiste en la multiplicación de una función “ventana” que aproxime a cero la señal muestreada en los límites del tramo de muestras, en consecuencia se reducen las discontinuidades en los límites de dicho tramo.

3. El tercer método consiste en aumentar el tiempo de muestreo de tal forma que la resolución en frecuencia sea un submúltiplo de todas las frecuencias contenidas en la señal.

4. El cuarto método consiste en estimar los componentes espectrales correctos de la señal y la magnitud de estos mediante la interpolación de los componentes espectrales cercanos a la frecuencia real de la señal.

En este documento se hace un análisis comparativo de la aplicación de ventanas (Hanning, Hamming y Blackman) e interpolación (Jain) para reducir el derramamiento espectral en la DFT. La implementación de los algoritmos usado en el análisis se hace en el Controlador digital de señales (DSC, por sus siglas en ingles) F28335 fabricado por Texas instruments y en el software de modelamiento y simulación Matlab.

3

Page 4: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

2. OBJETIVOS

2.1. OBJETIVO GENERAL

Analizar el desempeño del DSC F28335 para la implementación de la DFT y diferentes métodos para reducir el derramamiento espectral.

2.2. OBJETIVOS ESPECÍFICOS

1. Obtener el espectro de frecuencia de varias señales en el DSC F28335 obtenidas desde el generador de señales AFG3021B de marca tektronicx.

2. Hacer un análisis comparativo de las transformadas de Fourier calculadas en el DSC y las obtenidas mediante simulación en Matlab.

3. Identificar los fenómenos de derramamiento espectral (“leakage”) y corrimiento del pico de la frecuencia fundamental de la señal analizada.

4. Comparar diferentes ventanas para corregir el derramamiento espectral en las señales analizadas.

5. Implementar la interpolación “Jain” para corregir el corrimiento de la frecuencia fundamental en la señal analizada y el derramamiento espectral.

4

Page 5: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

3. MARCO TEÓRICO

3.1. TRANSFORMADA DE FOURIER

La transformada de Fourier (FT, por sus siglas en inglés) es una potente herramienta matemática que es utilizada con frecuencia en ingeniería para pasar al dominio de la frecuencia una señal que esta en el dominio del tiempo. La FT es una herramienta esencial para el procesamiento de señales puesto que permite obtener información que no es evidente en el dominio temporal. Por ejemplo, la energía que se concentra en un ancho de banda determinado.

La FT también sirve para resolver ecuaciones diferenciales con mayor facilidad, razón por la cual se usa para el diseño de controladores clásicos de sistemas realimentados. El conocimiento de la densidad espectral y la entrada de un sistema permiten conocer la densidad espectral de la salida. La anterior es una característica muy útil para el diseño de filtros y sistemas de control.

La definición de la transformada de Fourier parte de la base de que toda señal, por compleja que sea, se puede descomponer en una suma de funciones periódicas simples de distinta frecuencia. Es decir, la FT permite conocer las frecuencias individuales de las funciones sinusoidales que forman la señal original.

En (PROAKIS, MANOLAKIS, Rio, & Castro, 1998) se define la Transformada de Fourier como:

x (w )=∫−∞

x (t)e jwt dt

La FT debe aplicarse de -∞ a +∞, lo que constituye una limitación importante debido a que el procesamiento de las señales se realiza en un ordenador o sistema de computo digital, para lo cual las señales deben tener una duración finita en el tiempo. Para solventar esta limitación se toman tramos de la señal original. En la mayoría de los casos este proceso consiste en multiplicar la señal por una ventana rectangular que aísle el tramo de la señal a analizar. Este proceso provoca la distorsión del espectro obtenido, ya que en los límites del tramo se producen discontinuidades que alteran el espectro original de la señal. Matemáticamente se representa como la convolución de la transformada de la señal con la transformada de la ventana.

Actualmente los cálculos de la transformada de Fourier son realizados en ordenadores o en dispositivos de procesamiento digital como microcontroladores o DSP. Por consiguiente la operación matemática de la FT se realiza en tiempo discreto y con una cantidad finita de muestras de la señal objeto de estudio.

3.2. TRANSFORMADA DE FOURIER DISCRETA

5

Page 6: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

El análisis en frecuencia de las señales discretas en el tiempo suele realizarse en un dispositivo de procesamiento digital, que puede ser un ordenador de propósito general, un arreglo de compuertas programables (FPGA por sus siglas en inglés) o un procesador digitales de señales (DSP por sus siglas en inglés). El análisis en frecuencia de la señal

discreta en el tiempo requiere que se convierta la secuencia en el dominio del tiempo x (n) en una representación equivalente en el dominio de la frecuencia mediante la

transformada de Fourier x (w). Sin embargo x (w).es una función continua de la

frecuencia y por lo tanto no es adecuada para su calculo de forma digital. Para el tratamiento digital del espectro de una señal obtenido a través de la transformada de Fourier, la representación matemática siguiente es la más adecuada (Albertí, 2010).

x (k )=∑0

N−1

x (n ) e− j2πkn

N , k=0,1,2 ,…… N−1

Esta relación permite transformar una secuencia finita de muestras de una señal muestreada en la secuencia de muestras de los componentes espectrales.

El cálculo de la transformada discreta de Fourier implica una alta carga computacional para el procesador en el cual se ejecute, ya que la aplicación de la transformada para una señal de N muestras requiere del calculo de N2 multiplicaciones complejas y N2-N sumas complejas. Sin embargo existen algoritmos eficientes que permiten calcular la transformada discreta de Fourier con una carga menor de cálculos computacionales. Estos algoritmos son conocidos como algoritmos de la transformada rápida de Fourier (FFT, por sus siglas en inglés).

3.3. DERRAMAMIENTO ESPECTRAL (“LEAKAGE”)

En el cálculo de la Transformada Discreta de Fourier se asume que la señal es periódica en cada tramo o bloque de muestras, es decir, que el bloque de muestras de la señal original que se utiliza para el cálculo de la transformada contiene exactamente uno o varios periodos de la señal original y que el bloque comienza en el cruce por cero de la señal. Sin embargo, éstos supuestos no se cumplen siempre. El resultado es una fuga de energía de los componentes espectrales originales de la señal hacia los componentes laterales. Este derramamiento o fuga de energía se produce por las discontinuidades en los límites del bloque de las muestras de la señal a la cual se aplica la transformada discreta de Fourier o a la elección de una frecuencia de muestreo que no es un múltiplo de la frecuencia fundamental de la señal objeto de análisis (Kadambe, 1992).

Existen al menos cuatro métodos para reducir el problema de derramamiento espectral:1) El primero de ellos consiste en agregar ceros al final del bloque de datos. Con este

método se aumenta la cantidad de datos usados en el cálculo de la FFT y así se aumenta la resolución frecuencial, lo cual conduce a que los componentes espectrales reales de la señal están mas cerca de los componentes espectrales calculados por la FFT o DFT.

6

Page 7: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

2) El segundo método consiste en la multiplicación de una función “ventana” que aproxime a cero la señal muestreada en los límites del tramo de muestras, en consecuencia se reducen las discontinuidades en los límites de dicho tramo.

3) El tercer método consiste en aumentar el tiempo de muestreo de tal forma que la resolución en frecuencia sea un submúltiplo de todas las frecuencias contenidas en la señal.

4) El cuarto método consiste en estimar los componentes espectrales correctos de la señal y la magnitud de estos mediante la interpolación de los componentes espectrales cercanos a la frecuencia real de la señal.

Las discontinuidades en los límites de la ventana no son el único problema en el calculo de la FFT o de la DFT. En la mayoría de los casos la frecuencia de muestreo seleccionada no es un submúltiplo de la frecuencia fundamental de la señal que se pretende analizar. Esto conduce a que la frecuencia fundamental real de la señal se ubique entre dos componentes espectrales calculados por la FFT. Sobre estos componentes y sus iguales más cercanos se derrama la energía contenida en el componente frecuencia real de la señal. Diferentes métodos de interpolación se constituyen como una herramienta practica para corregir este fenómeno. La interpolación busca corregir la ubicación real de la frecuencia de la señal en el espectro, su magnitud y fase.

3.4. VENTANAS

Las ventanas son funciones matemáticas usadas en el análisis y el procesamiento de señales para evitar las discontinuidades al principio y al final de los bloques de datos de la señal que se pretende analizar mediante la FFT (Shum & Yu, 1996). Las ventanas eliminan las discontinuidades de la señal en los límites del tramo de muestras mediante la aproximación de la señal a cero en dichos límites.

La función ventana se multiplican por el bloque de datos que representa la señal objeto de estudio obligando a la señal a ser periódica. Existen diferentes tipos de ventanas dentro de estas la ventana rectangular es la más simple. Sin embargo es la ventana que produce mayor derramamiento espectral. La ventana rectangular se define como:

Así, cuando se multiplica una señal x (t ) por esta ventana, se obtiene únicamente los

primeros segundos de la señal. En lugar de analizar la señalx (t ), se analiza la señal

truncada:xw ( t )=x ( t )h¿). Cuando se pasa al dominio de la frecuencia mediante la

transformada de Fourier se obtiene X w ( f )=X ( f ) H ¿). Lo anterior implica que la ventana

puede ser aplicada antes o después de calcular la transformada de Fourier de la señal.

7

Page 8: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

Las ventanas reducen el efecto del derramamiento pero no pueden eliminarlo completamente. En realidad, las ventanas cambian la forma del derramamiento. Cada ventana afecta el espectro de la señal de forma diferente y tiene ventajas y desventajas comparativas respecto a las demás. La selección apropiada del tipo de ventana depende del objetivo que se busque alcanzar al reducir el derramamiento. En la tabla siguiente se hace una descripción de las características de diferentes tipos de ventanas.

VentanaMejor para este tipo de

señal

Resolución en frecuencia

Derramamiento espectral

Precisión en amplitud

Barlett Aleatoria Buena Equitativo Equitativo

BlackmanAleatoria o

mixtaMalo Mejor Bueno

Flat top Sinusoidal Malo Bueno MejorHanning Aleatoria Bueno Bueno Equitativo

Hamming Aleatoria Buena Equitativo EquitativoKaiser-Bessel Aleatoria Equitativo Bueno Bueno

None (boxcar)Transiente o

muestreo síncrono

Mejor Malo Malo

Tukey Aleatoria Bueno Malo MaloWelch Aleatoria Bueno Bueno Equitativo

Tabla 1. Desempeño de las ventanas para señales aleatorias, sinusoidales, transientes y mixtas.

3.5. INTERPOLACIÓN

En muchas aplicaciones que incluyen el procesamiento de señales es indispensable discriminar con precisión el contenido en frecuencia de una señal. El calculo de la DFT o FFT es el método más común para hacer estimaciones de frecuencia. Sin embargo, las limitaciones computacionales restringen el número de muestras que pueden ser procesadas por la DFT o por la FFT, por consiguiente se afecta la resolución en frecuencia del espectro proporcionado por la DFT. Si la frecuencia real de la señal no cae en alguno de los componentes frecuenciales de la DFT se produce un derramamiento de la energía en los componentes aledaños a la frecuencia real de la señal. La magnitud de estos componentes se puede usar para determinar la frecuencia real de la señal.

(Quinn, 1994) desarrollo un método simple y eficaz para calcular la frecuencia correcta de la señal analizada con base en los tres componentes espectrales aledaños al pico de mayor magnitud en la salida de la DFT. Un método similar se muestra en (Grandke, 1983) quien utiliza el pico de mayor magnitud en la salida de la DFT y el componente adyacente. Ambos métodos proporcionan algoritmos eficientes para la ubicación correcta del componente espectral. Aunque no proveen una corrección de la magnitud del componente. En (Jain, Collins, & Davis, 1979) se propone un algoritmo similar. La desventaja de los tres métodos anteriormente planteados es la necesidad inevitable de

8

Page 9: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

usar divisiones para el cálculo de los algoritmos pero los DSP y DSC no poseen instrucciones especializadas para el cálculo de divisiones, de hay que estas deben ser evitadas al máximo.

Existen dos algoritmos que poseen ventajas respecto de los algoritmos mencionados anteriormente. El primero es la interpolación por ajuste de la curva cuadrática, cuyo desempeño es similar al presentado por el método de Quinn, pero solo requiere de una división y además proporciona una estimación de la magnitud del componente espectral. El segundo método no requiere divisiones, pero solo proporciona la estimación de la magnitud de una sola frecuencia predeterminada. Este método se usa regularmente para estimar la magnitud del componente espectral ubicado en el medio de los componentes espectrales calculados por la DFT o la FFT.

A continuación se presenta un resumen de algunos de los algoritmos usados para la interpolación en la DFT y FFT.

k = índice del componente de máxima magnitud en la DFT.

X[i] = magnitud del i-eximo componente de la DFT.

K’= Ubicación calculada del componente frecuencial de la señal real.

Método Algoritmo

Primer estimador de Quinn

ap = (X [k + 1]. r * X [k]. r + X [k + 1]. i * X [k]. i) / (X [k]. r * X [k]. r + X [k]. i * X [k]. i)dp =-ap / (1,0 - ap)am = (X [k - 1] r * X [k] r + X [k - 1].... i * X [k] i).. / (X [k] r * X [k] r + X [k]. i * X [k]. i)dm = am / (1,0 - am)si (dp> 0) y (dm> 0) entoncesd = dpmásd = dmfinal= k 'k + d

Segundo estimador de Quinn:

tau (x) = 1/4 * log (3x ^ 2 + 6x + 1) - sqrt (6) / 24 * log ((x + 1 - sqrt (2/3)) / (x + 1 sqrt + (2 / 3)))ap = (X [k + 1]. r * X [k]. r + X [k +1]. i * X [k]. i) / (X [k]. r * X [k]. r + X [k]. i * X [k]. i)dp =-p / (1 - p)am = (X [k - 1] r * X [k] r + X [k - 1].... i * X [k] i).. / (X [k] r * X [k] r + X [k]. i * X [k]. i)dm = am / (1 - am)d = (dp + dm) / 2 + tau (dp * dp) - tau (dm * dm)= k 'k + d

Método de Jain:

y1 = | X [k-1] |y2 = | X [k] |y3 = | X [k +1] |si y1> y3 entoncesa = y2 / y1d = a / (1 + a)k '= k - 1 + dmása = y3 / y2d = a / (1 + a)= k 'k + dfinal

9

Page 10: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

Tabla 2: Algoritmos de interpolación para la DFT o la FFT

10

Page 11: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

4. DESARROLLO

Se pretende hacer un análisis comparativo de la aplicación de ventanas (Hanning, Hamming y Blackman) e interpolación (Jain) para reducir el derramamiento espectral en la DFT. La implementación de los algoritmos usado en el análisis se hace en el Controlador digital de señales (DSC, por sus siglas en ingles) F28335 fabricado por Texas instruments y en el software de modelamiento y simulación Matlab.

Para lograr la comparación, primero se muestrean en el DSC cada una de dos señales sinusoidales, a continuación se multiplica el vector que almacena las muestras de la señal por cada una de cuatro ventanas (Hanning, Hamming, Blackman y rectangular), posteriormente se calcula el algoritmo de la FFT para cada una de los productos resultantes. En el software de simulación Matlab se reproducen las señales y cálculos de la FFT. Luego los resultados son analizados y comparados.

A continuación se describe detalladamente cada una de las etapas de implementación de los algoritmos usados en la práctica

4.1. Algoritmo usado para el muestreo de las señales sinusoidales con el DSC F28335

A partir del generador de señales AFG3021B de la marca Tektronix se generan dos señales sinusoidales de 1kHz y 2 kHz respectivamente. Dichas señales son usadas para experimentar con los diferentes algoritmos que se exponen en este documento y que son programados en el DSC de referencia F28335. A las señales sinusoidales se les realiza el proceso de conversión análogo a digital a través del periférico ADC del DCS. Este periférico se caracteriza por tener una resolución de 12 bits, de hay que los niveles de

cuantización de la señal están comprendidos entre 0 y 212−1, es decir, entre 0 y 4095.

El algoritmo usado para la configuración del periférico ADC del DSC es el siguiente:

11

Page 12: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

12

void InitAdc(void){ extern void DSP28x_usDelay(Uint32 Count);

EALLOW;SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;//habilita velocidad alta para el

reloj //del ADC.ADC_cal();//Calibra las entradas analogas.EDIS;

AdcRegs.ADCTRL3.all = 0x00E0; // Power up bandgap/reference/ADC circuits DELAY_US(ADC_usDELAY); // Delay before converting ADC channels

AdcRegs.ADCTRL1.all = 0; //Inicializa a cero el registro de control AdcRegs.ADCTRL1.bit.ACQ_PS = 7; // 7 = 8 x ADCCLK; define la longitud de la ventana de muestreo AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // 1 = modo secuenciador en cascada (maquina de 16 estados) AdcRegs.ADCTRL1.bit.CPS = 0; // Divide la frecuencia del reloj del adc por 1 AdcRegs.ADCTRL1.bit.CONT_RUN = 0; // Detiene el periferico despues de hacer la secuencia de lectura

AdcRegs.ADCTRL2.all = 0; //inicializa a cero todo el registro AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // 1=habilita la interrupcion de la secuencia 1 AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1; // 1= Secuencia por software AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1 = 0; // 0= interrupcion despues de cada fin de la secuencia AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2 = 1; // 1=habilita la interrupcion de la secuencia 1 AdcRegs.ADCTRL2.bit.SOC_SEQ2 = 1; // 1= Secuencia por software AdcRegs.ADCTRL2.bit.INT_MOD_SEQ2 = 0; // 0= interrupcion despues de cada fin de la secuencia

AdcRegs.ADCTRL3.bit.ADCCLKPS = 6; // ADC clock: FCLK = HSPCLK / (2 * ADCCLKPS) // HSPCLK = 150MHz // FCLK = 12.5 MHz AdcRegs.ADCMAXCONV.all = 0x0007; // 8 conversiones en esta secuencia, CONV00, CONV01

AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0; // Setup ADCINA0 as 1st SEQ1 conv. AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 1; // Setup ADCINA1 as 2nd SEQ1 conv. AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 2; // Setup ADCINA0 as 1st SEQ1 conv. AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 3; // Setup ADCINA1 as 2nd SEQ1 conv. AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 4; // Setup ADCINA0 as 1st SEQ1 conv. AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 5; // Setup ADCINA1 as 2nd SEQ1 conv.

Page 13: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

4.2. Algoritmo usado para calcular la FFT de las señales sinusoidales con el DSC F28335

Para la implementación de la FFT de 256 puntos se crean tres vectores que almacenan los valores de las ventanas Hanning, Hamming y blackman. Posteriormente cada una de estas ventanas es multiplicada por el vector que almacena los datos de las muestras de la señal sinusoidal y se calcula FFT al resultado del anterior producto. La señal senusoidales son muestreadas cada 100uS. El resultado de la FFT se almacena en el vector RFFTmagbuff. El calculo de la FFT se hace gracias a las funciones contenidas en la librería FPU.

El código implementado se presenta a continuación:

4.3. Algoritmo usado para simular la FFT de una Señal sinusoidal en Matlab

El cálculo de la Transformada de Fourier de un vector de datos en Matlab se realiza con el comando FFT(X). Las ventanas Hamming, Hanning y Blackman de una longitud

13

#define RFFT_STAGES 8//Cantidad de mariposas usadas en la transformada rápida Log2(tamaño de fft).#define RFFT_SIZE (1 << RFFT_STAGES)float32 RFFTinBuff[RFFT_SIZE]; float32 RFFToutBuff[RFFT_SIZE]; float32 RFFTF32Coef[RFFT_SIZE]; // buffer de los Twiddles float32 RFFTmagBuff[RFFT_SIZE / 2 + 1];unsigned int senal_adc_0[RFFT_SIZE]; buffer con la señal muestreada

unsigned char fft_enable = 0;float hanning[RFFT_SIZE];float hamming[RFFT_SIZE];float blackman[RFFT_SIZE];float omega;RFFT_F32_STRUCT rfft;

omega = 2 * PI / (RFFT_SIZE - 1);for (i = 0; i < RFFT_SIZE; i++) {

hanning[i] = (0.5 - 0.5 * cos(omega * i)); //Ventana hanninghamming[i] = (0.54 - 0.46 * cos(omega * i)); //Ventana Hammingblackman[i] = (0.42 - 0.5 * cos(omega * i) + 0.08 * cos(2 * omega * i)); //Ventana

blackman}

while (1) {if (fft_enable) {

fft_enable = 0;for (i = 0; i < RFFT_SIZE; i++) {

RFFTinBuff[i] = (float) (senal_adc_0[i] * 3) / 4095; //Clean up output //buffer

RFFTinBuff[i] = RFFTinBuff[i] * hanning[i];}

rfft.FFTSize = RFFT_SIZE;rfft.FFTStages = RFFT_STAGES;rfft.InBuf = &RFFTinBuff[0]; // buffer de entradarfft.OutBuf = &RFFToutBuff[0]; // buffer de salidarfft.CosSinBuf = &RFFTF32Coef[0]; // buffer con los Twiddle factorrfft.MagBuf = &RFFTmagBuff[0]; // buffer con las magnitudes

RFFT_f32_sincostable(&rfft); //Calcula los twiddle factorRFFT_f32u(&rfft); //Calcula la FFT realRFFT_f32_mag(&rfft); //Calcula la magnitud

}

Page 14: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

determinada se calculan con los comandos hamming(L), hann(L) y blackman(L) respectivamente.

La señal en el dominio del tiempo continuo a tratar es x=1.5∗sen (2∗π∗1000∗t )+1.5, la

cual se convierte al dominio discreto. El procedimiento para la conversión es el siguiente:

x (n )=x (nT )

T=1/ f s

f s=10000Hz

Por lo cual la señal en el dominio del tiempo continúo se rescribe en el dominio del tiempo discreto como:

x=1.5∗sen (2∗π∗1000∗n )+1.5

10000

x=1.5∗sen (0.2∗π∗n )+1.5

Para el cálculo de la transformada de Fourier de esta señal en Matlab primero se crea un vector n de 256 valores.

Se calcula la señal seno discreta como x=1.5∗sen (0.2∗π∗n )+1.5 a la cual se aplica la

transformada de Fourier con el comando FFT. Luego se recalcula el eje x de la transformada para solo tomar los N/2 puntos de la FFT ya que con solo estos es posible tener toda la información del espectro debido a la simetría de la transformada cuando se aplica a una señal real. Posteriormente se obtiene la función ventana del mismo tamaño que la FFT con los comandos hamming(L), hann(L) o blackman(L), función que se multiplica con la señal seno para finalmente obtener el espectro de esta nueva señal.

El código en Matlab para la FT de 256 puntos de una señal seno de 1k empleando una ventana Hamming se muestra a continuación:

14

Page 15: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

15

n=0:1:255;fs=10000; % frecuencia de muestreoN=256; % número de puntos de la DTFx=1.5*sin(0.2*pi*n)+ 1.5;% señal seno discretafd=0:0.0001:0.0255;% eje x para la señal seno discretafigure(1)plot(fd,1.5*sin(2000*pi*fd)+1.5,'g'); % gráfica la señal seno en el tiempoxlabel('Tiempo (ms)')ylabel('Amplitud')title('1.5*Sin(2000*pi*t)+1.5 y 1.5*Sin(0.2*pi*n)+1.5')grid on

Trans=fft(x); % calcula la transformada de Fourierfigure (2)Axe=0:fs/N:(fs-1)/2; % Cálculo del eje x para la transformadafor i=1:128 Trans2(i)= Trans(i);% se calcula solo N/2 puntos de la transformada % de Fourier debido a la simetria de esta.endplot(Axe,abs(Trans2)) % se grafica la magnitud de la DTFxlabel('Frecuencia (Hz)')ylabel('Amplitud')title('Espectro de la señal original')grid on L=256; % longitud de la ventana w = hamming(L);% calculo de la ventana hammingwHamming=x.*w';% se multiplica la señal seno discreta por la ventanafigure(3)plot(n,wHamming)% grafica la señal seno después de ser multiplicada % por la ventanaxlabel('Muestras')ylabel('Amplitud')title('Señal multiplicada por Ventana Hamming')grid on fftHamming=fft(wHamming);% calcula la DFT de la señal multiplicada % por la ventana figure (4) for j=1:128 fftH2(j)= fftHamming(j); %se calcula solo N/2 puntos de la transformadaendplot(Axe,abs(fftH2)) % se grafica la magnitud de la DTFxlabel('Frecuencia (Hz)')ylabel('Amplitud')title('Espectro de la señal con ventana Hamming')grid on

Page 16: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

4.4. Algoritmo de Jain usado para la interpolación

El algoritmo de Jain es un método simple que permite estimar la frecuencia fundamental real de una señal a partir de los componentes espectrales calculados por la FFT o la DFT. Su simpleza permite que se logren buenos resultados con un bajo costo computacional.

Para la implementación del algoritmo de Jain se creo la función máximo. Esta permite determinar el valor máximo del vector de magnitud de la FFT de 32 puntos y el índice del vector correspondiente a este valor. Conociendo este índice se identifican los índices y valores de magnitud de los dos componentes aledaños. Posteriormente se determina si el componente aledaño de mayor amplitud está a la derecha o la izquierda para poder conocer cual es el respectivo valor del desplazamiento a realizar en frecuencia. Este desplazamiento en frecuencia se calcula y almacena en la variable kprima (k’). Conociendo este desplazamiento se recalcula la transformada de Fourier siguiendo la siguiente ecuación:

X (k ' )=|∑n=0

n−1

x (n)e− j (2πk' n)

N |El algoritmo implementado en el DSC F28335 es el siguiente:

16

Page 17: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

17

#define RFFT_STAGES 5//Cantidad de mariposas usadas en la transformada rápida Log2(tamaño de fft).#define RFFT_SIZE (1 << RFFT_STAGES)float32 RFFTinBuff[RFFT_SIZE]; float32 RFFToutBuff[RFFT_SIZE]; float32 RFFTF32Coef[RFFT_SIZE]; // buffer de los Twiddles float32 RFFTmagBuff[RFFT_SIZE / 2 + 1];unsigned int senal_adc_0[RFFT_SIZE]; buffer con la señal muestreada

unsigned char fft_enable = 0;float hanning[RFFT_SIZE];float hamming[RFFT_SIZE];float blackman[RFFT_SIZE];float omega;RFFT_F32_STRUCT rfft;

float32 max; float32 index;float32 alfa;float32 delta;float32 kprima;float32 A = 0, B = 0;float32 Xfundamental;unsigned char n;

omega = 2 * PI / (RFFT_SIZE - 1);for (i = 0; i < RFFT_SIZE; i++) {

hanning[i] = (0.5 - 0.5 * cos(omega * i)); //Ventana hanninghamming[i] = (0.54 - 0.46 * cos(omega * i)); //Ventana Hammingblackman[i] = (0.42 - 0.5 * cos(omega * i) + 0.08 * cos(2 * omega * i));

//Ventana blackman}

void maximo(float32 *pvector, float32 *pmax, float32 *pindex, int tamano_vector) {int i = 0;float32 max; //variable que contiene el valor del máximo del vector de magnitud de la FFTfloat32 index; // variable con el índice correspondiente al valor máximo

for (i = 0; i < tamano_vector / 2; i++) {if (pvector[i] > max) {

max = pvector[i];index = i;

}}*pmax = max;while (1) {

if (fft_enable) {fft_enable = 0;for (i = 0; i < RFFT_SIZE; i++) {

RFFTinBuff[i] = (float) ((senal_adc_0[i]-1.5) * 3) / 4095;RFFTinBuff[i] = RFFTinBuff[i] * hanning[i];

}

rfft.FFTSize = RFFT_SIZE;rfft.FFTStages = RFFT_STAGES;rfft.InBuf = &RFFTinBuff[0]; // buffer de entradarfft.OutBuf = &RFFToutBuff[0]; // buffer de salidarfft.CosSinBuf = &RFFTF32Coef[0]; // buffer con los Twiddle factorrfft.MagBuf = &RFFTmagBuff[0]; // buffer con las magnitudes

RFFT_f32_sincostable(&rfft); //Calcula los twiddle factorRFFT_f32u(&rfft); //Calcula la FFT realRFFT_f32_mag(&rfft); //Calcula la magnitud

Page 18: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

18

maximo(RFFTmagBuff, &max, &index, RFFT_SIZE);

if (RFFTmagBuff[(int) index - 1] > RFFTmagBuff[(int) index + 1]) {alfa = RFFTmagBuff[(int) index] / RFFTmagBuff[(int) index

+ 1];delta = alfa / (alfa + 1);kprima = index - 1 + delta;

} else if (RFFTmagBuff[(int) index + 1]> RFFTmagBuff[(int) index - 1]) {

alfa = RFFTmagBuff[(int) index + 1] / RFFTmagBuff[(int) index];

delta = alfa / (alfa + 1);kprima = index + delta;

}

A = 0;B = 0;

Xfundamental = 0;

for (n = 0; n < RFFT_SIZE; n++) {A += RFFTinBuff[n] * cos(2 * PI * kprima * n / RFFT_SIZE);B += RFFTinBuff[n] * sin(2 * PI * kprima * n / RFFT_SIZE);

}Xfundamental = sqrt(pow((double)A, 2) + pow((double)B, 2));

Page 19: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

5. RESULTADOS

Las figuras y tablas siguientes permiten hacer análisis comparativo entre la FFT implementada en el DSC F28335 y la simulación de la FFT realizada con el software Matlab, adicionalmente se hace un análisis comparativo de las ventanas Hanning, Hamming y Blackman y como mejora el derramamiento espectral al usar estas ventanas y la interpolación Jain.

El programa Code Composer Studio (CCS, por sus siglas en ingles) permite obtener las gráficas de las señales adquiridas por el DSC y su transformada de Fourier mediante una conexión en tiempo real que se tiene entre un ordenador y el DSC.

Las figuras 1, 5, 9 y 13 muestran la señal sinusoidal con 3Vpp de amplitud, con un offset de 1.5Vdc y la frecuencia de 1KHz y la multiplicación de esta señal con las ventanas Rectangular, Hanning, Hamming y Blackman respectivamente.

La figura 2, 6, 10, 14 muestra el espectro de frecuencia de las señales mostradas en las figura 1, 5, 9 y 13 respectivamente y permite identificar el pico máximo de magnitud de la FFT calculada con el DSC F28335. El componente frecuencial numero 26 corresponde al pico máximo en las figuras y nos permite identificar la frecuencia fundamental de la señal sinusoidal mediante el siguiente cálculo:

f ( Hz )= N ° muestra∗Frecuencia demuestreopuntos de la FFT

=26∗10000Hz256

=1015Hz

Adicionalmente en estas figuras se aprecia el componente DC en el espectro producido por el offset de 1,5V de la señal sinusoidal.

La figuras 3, 7, 11 y 15 muestran las señales sinusoidales generadas mediante simulación en Matlab y la multiplicación de estas con las ventanas Rectangular, Hanning, Hamming y

Blackman respectivamente. Se implemento la función 1.5 sen (2πt )+1.5 , y en tiempo

discreto mediante la función 1.5 sen (0.2πn )+1.5.

La figura 4, 8, 12, 16 muestra el espectro de frecuencia de las señales mostradas en las figura 1, 5, 9 y 13 respectivamente y permite identificar el pico máximo de magnitud de la FFT calculada con Matlab.

19

Page 20: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

5.1. Señal sinusoidal pura, ventana rectangular:

Fig 1. señal sinusoidal pura de 1kHz (DSC) Fig 2. FFT de la señal sinusoidal pura de 1kHz (DSC)

0 0.005 0.01 0.015 0.02 0.025 0.030

0.5

1

1.5

2

2.5

3

X: 0.001Y: 1.5

Tiempo (ms)

Am

plit

ud

1.5*Sin(2000*pi*t)+1.5

0 500 1000 1500 2000 2500 3000 3500 4000 4500 50000

50

100

150

200

250

300

350

400

X: 1016Y: 144.1

Frecuencia (Hz)

Am

plitu

d

Espectro de la señal original

Fig 3. señal sinusoidal pura de 1kHz (Matlab) Fig 4. FFT de la señal sinusoidal pura de 1kHz (Matlab)

5.2. Señal sinusoidal con ventana Hanning:

Fig 5. señal sinusoidal 1kHz multiplicada por la ventana de Hanning (DSC)

Fig 6. FFT de la señal sinusoidal de 1kHz multiplicada por la ventana de Hanning (DSC)

20

Page 21: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

0 50 100 150 200 250 3000

0.5

1

1.5

2

2.5

3

Muestras

Am

plitu

d

Señal seno multiplicada por Ventana Hanning

0 500 1000 1500 2000 2500 3000 3500 4000 4500 50000

20

40

60

80

100

120

140

160

180

200

X: 1016Y: 86.23

Frecuencia (Hz)

Am

plitu

d

Espectro de la señal seno con ventana Hanning

Fig 7. señal sinusoidal de 1kHz multiplicada por la ventana de Hanning (Matlab)

Fig 8. FFT de la señal sinusoidal de 1kHz multiplicada por la ventana de Hanning (Matlab)

En la figura 5 se observan algunos saltos irregulares debido a que no hay sincronización del cruce por cero de la señal con el inicio del proceso de muestreo.

5.3. Señal sinusoidal con ventana Hamming:

Fig 9. señal sinusoidal 1kHz multiplicada por la ventana de Hamming (DSC)

Fig 10. FFT de la señal sinusoidal de 1kHz multiplicada por la ventana de Hamming (DSC)

0 50 100 150 200 250 3000

0.5

1

1.5

2

2.5

3

Muestras

Am

plitu

d

Señal seno multiplicada por Ventana Hamming

0 500 1000 1500 2000 2500 3000 3500 4000 4500 50000

50

100

150

200

250

X: 1016Y: 90.86

Frecuencia (Hz)

Am

plitu

d

Espectro de la señal seno con ventana Hamming

Fig 11. señal sinusoidal de 1kHz multiplicada por la ventana de Hamming (Matlab)

Fig 12. FFT de la señal sinusoidal de 1kHz multiplicada por la ventana de Hamming (Matlab)

21

Page 22: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

5.4. Señal sinusoidal con ventana Blackman:

Fig 13. señal sinusoidal 1kHz multiplicada por la ventana de Blackman (DSC)

Fig 14. FFT de la señal sinusoidal de 1kHz multiplicada por la ventana de Blackman (DSC)

0 50 100 150 200 250 3000

0.5

1

1.5

2

2.5

3

Muestras

Am

plitu

d

Señal seno multiplicada por Ventana Blackman

0 500 1000 1500 2000 2500 3000 3500 4000 4500 50000

20

40

60

80

100

120

140

160

180

X: 1016Y: 74.14

Frecuencia (Hz)

Am

plitu

d

Espectro de la señal con ventana Blackman

Fig 15. señal sinusoidal de 1kHz multiplicada por la ventana de Blackman (Matlab)

Fig 16. FFT de la señal sinusoidal de 1kHz multiplicada por la ventana de Blackman (Matlab)

Frecuencia en el DSC [Hz]

Frecuencia en el Matlab[Hz]

Magnitud en el DSC

Magnitud en el Matlab

FFT (sin ventana) 1015.6 1016 149 144.1FFT (Ventana Hanning) 1015.6 1016 88.5 86.23FFT (Ventana Hamming) 1015.6 1016 93.7 90.86FFT (Ventana Blackman) 1015.6 1016 75.6 74.14

Tabla 3. Comparación de la implementación de la la FFT en el DSC F28335 y la simulación en Matlab.

La tabla 3 resume los resultados obtenidos al simular en Matlab e implementar en el DSC F28335 la FFT de una señal sinusoidal con diferentes ventanas. En este cuadro se puede apreciar que FFT calculada con el DSC y con Matlab son semejantes. La frecuencia fundamental de la señal encontrada es similar en las dos implementaciones. La magnitud del componente espectral de la frecuencia fundamental difiere levemente entre las dos implementaciones. Por consiguiente el cálculo de la FFT usando el DSC F28335 produce resultados excelentes, que confirman que el DSC es un candidato idóneo para aplicaciones de procesamiento de señales donde se requiera calcular la FFT. Por otra parte se observa la gran diferencia que existe entre las magnitudes del espectro fundamental calculado con las diferentes ventanas. Estos resultados se deben a que la ventana modifica considerablemente la forma de onda de la señal a la cual se le calcula la FFT.

22

Page 23: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

5.5. Derramamiento espectral de la señal con diferentes ventanas:

Fig 17. FFT de la señal sinusoidal pura de 1kHz (DSC)Fig 18. FFT de la señal sinusoidal con ventana Hanning de 1kHz (DSC)

Fig 19. FFT de la señal sinusoidal con ventana Hamming de 1kHz (DSC)

Fig 20. FFT de la señal sinusoidal con ventana Blackman de 1kHz (DSC)

Al comparar los espectros de las señales ventaneadas mediante Hanning, Hamming y Blackman se observa que la ventana que causa la mayor disminución del derramamiento espectral es la ventana Hamming. La aplicación de esta ventana también brinda la magnitud del componente fundamental más cercano a la magnitud del componente fundamental de la señal seno con la ventana rectangular. En concordancia esta ventana se recomienda cuando sea necesario mejorar el derramamiento espectral al calcular la FFT de una señal sinusoidal.

23

Page 24: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

5.6. Análisis del algoritmo de interpolación propuesto por (Jain et al., 1979):

Fig 21 Espectro obtenido mediante la implementación de una FFT de 32 puntos en el DSC para una señal seno de 2kHz.

La figura 21 muestra el espectro de la señal seno de 2kHz, El espectro permite identificar el componente de la frecuencia fundamental como el pico de máxima magnitud. De la figura se observa que la frecuencia fundamental calculada de esta forma corresponde a:

f = N ° muestra∗Frecuencia demuestreopuntos de la FFT

=6∗10000Hz32

=1875Hz

Esta frecuencia fundamental calculada difiere considerablemente con la frecuencia real de la señal sinusoidal muestreada. El error en el cálculo se debe a la pobre resolución espectral usada en el cálculo de la FFT. Debido a que la frecuencia fundamental de la señal no se ubica en ninguno de los 32 componentes espectrales de la FFT, la energía contenida en espectro se distribuye en los componentes más cercanos. El algoritmo de interpolación propuesto por Jain, ayuda a resolver esta limitación del cálculo de la FFT.

Fig 22. Resultados obtenidos mediante implementación en el DSC F28335 del algoritmo de Jain.

La figura 22 muestra los resultados al ejecutar el algoritmo en el DSC. Delta corresponde a la distancia que debe existir entre la frecuencia real del componente fundamental y el componente aledaño de mayor amplitud calculado por la FFT. También se muestra el valor de kprima que es el valor del desplazamiento a realizar en frecuencia y que corresponde al valor real de la frecuencia de la señal sinusoidal y Xfundamental que corresponde a la magnitud del componente fundamental real de la señal obtenida mediante la interpolación.

24

Page 25: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

De acuerdo a los resultados de la interpolación la frecuencia fundamental real de la señal corresponde a:

f ( Hz )= Kprima∗Frecuenciade muestreopuntosde la FFT

=6.46∗10000Hz32

=2018Hz

Este resultado se aproxima más a la frecuencia de la señal sinusoidal real. La magnitud calculada por la interpolación es de 12.653. este resultado muestra una disminución del derramamiento espectral, ya que la magnitud calculada luego de la interpolación es mayor que la magnitud calculada por la FFT de 32 puntos.

25

Page 26: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

6. CONCLUSIONES

De los resultados obtenidos al simular en Matlab e implementar en el DSC F28335 la FFT de una señal sinusoidal con diferentes ventanas se puede apreciar que la FFT calculada con el DSC y con Matlab son similares. La frecuencia fundamental encontrada con ambas implementaciones es de 1016 Hz aproximadamente. La magnitud del componente espectral de la frecuencia fundamental difiere levemente entre las dos implementaciones. Lo anterior permite concluir que el DSC F28335 y las funciones contenidas en la librería FPU constituyen una excelente herramienta para el cálculo de la FFT y la aplicación de ventanas a señales análogas de forma sinusoidal.

Los resultados permiten observa la gran diferencia que existe entre las magnitudes del espectro fundamental de la señal sinusoidal calculadas al aplicar diferentes ventanas. Estos resultados se deben a que la ventana modifica considerablemente la forma de onda, principalmente la amplitud de la señal a la cual se le calcula la FFT. Al comparar los espectros de las señales ventaneadas mediante Hanning, Hamming y Blackman se observa que la ventana que causa la mayor disminución del derramamiento espectral es la ventana Hamming. La aplicación de esta ventana también brinda la magnitud del componente fundamental más cercano a la magnitud del componente fundamental de la señal seno con la ventana rectangular. En concordancia esta ventana se recomienda cuando sea necesario mejorar el derramamiento espectral al calcular la FFT de una señal sinusoidal.

La FFT es una herramienta adecuada para el cálculo del espectro de señales. Sin embargo al disminuir la cantidad de puntos de la FFT se disminuye la resolución frecuencial y se introduce un error que puede llegar a ser considerable dependiendo de la precisión requerida en la aplicación. En estas ocasiones los algoritmos de interpolación son en una excelente alternativa. Dentro de estos algoritmos el de Jain es un método simple y eficiente que permite estimar la frecuencia fundamental real de una señal a partir de los componentes espectrales calculados por la FFT o la DFT. Su simpleza permite que se logren buenos resultados con un bajo costo computacional.

26

Page 27: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

7. REFERENCIAS BIBLIOGRÁFICAS

Albertí, E. B. (2010). Procesado digital de señales - 2: Fundamentos para comunicaciones y control. Universitat Politècnica de Catalunya. Retrieved from http://books.google.com.co/books?id=p7BmrPIX1scC

Grandke, T. (1983). Interpolation Algorithms for Discrete Fourier Transforms of Weighted Signals. Instrumentation and Measurement, IEEE Transactions on. doi:10.1109/TIM.1983.4315077

Jain, V. K., Collins, W. L., & Davis, D. C. (1979). High-Accuracy Analog Measurements via Interpolated FFT. Instrumentation and Measurement, IEEE Transactions on. doi:10.1109/TIM.1979.4314779

Kadambe, S. (1992). On the window selection and the cross terms that exist in the magnitude squared distribution of the short time Fourier transform. Statistical Signal and Array Processing, 1992. Conference Proceedings., IEEE Sixth SP Workshop on. doi:10.1109/SSAP.1992.246839

PROAKIS, J. G. A., MANOLAKIS, D. G. A., Rio, V. S., & Castro, J. L. A. (1998). Tratamiento digital de señales: problemas y ejercicios resueltos. Prentice-Hall. Retrieved from http://books.google.com.co/books?id=xWXCQgAACAAJ

Quinn, B. G. (1994). Estimating frequency by interpolation using Fourier coefficients . Signal Processing, IEEE Transactions on. doi:10.1109/78.295186

Shum, P., & Yu, S. F. (1996). Improvement of Fourier series analysis technique by time-domain window function. Photonics Technology Letters, IEEE. doi:10.1109/68.536656

27

Page 28: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

8. ANEXOS

Anexo 1: Entorno de desarrollo del CCS usado en la programación del DSC

Anexo 2: Generador y osciloscopio usados en la practica

28

Page 29: ANÁLISIS DE LA TRANSFORMADA DE FOURIER DISCRETA v2-19-12-2012

Anexo 3. DSC F28335 usado en la practica

Anexo 4. Conexiones entre el sistema de desarrollo, el generador de señales, el osciloscopio y el ordenador para programación.

29