Sie sind auf Seite 1von 6

Transformadas Discretas en MatLab

Alex P. Villacs V.
Departamento de Electrnica en automatizacin y control Escuela Politcnica del Ejrcito Quito, Ecuador E-mail: alphavv@gmail.com
ResumenMatLab es la herramienta principal que nos va a permitir realizar este proyecto, dicho entorno ayudar la resolucin de la transformada discretas en el presente artculo se resolver varios experimentos en los cuales se aplicaran todas las funciones relacionadas a dichas transformadas que posee MatLab. Palabras clavespolos, seal; discreto, continuo, ceros, muestras, absoluto, transformada, fft, dft.

La transformada inversa de Fourier viene dado por la siguiente ecuacin: [ ] [ ] (2) B. Transformada Rpida de Fourier. FFT es la abreviatura usual (del ingls Fast Fourier Transform) de un eficiente algoritmo que permite calcular la transformada de Fourier discreta (DFT) y su inversa. La FFT es de gran importancia en una amplia variedad de aplicaciones, desde el tratamiento digital de seales y filtrado digital en general a la resolucin de ecuaciones en derivadas parciales o los algoritmos de multiplicacin rpida de grandes enteros. III. EXPERIMENTOS

I.

INTRODUCCION

MatLab hoy en da se ha convertido en una herramienta bastante til entre los matemticos, por su facilidad de uso y sus innumerables funciones en el mbito matemtico; gracias a esta capacidad que nos brinda, es que podemos usarla para clculos en el procesamiento digital de seales, as como lo son algunas transformadas discretas. Comnmente las capacidades de MatLab son una herramienta poderosa al momento de facilitar el trabajo, pero al realizar los experimentos pueden darse cuenta que quizs se torne un poco ms complicado obtener una respuesta acertada al compararlo con los clculos analticos en ejercicios obviamente donde el nivel de dificultad es moderada. Las Transformadas discretas son un modelo matemtico que se emplea entre otras aplicaciones en el estudio del Procesamiento de Seales.

A. Experimento 3.1 En este experimento implementaremos las diferentes formas de hallar la convolucin entre dos seales x[n]*h[n]. [ ] (3) [ ] (4)
x[n]*h[n] 60

II.

FUNDAMENTOS TERICOS.

A. Transformada de Fourier Discreta En matemticas, la transformada discreta de Fourier o DFT (del ingls, discrete Fourier transform) es un tipo de transformada discreta utilizada en el anlisis de Fourier. Transforma una funcin matemtica en otra, obteniendo una representacin en el dominio de la frecuencia, siendo la funcin original una funcin en el dominio del tiempo. Pero la DFT requiere que la funcin de entrada sea una secuencia discreta y de duracin finita. Para determinar la transformada se emplea la siguiente expresin: [ ] [ ] (1) Donde x[n] es una funcin en tiempo discreto.

50

40

x[n]

30

20

10

10 n

12

14

16

18

20

Figura 1. Convolucin entre x[n] y h[n] usando conv.

En la figura 2 podemos observar la convolucin usando el comando filter, la grfica en azul es la convolucin sin antes haber cambiado la longitud de x, ya que dicha 1

sentencia de MatLab obliga que la salida y(n) tenga la misma longitud de x(n), por lo que tenemos que cambiar la longitud de x(n), obteniendo una grfica como la mostrada en verde de la figura 2.
Convolucin usando filter 60

Tambin tenemos otra sentencia que combina las dos funciones anteriores asi como tambin sus caractersticas llamada fftfilt la cual realiza la convolucin. (5)

50

40

x[n]

30

B. Expermento 3.2 En este experimento visualizaremos como afecta el ruido en una seal limpia como lo es una seal sinusoidal, en el experimento se apreciara como a medida que aumenta el ruido no se puede distinguir las componentes fundamentales de la onda deseada. La funcin con la que vamos a trabajar es la siguiente: (6)

20

10

En la figura 4 se muestra la seal ingresada con ruido es decir en la funcin anterior con un k = 0,5, en la figura 5 podemos observar dicha seal con k = 1,5.
0 2 4 6 8 10 n 12 14 16 18 20
2.5 2 1.5 1 0.5
x(n)

Grafico 1

Figura 2. Convolucin usando filter.

En esta parte del experimento realizaremos la convolucin de las dos seales anteriores usando la sentencia fft, como todos sabemos la convolucin usando la transformada discreta de Fourier es la multiplicacin de las dos seales. Al usar esta funcin obtendremos el resultado que se muestra en la figura 3.
Convolucin usando FFT 60

