Análisis de Fourier Usando Matlab

download Análisis de Fourier Usando Matlab

of 15

Transcript of Análisis de Fourier Usando Matlab

  • 8/19/2019 Análisis de Fourier Usando Matlab

    1/35

    Señales y Sistemas IGrupo 2Análisis de Fourier Usando

    Matlab

     Jan Bacca Rodríguez

     [email protected]

    mailto:[email protected]:[email protected]

  • 8/19/2019 Análisis de Fourier Usando Matlab

    2/35

    Matlab trabaja únicamente con señalesdiscretas.

    Las únicas señales que son discretas entiempo y recuencia son las señales

    peri!dicas discretas. "ara los otros casos se requerir#n

    apro$imaciones para poder lle%ar a caboan#lisis de &ourier en Matlab.

    Introducción

    ∑=

    =0

    0

    2

    0

    ][1

     N n

    n N 

     jk

    k   en x  N 

    a

    π 

    ∑=

    =0

    0

    2

    ][ N k

    n N 

     jk

    kean x 

    π 

  • 8/19/2019 Análisis de Fourier Usando Matlab

    3/35

  • 8/19/2019 Análisis de Fourier Usando Matlab

    4/35

    Matlab asume que el %ector x  contiene elperíodo de la señal que %a de n = 0 a N-1.

    Los coe,cientes en X ser#n tambi-n los de k= 0 a N-1.

    fft  e ifft  se calculan por medio de unalgoritmo conocido como la ransormadaR#pida de &ourier /&ast &ourier ransorm0

    Serie de Fourier en Tiempo

    Discreto

  • 8/19/2019 Análisis de Fourier Usando Matlab

    5/35

    1alcular los coe,cientes de &ourier de la señal)

    Eemplo

    n j  j 

    n j  j 

    n j n j 

    e

     j 

    ee

     j 

    e

    ee j n x 

    128

    3

    128

    3

    8

    3

    128

    3

    12

    2

    1

    2

    2

    1

    1][

    π 

    π 

    π 

    π 

    π π π π 

    ++−=

       

     

     

     

    −+=

    −−

       

       +− 

      

       +

    24

    1

    122

      =⇒=  N 

     M 

     N 

     M    π π 

    2 La señal tiene 34 coe,cientes.

       

       ++=

    8

    3

    12sen1][

      π π nn x 

  • 8/19/2019 Análisis de Fourier Usando Matlab

    6/35

    Los otros 35 coe,cientes ser#n 6.

    en Matlab)

    x = ones(1,24)+sin([0:23]*pi/12+3*pi/8);X = fft(x)/24

    Eemplo

     j 

    eaa

     j 

    ea

     j  j 

    2,1,

    2

    83

    10

    83

    1

    π π 

    ==−=−

  • 8/19/2019 Análisis de Fourier Usando Matlab

    7/35

    X =

    o!"#ns 1 t$%o"&$ '

     10000 041 - 0113i 00000 + 00000i -00000+ 00000i -00000 + 00000i

    o!"#ns t$%o"&$ 10

    -00000 - 00000i 00000 - 00000i 00000 - 00000i 00000 + 00000i-00000 - 00000i

    o!"#ns 11 t$%o"&$ 1'

    -00000 - 00000i -00000 - 00000i 0-00000 + 00000i -00000 + 00000i

    o!"#ns 1 t$%o"&$ 20

    -00000 + 00000i 00000 - 00000i 00000 + 00000i 00000 + 00000i-00000 + 00000i

    o!"#ns 1 t$%o"&$ 24

     -00000 - 00000i -00000 - 00000i 00000 - 00000i 041 + 0113i

    Eemplo

  • 8/19/2019 Análisis de Fourier Usando Matlab

    8/35

    Los coe,cientes dierentes de cero est#n enlas posiciones 5( 3 y 34( que corresponden alos coe,cientes 6( 5 y 37.

    Los coe,cientes de la serie tienen periodo34

    *l coe,ciente 37 es igual al coe,ciente 85

    'i se pre,ere tener el coe,cientecorrespondiente a la recuencia 0 al centrodel %ector se usa la unci!n ffts$ift

    X = ffts$ift(x)

    Eemplo

  • 8/19/2019 Análisis de Fourier Usando Matlab

    9/35

    "ara este caso(despu-s deffts$ift( los%alores en lasposiciones 5 y 3 se

    mue%en a lasposiciones 57 y 54y el %alor en laposici!n 34 a la

    posici!n 53. La señal original se

    puede recuperarusando)

    ◦ x =24*ifft(X)

    Eemplo

  • 8/19/2019 Análisis de Fourier Usando Matlab

    10/35

    Eemplo

    2x = [1 2 0 0 0 2];2X = fft(x)/;

  • 8/19/2019 Análisis de Fourier Usando Matlab

    11/35

    'ea x[n]  una señal de duraci!n  M  'u transormada de &ourier ser#)

    !elación entre la

    Trans"ormada y la Serie deFourier en Tiempo Discreto

    ( )   ∑−

    =

    −=1

    0

    ][ M 

    n

    n j  j  en x e X    ω ω 

    21onstruya a9ora una señal peri!dica deperíodo N ≥  M (  x  p [n]  9aciendo copias de  x[n] 

    2La serie de &ourier de  x  p [n]  ser#

    =

    =

    1

    0

    2

    ][

    1  N 

    n

    n N 

     jk

    k en x  N a

    π 

  • 8/19/2019 Análisis de Fourier Usando Matlab

    12/35

    1omparando)

    !elación entre laTrans"ormada y la Serie de

    Fourier en Tiempo Discreto

    ( ) N 

    k

     j k e X 

     N 

    a   π ω 

    ω 

    2

    1

    ==

    2Los coe,cientes de la serie de  x  p [n]   son

    muestras de la transormada de  x[n]  di%ididas por  N .

    2 La ecuaci!n de síntesis de los ak  nos

    permitir# recuperar  x  p [n] 

    2 x  p [n] = x[n] para 0≤n

  • 8/19/2019 Análisis de Fourier Usando Matlab

    13/35

    +plica para señales discretas de duraci!n,nita  M ≤ N .

    *s útil debido a que se puede calcularnum-ricamente.

     ransormada R#pida de &ourier /&&0)+lgoritmo r#pido para el c#lculo de la :&.  N  es la potencia de un entero /i.e.  N = 2k0

    Trans"ormada Discreta deFourier #DFT$

    [ ]   ∑∑  −

    =

    =

    −==

    1

    0

    21

    0

    2

    ][1

    ][][ N 

    n

    n N 

     jk  N 

    n

    n N 

     jk 

    ek  X  N 

    n xen xk  X 

    π π 

  • 8/19/2019 Análisis de Fourier Usando Matlab

    14/35

    La :& de cualquier longitud se puedecalcular usando fft.

    X = fft(x,N)  es la :& de  N   puntos de x[n] ( completando con ceros al ,nal si esnecesario.

    'i  N

  • 8/19/2019 Análisis de Fourier Usando Matlab

    15/35

    Los %alores de recuencia correspondientesa las muestras en  X[k]  est#n uniormementedistribuidos en el inter%alo  [0, 2π  ).

    o#e& = [0:N-1]*2*pi/N

    'i se usa ffts$ift( los %alores derecuencia estar#n en el inter%alo  [-π ,π  ) 

    o#e& = [-N/2:N/2-1]*2*pi/N

    Trans"ormada Discreta deFourier #DFT$

  • 8/19/2019 Análisis de Fourier Usando Matlab

    16/35

    2 1alcular |X(e j ω 

     )| a inter%alos de recuenciaa0 3π;73b0 3π;

  • 8/19/2019 Análisis de Fourier Usando Matlab

    17/35

    n = [0:31];

    x = os(3*pi*n/8);

    X32 = s(ffts$ift(fft(x)));

    X0 = s(ffts$ift(fft(x,4)));

    X120 = s(ffts$ift(fft(x,128)));

    .32 = [-1:1']*2*pi/32;

    fi&"%es"p!ot(3,1,1)

    ste#(.32, X32)

    xis([-pi pi 0 20])

    Eemplo

  • 8/19/2019 Análisis de Fourier Usando Matlab

    18/35

    Eemplo

    -3 -2 -1 0 1 2 30

    5

    10

    15

    20

    -3 -2 -1 0 1 2 30

    5

    10

    15

    20

    -3 -2 -1 0 1 2 30

    5

    10

    15

    20

  • 8/19/2019 Análisis de Fourier Usando Matlab

    19/35

    fft  se usa con señales discretas deduraci!n ,nita.

    "ara usarla con señales continuas( se debemuestrear y recortar la señal.

    1!mo escoger T (  M (  N  para que Y[k]  sea unabuena apro$imaci!n de  X(j ω  )>

    Apro%imando la Trans"ormada deFourier en Tiempo &ontinuo con

    fft

  • 8/19/2019 Análisis de Fourier Usando Matlab

    20/35

    Muestreo)  x[n] = x(nT)

    La recuencia de muestreo ser#

    'ea x(t) tal que  X(j ω  ) = 0 para |ω |>ω  x 

    'i se quiere apro$imar el espectro de  X(j ω  ) para |ω |

  • 8/19/2019 Análisis de Fourier Usando Matlab

    21/35

    Los espectros de la señal original y la señalmuestreada est#n relacionados así)

    Recorte) *l tomar solo  M   muestras de laseñal equi%ale a multiplicar la señal por unpulso rectangular w[n]  de duraci!n  M 

    y[n] = x[n]w[n] 

    Apro%imando laTrans"ormada de Fouriercon fft

    ( )      

      = 

      

      =

    π 

    ω ω 

    ω ω 

    2

    11  s j  j X T T 

     j X T 

    e X 

    A i d l

  • 8/19/2019 Análisis de Fourier Usando Matlab

    22/35

    *n recuencia estoequi%ale a unacon%oluci!n con la

    señal)

    La con%oluci!n sua%izael espectro de la señaloriginal.

    Apro%imando laTrans"ormada de Fourier con

    fft

     

     

     

     

     

       

      

    =−

    2sen

    2sen

    )( 21

    T  M 

    eeW  M 

    T  j  j 

    ω 

    ω ω 

    ω 

  • 8/19/2019 Análisis de Fourier Usando Matlab

    23/35

    La resoluci!n de la%entana ser# elanc9o del l!bulo

    principal) de donde)

     M s

    r

    ω ω   =

    r

    s M ω 

    ω ≥

    r

     MT ω 

    π 2≥

    Apro%imando la Trans"ormadade Fourier con fft

  • 8/19/2019 Análisis de Fourier Usando Matlab

    24/35

    La :& de  N  puntos de  x[n]  est# dada por)

    'i se desea que las muestras en recuenciaest-n separadas una distancia de al menos

    ∆ω)

    Apro%imando laTrans"ormada de Fouriercon fft

      

     

     

     

    =   

     

     

     

    =  N  jk  X T e X k Y   s N 

     jk  ω π 

    1

    ][

    2

    ω 

    ω 

    ∆≥   s N 

  • 8/19/2019 Análisis de Fourier Usando Matlab

    25/35

    'uponga que la banda de recuencias deinter-s es -20 < ω   < 20  y el inter%alo demuestreo en recuencia ∆ω   = π  20.+pro$imar X(j ω  ) para las resoluciones)

    a) 2π 

    !) 2π  " 

    #) 2π  2" 

    "ara 9allar la transormada de &ourier de

     x(t) se escribe como  x(t) = $(t)%(t) con

    ◦)  

    ◦) %(t) = cos(&0t) ' cos(&2t)

    Eemplo   ( ))12cos()10cos()()(   10 t t t (et  x t 

    +=  −

    )()(   10 t (et  $ t 

    −=

  • 8/19/2019 Análisis de Fourier Usando Matlab

    26/35

    (j ω  ) = π ( δ ( ω '&0)'δ ( ω -&0)'δ ( ω '&2)δ ( ω -&2))

    Eemplo10

    1

    1)(

    +=

    ω 

    ω 

     j 

     j  * 

    ( ) ( ) ( )

    ( )          

     

     

     

     

    +−+

    ++

    +

    +−

    +

    ++=

    10

    112

    110

    112

    1

    10

    110

    1

    10

    110

    1

    21)(

    ω 

    ω ω ω 

    ω 

     j 

     j  j  j 

     j  X 

    2

    2

    2

    2

    12

    10

    1

    10

    1

    10

    10

    1

    10

    1

    )(

     

     

     

      +

    ++

     

     

     

      +

    +=

    ω 

    ω 

    ω 

    ω 

    ω 

     j 

     j 

     j 

     j  j  X 

  • 8/19/2019 Análisis de Fourier Usando Matlab

    27/35

    *sta señal no est#limitada en bandapero su potenciadisminuyer#pidamentecuando ω crece.

    'e escoge ω  x   = "00 

    porque la magnitud

    en ese %alor es &0 %eces menor que enω a = 20

    Eemplo

    0063.01000

    2≈≤

      π T 

  • 8/19/2019 Análisis de Fourier Usando Matlab

    28/35

    2 'e escoge T = 0+00" ( de dondeω 

    s = 00π .

    2  

    a)  ω r = 2π ⇒  M = 200b)  ω r = 2π  " ⇒   M = 1000

    c)  ω r = 2π  2" ⇒  M = 5000

    2 *l número de muestras de la :& debesatisacer

    Eemplo

    r r 

     s M ω 

    π 

    ω 

    ω    400=≥

    8000

    20

    400==

    ∆≥

    π 

    π 

    ω 

    ω  s N 

  • 8/19/2019 Análisis de Fourier Usando Matlab

    29/35

    T = 0+00"   N = 000

    a) M = 200

     b) M = 1000

    c) M = 5000

    Eemplo   ( ))12cos()10cos()()(   10 t t t (et  x t 

    +=  −

    = 000';

    N = 8000;

    = '000;

    t = 0::(-1)*;

    x = exp(-t/10)*(os(10*t)+os(12*t));

    X = s(fft(x(1:200),N)*);

    n = 2*pi/*(0:N-1)/N;

    fi&"%e

    s"p!ot(2,2,2)

    ste#(n(1:128),X(1:128))

    o#e& = 0:20/'11:20;

    X = (01+i*o#e&)/

    ((1+i*o#e&)2+100)+(01+i*o#e&)/

    ((1+i*o#e&)2+144);

    $o!

    p!ot(o#e&, s(X),%)

    xis([0 20 0 ])

  • 8/19/2019 Análisis de Fourier Usando Matlab

    30/35

    Eemplo

    0 5 10 15 20-2

    -1

    0

    1

    2

    0 5 10 15 200

    1

    2

    3

    4

    5

    6

    0 5 10 15 200

    1

    2

    3

    4

    5

    6

    0 5 10 15 200

    1

    2

    3

    4

    5

    6

  • 8/19/2019 Análisis de Fourier Usando Matlab

    31/35

    Matlab permite calcular num-ricamente larespuesta en recuencia de sistemascontinuos y discretos para %alores discretosde recuencia.

    La respuesta en recuencia de un sistema esla transormada de &ourier de su respuestaimpulso.

    Los comandos f%es  and f%e5  permitene%aluar la respuesta en recuencia desistemas descritos por ecuacionesdierenciales o de dierencia sin tener la

    respuesta impulso.

    !espuesta en Frecuenciade Sistemas 'TI

  • 8/19/2019 Análisis de Fourier Usando Matlab

    32/35

    6 = f%es (, , .) calcula la respuestaen recuencia del sistema en tiempocontinuo descrito por la ecuaci!n)

    freqs

    ∑∑=

    −=

    −   = M 

    kk

    k

    k M 

     N 

    kk

    k

    k N .t 

    t  x . !

    .t 

    t y. a

    00

    )()(

    2, ) %ectores de coe,cientes de la ecuaci!ndierencial. *l primer elemento de cada%ector corresponde a la deri%ada m#s alta.

  • 8/19/2019 Análisis de Fourier Usando Matlab

    33/35

    .) %ector de recuencias donde  /(j ω  )  ser#calculada.

    f%es (, , .) sin argumentos de salida

    gra,ca la magnitud y ase de  /(j ω  ) .

    'i no se especi,ca .( matlab escoge un%ector de 200  recuencias donde calcular

     /(j ω  ) .

    'i se reemplaza .  por un número entero N 

    Matlab calcular#  /(j ω 

     ) para  N  recuencias

    freqs

  • 8/19/2019 Análisis de Fourier Usando Matlab

    34/35

    [6,.] = f%e5 (, , N)  calcula larespuesta en recuencia del sistema entiempo discreto descrito por la ecuaci!n)

    freqz

    2, ) %ectores de coe,cientes de la ecuaci!nde dierencias. *l primer elemento de cada%ector corresponde a la muestra actual.

    [ ] [ ]∑∑==

    −=− M 

    kk

     N 

    kk   kn x !knya

    00

  • 8/19/2019 Análisis de Fourier Usando Matlab

    35/35

    N) ?úmero de recuencias uniormemente

    distribuidas entre 0 y π  en las que secalcular# /(e j ω  ). 'i N  no se especi,ca se usan "&2 puntos.

    [6, .]=f%e5 (, , N,7.$o!e7) usa N  

    puntos entre 0 y 2π  . 6 = f%e5 (, , .): . es el %ector de

    recuencias donde se calcular# /(e j ω  ). [6, f] = f%e5 (, , N, fs): fs es la

    recuencia de muestreo de la señal 6 = f%e5 (, , , fs): es el %ector

    de recuencias /z0 donde se calcular#  /(e j ω  ).

    freqz