0 -0.5 -1 -1.5

50

-2 -2.5

40

0.1

0.2

0.3

0.4

0.5 Time(s)

0.6

0.7

0.8

0.9

x[n]

30

Figura 4. Seal x[n]con k = 0,5


5 4

20

10

3 2

10 n

12

14

16

18

20
x(t)

1 0 -1 -2 -3

Figura 3. Convolucin usando fft.

Para lo cual usamos la siguiente sentencia: length_y = length(x) + length(h) - 1; X = fft(x,length_y); H = fft(h,length_y); Y4 = X.*H; y4 = ifft(Y4);

-4 -5

0.1

0.2

0.3

0.4

0.5 t

0.6

0.7

0.8

0.9

Figura 5. Seal x[n]con k = 1,5

En la figura 6 se muestra la FFT con la seal pura (roja) y con la seal con ruido (azul). 2

120

Comando conv 15

100

80

10
X(ej*2*pi*f )
60

40

x[n]
5
20 0 0 20 40 60 80 100 120 Frecuencia (Hz) 140 160 180 200

5 n

10

15

Figura 6. Transformada rpida de Fourier con k=0 (rojal) y con k=1.5 (azul).

Figura 8. Convolucin entre x[n] y h[n] usando conv.

C. Ejercicio 3.32 La figura 9 muestra la convolucin con el comando filter. a. Utilice la FFT para realizar la convolucin entre dos seales.
Comando filter 15

Para este ejercicio se usar las siguientes seales:


[ ] [ ] [ [ ] (7) ] (8)
x[n]
5
15

10

Al realizar la FFT de estas dos seales se obtiene el grfico mostrado en la figura 7.

0
10

4 n

x[n]

Figura 9. Convolucin entre x[n] y h[n] usando filter.

Como lo pudimos notar en la figura anterior al usar filter para la convolucin se pierde informacin porque y[n] obligadamente debe tener la misma longitud de x[n]. c. Mediante el comando flops verifique sus resultados experimentalmente para valores generales de N y K.

5 n

10

15

Figura 7. Convolucin entre x[n] y h[n] usando fft.

Para este literal usaremos la funcin flops para saber cuantas operaciones algebraicas ha realiza para un numero de N y K generales. Este literal no se lo pudo realizar correctamente ya que la versin de MatLab no contiene el comando flops. d. Repetir (c) teniendo en cuenta nicamente los valores de N y K tal que (N + K - 1) es una potencia de dos.

Para realizar esta operacin en MatLab se uso el cdigo usado en los experimentos anteriores. b. Realice la misma convolucin usando los comandos conv y filter.

La figura 8 muestra la convolucin usando el comando conv. 3

La ecuacin M N + K -1 nos da la el numero mnimo de puntos que debe poseer la convolucin para que sta no pierda informacin, esta ecuacin fue aplicada al realizar la convolucin con la fft, mediante la siguiente sentencia: length_y = length(x) + length(h) -1

Magnitud de X(ejw ) 10 5 0 -5

D. Ejercicio 3.33 Dada la siguiente seal: ( a. ) [ ] (9)

-10 -15 -20 -25

Para l = 100, calcular la DFT de x (n) utilizando 64 muestras. Se puede observar la presencia de las dos sinusoides?

-30

10

20

30

40

50

60

70

Figura 11. Magnitud de

Para este ejercicio ocupamos las siguientes sentencias:


Fase de X(ejw )


2 1.5 1 0.5 0 -0.5 -1 -1.5

n = 64; ws = 100; l = 100; for i = 1:1:n; x1(i) = sin((ws/10)*i) + sin(((ws/10)+(ws/l))*i); end


x(n)

25 20 15 10 5 0 -5 -10 -15 -20 -25

10

20

30

40

50

60

70

Figura 12. Fase de

b.

Aumentar la longitud de la DFT de muestras 128 mediante el relleno 64 ceros a la original muestras de x (n). Opina sobre los resultados.
x(n) con 128 muestras 1.5

-2

10

20

30

40

50

60

70
1

Figura 10. Grfica de x(n).

Para la cual se obtiene la figura 11, que es la magnitud de , mientras que en la figura 12, se muestra la fase. En la figura 10 se puede no se puede distinguir las dos sinusoides. Para poder graficar la magnitud de la dft se utilizo el comando real y para graficar la fase se uso el comando imag.

0.5

-0.5

-1

-1.5

20

40

60

80

100

120

140

Figura 13. x(n) con 128 muestras.

70

70

60

60

50

50

40

40

30

30

20

20

10

10

20

40

60

80

100

120

140

160

180

200

50

100

150

200

250

300

Figura 14. DFT(x(n)) con 128 muestras.

Figura 16. DFT(x(n)) con 128 muestras rellenadas con 0.


70

Claramente se puede observar la diferencia entre la figura 14 con la figura 11, esta diferencia se da gracias al nmero de muestras con la que se trabaja. c. Calcular la DFT de x (n) utilizando 128 muestras. Puede usted ahora observar la presencia de las dos sinusoides?
2 1.5 1

60

50

40

30

20

10

0.5
0

0 -0.5 -1 -1.5 -2

100

200

300

400

500

600

Figura 17. DFT(x(n)) con 384 muestras rellenadas con 0.

E. Ejercicio 3.34 Repita el Experimento 3.2 para una gran cantidad k 3 de componente de ruido. Adems vare M (longitud) de la fft y grafique con valor absoluto.
k = 6 y M = 50 15

20

40

60

80

100

120

140

Figura 15. x(n) con 128 muestras.

Como se puede observa en la figura 15 la presencia de las sinusoides se hace un poco mas notoria debido a que el nmero de muestras aumento al doble.
x(t)

10

d.

Aumente el nmero de muestras a 128 y a x(n) aada 128 ceros, repita rellenando con 384 ceros, Observe los resultados y comntelos.

-5

Como se puede observar en la figura 16 al aumentar el nmero de muestras la DFT sique siendo la misma pero con menor longitud si la comparamos con la figura 17.

-10

-15

0.1

0.2

0.3

0.4

0.5 0.6 Tiempo (s)

0.7

0.8

0.9

Figura 16. Experimento 3.2 con k=6 y M=50.

k = 6 y M = 1000 25 20 15 10 5

misma longitud que la entrada, esto causa que se pierda informacin. Al hallar la DFT de las seales propuestas, al aumentar el nmero de muestras dicha transformada no cambia si no tan solo aumenta la longitud dependiendo del nmero de muestras que esta implica. Mientras se aumenta el nivel de ruido a la seal del ejercicio 3.34 la seal se asemeja mas a una seal con ruido blanco.

x(t)
0 -5 -10 -15 -20 0

0.1

0.2

0.3

0.4

0.5 0.6 Tiempo (s)

0.7

0.8

0.9

V.

BIOGRAFIA

Figura 17. Experimento 3.2 con k=6 y M=1000.


k = 12 y M = 500 50 40 30 20 10

0 -10 -20 -30 -40

Alex Pal Villacs Vsconez naci en Quito, Ecuador el 07 de julio de 1991. Realiz sus estudios de educacin primaria en la escuela Estados Unidos de Norte Amrica. Realiz sus estudios de educacin secundaria en el Instituto Tecnolgico Superior Sucre gradundose en el 2009 con el ttulo de Bachiller en la especialidad de Electrnico. Actualmente se encuentra cursando sus estudios superiores en la Escuela Politcnica del Ejrcito en la facultad de Electrnica especialidad Automatizacin y Control.
0.7 0.8 0.9 1

x(t)
0

0.1

0.2

0.3

0.4

0.5 0.6 Tiempo (s)

VI.
Figura 18. Experimento 3.2 con k=12 y M=500.

BIBLIOGRAFA Processing.

en las figuras 16, 1 y 18 podemos observar que al ir aumentando el k la seal va aumentando el ruido, y al variar M (longitud) aumenta el numero de muestras dentro de un mismo perodo. IV. CONCLUSIONES

Diniz P. (2012).Digital Signal Segunda Edicin. 12-10-2012.

Hayes M. (1999).Schaums outline of theory and problems of digital signal. Primera Edicin. 1210.2012. Alan V. Oppenheim and Ronald W. Schafer, Discrete-Time Signal Processing, 3rd Edition, Prentice Hall, ISBN 978-0131988422, 2009. Vinay K. Ingle, John G. Proakis, Digital Signal Processing Using Matlab, 3rd Edition, Cengage Learning, ISBN 978-1-111-42737-5, 2012. Herramienta matemtica MatLab, Help.

MatLab es una herramienta matemtica que nos sirve para obtener una aproximacin numrica de la transformada Discreta de Fourier as tambin como las graficas de su Magnitud y Fase. La convolucin entre dos seales se las puede realizare varias maneras con diferentes tipos de comandos como lo son filter, conv y fft. Cada comando antes mencionado tiene sus propias caractersticas para realizar la convolucin, asi como el comando filter que forza a que la salida tenga la 6

Das könnte Ihnen auch gefallen