Series de Fourier
-
Upload
francis-hernandez -
Category
Documents
-
view
286 -
download
2
Transcript of Series de Fourier
SERIES DE FOURIER
SERIES DE FOURIER
1
TABLA DE CONTENIDO
I. Introducción …………………………………………………………..2
II. Objetivos……………………………………………………………….3
III. Marco teórico………………………………………………………….4
IV. Desarrollo de Series de Fourier…………………………………….7
I. Series de Fourier complejas…………………………………7
II. Señales en Matlab………………………………………….12
III. Serie de Fourier……………………………………………..21
i. Método analítico……………………………………….........21
ii. Programando en Matlab……………………………………23
V. Conclusión……………………………………………………………28
VI. Bibliografía……………………………………………………………29
SERIES DE FOURIER
2
I. INTRODUCCION
La idea básica de las series de Fourier es que toda función o señal periódica de
periodo T puede ser expresada como una suma trigonométrica de senos y cosenos
del mismo periodo. Descubierta a finales del siglo XVIII por Jan Baptiste Joseph
Fourier (1768 - 1830) para tratar la solución de problemas de valores en la frontera
en la conducción del calor, hoy día sus aplicaciones son amplias en
telecomunicaciones, audio, video, imagen (médica, satelital), geofísica, entre otras.
La noción de señal es bastante amplia y aparece en diferentes situaciones en las
cuales ciertas cantidades varían en el tiempo o el espacio de una magnitud física o
de otra naturaleza. Por tanto está ligada al concepto de función. El análisis armónico
también conocido como el Análisis de Fourier juega un papel muy importante en la
Ingeniería, en los sistemas de telecomunicaciones, y a través del uso de espectros
de frecuencia.
En este documento se presentan algunos ejemplos y ejercicios de la realización
manual y en el software MATLAB, el cual es un programa de cálculo científico de
gran versatilidad y facilidad de uso con un gran numero de herramientas orientadas a
una amplia diversidad de aplicaciones entre ellas la modelación y representación
grafica de las series de Fourier.
SERIES DE FOURIER
3
II. OBJETIVOS
OBJETIVO GENERAL
Desarrollar funciones con series de Fourier de forma analítica y en el software
Matlab.
OBJETIVOS ESPECIFICOS
Analizar las aproximaciones de las funciones periódicas mediante
combinaciones lineales de funciones trigonométricas.
Representar funciones en términos de series de Fourier.
Establecer las herramientas fundamentales para el manejo de las series de
Fourier de una función periódica con Matlab.
SERIES DE FOURIER
4
III. MARCO TEORICO
Una serie de Fourier es una ampliación de una función periódica en términos de una
suma infinita de senos y cosenos. Estas series hacen uso de las relaciones de
ortogonalidad de las funciones seno y coseno. El cálculo y estudio de series de
Fourier es extremadamente útil como una manera de romper una función arbitraria
periódica a un conjunto de términos simples que pueden ser conectados, resuelto
individualmente, y luego recombinados para obtener la solución al problema original
o una aproximación a ella, la precisión que se desea o la más útil.
Sea f(t) una función periódica de periodo T, llamaremos SERIE DE FOURIER
asociada a f(t) a una serie trigonométrica. La serie puede desarrollarse para igualar
cualquier función deseada durante cualquier duración finita de tiempo mientras la
componente fundamental de la serie pasa por un ciclo completo. Si llamamos t1 al
principio y t2 al final del período T de la componente fundamental será t2 – t1 = T y
con ello:
wT = 2p ; T = 2p/w ó w = 2p/T
El método de encontrar los coeficientes, llamado análisis de Fourier, se basa en que
las funciones seno y coseno constituyen un sistema ortogonal, esto es el promedio
de sus productos en cruz es cero.
Y con esto resulta:
SERIES DE FOURIER
5
Casos particulares
Podemos demostrar que hay condiciones de simetría que permiten establecer la
existencia o no de determinados términos en la serie, lo que nos ahorra trabajo en el
cálculo.
Función impar: f(x) = -f(-x) sólo tienen términos en senos, haciendo uso del hecho
que f(t) = -f(-t) = -f(t'):
Y también
Función par: f(x) = f(-x) sólo tienen términos en cosenos y la constante.
Y también.
LA SERIE DE FOURIER COMPLEJA
Comenzamos recordando la formula
de Euler3: eiµ = cos µ + i sin µ. Si
tenemos en cuenta las paridades de
las funciones sin µ y cos µ, entonces
resulta que podemos invertir la
relación de Euler de la siguiente
forma:
Fig. 1. Ejemplo de una grafica de una serie de Fourier
SERIES DE FOURIER
6
Entonces las funciones {eiµ; e¡iµ ] también forman un sistema libre. En realidad, la
sucesión de funciones {einµ ª1 n=¡1 }no solo forma un sistema libre sino que es
además un sistema ortogonal de funciones respecto del producto interior de
Ahora, dada una señal arbitraria x(t) 2 L2(¡¼; ¼), podemos asociarle su serie formal)
de Fourier compleja:
SERIES DE FOURIER
7
IV. DESARROLLO DE SERIES DE FOURIER
IV.I. Series de Fourier complejas
Determina la serie de Fourier Compleja:
1. ( )
( ) ( )
T = 3
∫
∫
[
] |
[ ( )
( )
]
[
]
∫
∫
[
(
)
(
) ] |
[
(
)
(
)
(
) ]
( )
( ) ( ) ( )
[
( )
( )
( ) ]
[
( )]
( )
( )
3
0
𝑓′(𝑡) 𝑔(𝑡) 𝑑𝑡
+ t 𝑒 𝑖𝑛 𝜋
𝑡
- 1 𝑒 𝑖𝑛 𝜋
𝑡 ( 𝑖𝑛
𝜋
)
+ 0 𝑒 𝑖𝑛 𝜋
𝑡 ( 𝑖𝑛
𝜋
)
SERIES DE FOURIER
8
La serie de Fourier Compleja es
( ) ∑ (
)
2. ( ) {
( ) ( )
T = 4
[ ∫ ∫
]
[ ∫ ∫
]
[ |
|
]
[ ( ) ( )]
[ ]
[ ]
[∫
∫
]
[ ∫
∫
]
[
( )
|
( )
|
]
[(
( )
( )) (
( )
( ))]
( ) ( ) ( )
( ) ( ) ( )
SERIES DE FOURIER
9
[
( )
( )
( )
( )
]
[ ]
La serie de Fourier Compleja es
( )
3. ( )
( ) ( )
T = 6
[∫( )
]
[ ∫ ∫
]
[ |
|
]
[( ) (
( )
( )
)]
[ ]
[ ]
∫( )
[∫
∫
]
𝑓′(𝑡) 𝑔(𝑡) 𝑑𝑡
+ t 𝑒 𝑖𝑛𝜋
𝑡
- 1 𝑒 𝑖𝑛𝜋
𝑡 ( 𝑖𝑛
𝜋
)
+ 0 𝑒 𝑖𝑛𝜋
𝑡 ( 𝑖𝑛
𝜋
)
SERIES DE FOURIER
10
[
( )
|
(
( )
( )
)|
]
[
( )
( ) (
( )
( )
( ) )]
[
( )
( )
( )
( )
( )
]
( ) ( ) ( )
[
( )
( )
( )
( )
( )
]
[
( )
]
( )
La serie de Fourier Compleja es
( ) ∑ (
)
SERIES DE FOURIER
11
4. ( )
( ) ( )
T = 5
[∫
]
[ |
]
[ ( )]
∫
[∫
( )
]
[
( )
( )
]|
[
( )
( )
]
[
( )
]
( ) ( ) ( )
[
(
)]
( )
La serie de Fourier Compleja es
( ) ∑ (
)
SERIES DE FOURIER
12
IV.II. Señales en Matlab
1.
>> t=0 :0.01 :pi; Los : se usan para generar matrices, indica todas las filas o todas las
columnas de esta; en una función con los dos puntos se colocan el primer y
ultimo valor que esta tomara y el incremento por defecto será 1, pero si se
desea usar un incremento diferente se coloca entre estos dos números en
este caso, el incremento será de 0.01.
>> y=t; El ; separa filas en una definición de matriz, suprime salida cuando se usa en
comandos, cabe recordar que la matriz es el tipo de datos principal que se
usa en Matlab y puede retener información numérica así como otros tipos de
información.
>> for n=-3:3 Los bucles se usan cuando se necesita repetir un conjunto de instrucciones
muchas veces, Matlab soporta dos tipos de bucles uno de ellos es for, este
es la opción mas sencilla cuando se sabe cuantas veces se repetirá el bucle, la
primera línea de su estructura identifica el bucle y define el indice en este
caso n, que es un numero que cambia en cada paso a traves del bucle.
Después viene el grupo de comandos que se quiere ejecutar. Finalmente la
terminación del bucle se identifica mediante el comando end.
tt=t+n*pi
hold on hold : congela la grafica actual, de modo que se puede recubrir una grafica
adicional, la creación de una grafica con mas de una línea se puede lograr en
muchas formas. Por defecto, la ejecución de un segundo enunciado plot
(comando que crea una grafica x-y) borrara la primera grafica. Sin embargo,
se pueden apilar las graficas unas encimas de otras con el comando hold on.
Matlab continuara poniendo en capa las graficas hasta que se ejecute el
comando hold off.
plot(tt,y)
hold off
end
SERIES DE FOURIER
13
2. >> x1=-5:0.1:-2;
>> y1=x1+1;
>> x2=-2+eps:0.1:1; eps: reconoce diferencia mas pequeña, la distancia entre 1 y
el siguiente numero punto flotante de doble precisión mas
grande.
>> y2=ones(size(x2)); La función ones crea una matriz m X m de unos, se usa como
un marcador de posición para futuros cálculos.
>> x3=1+eps:0.1:3; size (x): determina el numero de filas y columnas en la matriz
x. Si x es un arreglo multidimensional, size determina cuantas
dimensiones existen y cuan grandes son.
>> y3=x3.^2; En todos los cálculos matemáticos es importante entender el
orden en el que se realizan las operaciones. En Matlab
primero se realizan los cálculos adentro de paréntesis, desde
el conjunto mas interno hasta el más externo.
>> x=[x1,x2,x3]; Los [] forma matrices cuyos elementos son separados por la (,)
que también separa subíndices y los () se usa en enunciados
para agrupar operaciones o se usa con un nombre de matriz
para identificar elementos específicos.
SERIES DE FOURIER
14
>> y=[y1,y2,y3];
>> plot(x,y)
>> grid on grid : agrega una retícula o rejilla solo a la grafica actual,
mientras que grid on agrega una retícula o rejilla a la grafica
actual y a todas las subsecuentes en la figura actual.
3. >> t1=-1:0.01:0;
>> xt1=-t1+1;
>> plot(t1,xt1);
>> t2=0:0.01:2;
>> xt2=t2;
>> hold on
>> plot(t2,xt2);
>> t3=2:0.01:3;
>> xt3=2;
>> plot(t3,xt3)
>> t4=3:0.01:7;
SERIES DE FOURIER
15
>> xt4=0;
>> plot(t4,xt4)
>> hold off
>> axis([-2 7 -1 4]) axis (v) : la entrada al comando axis es un vector de cuatro
elementos que especifica los valores mínimo y máximo para
los ejes x y y, ejemplo [xmin xmax ymin ymax].
>> xlabel('t') xlabel : agrega una etiqueta (titulo) al eje x.
>> ylabel('x(t)') ylabel : agrega una etiqueta al eje y.
>> title('Señal a trozos') title : agrega un titulo a la grafica.
El apostrofe (') al principio de los comandos anteriores le
advierte que comienza una cadena o lista de caracteres string
(solo letras). El color del texto cambia a púrpura cuando
escribe el apóstrofe final ('), lo que indica que completó la
cadena.
SERIES DE FOURIER
16
4. >> t=-10:0.01:10;
>> f_escalon=[zeros(1,1000),ones(1,1001)]; zeros (m, n) : crea una matriz m X n de ceros.
Si se usan dos argumentos escalares como en
este caso, el primer valor especifica el numero
de filas y el segundo argumento especifica el
numero de columnas, esta función se utiliza
para crear matrices con valores “marcadores
de posición” que se llenaran mas tarde.
>> plot(t,f_escalon); f_escalon : Calcula la respuesta al escalón
unitario de un sistema lineal. Se emplea para
representar la respuesta de varios sistemas
LTI, en la misma figura.
SERIES DE FOURIER
17
5. >> t=-10:0.01:10;
>> f_pulso=[zeros(1,950),ones(1,101),zeros(1,950)];
>> plot(t,f_pulso); f_pulso : calcula la respuesta a la señal de pulso de un
sistema lineal.
6. >> t=-10:0.01:10;
>> f_impulso=[zeros(1,1000),1,zeros(1,1000)];
>> plot(t,f_impulso); f_impulso : calcula la respuesta al impulso de un
sistema lineal. Para un sistema discreto, la respuesta
al impulso es la respuesta a un impulso unitario para
el instante de tiempo t=0. Se emplea para representar
la respuesta de varios sistemas LTI.
SERIES DE FOURIER
18
7. >> t=-10:0.01:10;
>> width=0.10; width : devuelve el tamaño de la columna en la que se
encuentra un grupo de datos.
>> f_sierra=sawtooth(2*pi*0.1*t,width); sawtooth : genera una onda de “dientes de
sierra” triangular de periodo 2 para los
elementos del vector t, donde width es un
parámetro escalar entre 0 y 1 que determina
el punto entre 0 y 2 en el cual el máximo
ocurre. La función aumenta de -1 a 1 en el
intervalo de 0 a 2*width, y decrece de la
misma forma.
>> plot(t,f_sierra); f_sierra : calcula la respuesta a la onda de
“dientes de sierra” de un sistema lineal.
SERIES DE FOURIER
19
8. >> t=-10:0.01:10;
>> f_triangular=sawtooth(2*pi*0.1*t,0.5);
>> plot(t,f_triangular)
SERIES DE FOURIER
20
9. >> t=-10:0.01:10;
>> duty=50;%porcentajedelperiodoenelquelaseñalespositiva % : indica un
comentario en un archivo-m, usar un archivo-m permite
trabajar en un proyecto y guardar la lista de comandos para
uso futuro. Matlab no ejecutara código alguno en una línea
comentada, también se pueden agregar comentarios después
de un comando, pero en la misma línea.
>> f_cuadrada=square(2*pi*0.5*t,duty);
>> plot(t,f_cuadrada); square: genera una onda cuadrada con periodo 2
para los elementos del vector tiempo t, con ciclo
especifico duty, que es un numero entre 0 y 100. El
ciclo duty es el porcentaje del periodo en el cual la
señal es positiva.
SERIES DE FOURIER
21
IV.III. Serie de Fourier
i. Método analítico
Hallar la Serie de Fourier de forma analítica
4. ( ) {
∫ ( )
[ ∫ ∫
]
[ |
|
]
[ ( ( )) ( )]
[ ]
[ ]
∫ ( ) ( )
[ ∫ ( )
∫ ( )
]
[
( )
|
( )
|
]
Como ( )
[ ]
∫ ( ) ( )
SERIES DE FOURIER
22
[ ∫ ( )
∫ ( )
]
[ ( )
|
( )
|
]
Como ( ) ( ) ( ) ( )( ) ( )
[
( )
(
( )
)]
[
( )
]
( )
{
( ) ∑[ ( ) ( )]
( ) ∑ [
( )]
SERIES DE FOURIER
23
ii. Programando en Matlab
Usaremos Matlab, para determinar la serie de Fourier, la sintaxis para la
grafica f(t) es:
>> t=-pi:0.01:pi;
>> f=(t<0).*(-2)+(t>=0).*(2);
>> plot(t,f)
Y su grafica es:
Veamos como calculamos los coeficientes con Matlab. Primero calcularemos
los coeficientes del coseno (an), como funciones de n
>> syms n pi t;
>> an=(1/pi)*(int(-2*cos(n*t),-pi,0)+int(2*cos(n*t),0,pi))
an =
0
SERIES DE FOURIER
24
Los coeficientes de los senos (bn) están dados por:
>> syms n pi t;
>> bn=(1/pi)*(int(-2*sin(n*t),-pi,0)+int(2*sin(n*t),0,pi));
>> pretty(bn)
( ( ) )
(
)
Matlab no reconoce a n como un entero, así que:
>> bn=subs(bn,'(-1)^n','cos(pi*n)');
>> pretty(bn)
(
)
(( ) )
Ahora usaremos el comando FourierSum para hallar la serie de Fourier y el
comando ezplot para graficar la serie:
>> fouriersum=(8/pi)*sin(t);
>> for k=1:2:30
fouriersum=fouriersum+subs((8/pi)*sin(n*t)/n,k,n);
end
>> fouriersum
fouriersum =
(8*sin(3*t))/(3*pi) + (8*sin(5*t))/(5*pi) + (8*sin(7*t))/(7*pi) + (8*sin(9*t))/(9*pi) +
(8*sin(11*t))/(11*pi) + (8*sin(13*t))/(13*pi) + (8*sin(15*t))/(15*pi) + (8*sin(17*t))/(17*pi) +
(8*sin(19*t))/(19*pi) + (8*sin(21*t))/(21*pi) + (8*sin(23*t))/(23*pi) + (8*sin(25*t))/(25*pi) +
(8*sin(27*t))/(27*pi) + (8*sin(29*t))/(29*pi) + (16*sin(t))/pi
>> ezplot(fouriersum,3.1416*[-2 4])
>> title('Serie de Fourier')
SERIES DE FOURIER
25
La grafica es:
Comandos utilizados:
Plot: crea una grafica x-y. Este comando ploteará los elementos del vector x en el eje
horizontal de una figura, y los elementos del vector y en el eje vertical de la figura. Por
defecto, cada vez que se use el comando plot, se borrará la figura que estaba,
quedando solo la nueva.
Los : se usan para generar matrices, indica todas las filas o todas las columnas de
esta; en una función con los dos puntos se colocan el primer y ultimo valor que esta
tomara y el incremento por defecto será 1, pero si se desea usar un incremento
diferente se coloca entre estos dos números en este caso, el incremento será de 0.01.
El ; separa filas en una definición de matriz, suprime salida cuando se usa en
comandos, cabe recordar que la matriz es el tipo de datos principal que se usa en
Matlab y puede retener información numérica así como otros tipos de información.
Syms: crea variables simbólicas, note en la ventana del área de trabajo que x y y se
mencionan como variables simbólicas y que el tamaño del arreglo para cada una es 1
x 1. Cada argumento de entrada debe comenzar con una letra y puede contener sólo
caracteres alfanuméricos. Para la compatibilidad con versiones anteriores del
software. El comando syms es particularmente conveniente porque se puede usar
para crear múltiples variables simbólicas al mismo tiempo, como con el comando. En
SERIES DE FOURIER
26
las funciones y scripts, no utilice el comando syms para crear variables simbólicos con
los mismos nombres que las funciones de MATLAB. Para estos nombres MATLAB no
crea variables simbólicas, pero mantiene los nombres asignados a las funciones. Si
desea crear una variable simbólica con el mismo nombre que una función MATLAB
dentro de una función o un script, utilice el comando sym.
En todos los cálculos matemáticos es importante entender el orden en el que se
realizan las operaciones. En Matlab primero se realizan los cálculos adentro de
paréntesis, desde el conjunto mas interno hasta el más externo.
En algunos casos la lectura de la salida que proporciona MATLAB no es muy legible. El
comando pretty genera en ocasiones una visualización mas usual, es decir, visualiza
una expresión simbolica de forma parecida a como esta suele escribirse realmente
(forma algrebaica).
Subs: es otra forma ligeramente distinta para sustituir más de una variable simbólica
por uno o varios valores numéricos.
Las variables var1, var2,…, varN son variables simbólicas de la expresión S que se
pretenden sustituir por números, estas deben teclearse entre llaves.
Los números numero1, numero2,…, numeroN son los que se sustituirán en las
variables simbólicas comentadas anteriormente, los números pueden ser escalares,
vectores o matrices.
Los bucles se usan cuando se necesita repetir un conjunto de instrucciones muchas
veces, Matlab soporta dos tipos de bucles uno de ellos es for, este es la opción mas
sencilla cuando se sabe cuantas veces se repetirá el bucle, la primera línea de su
estructura identifica el bucle y define el indice en este caso n, que es un numero que
cambia en cada paso a traves del bucle. Después viene el grupo de comandos que se
quiere ejecutar. Finalmente la terminación del bucle se identifica mediante el
comando end.
Sin: Seno de argumento en radianes. Y = sin (X) devuelve el seno circular de los
elementos de X. La función pecado elemento opera-sabio en las matrices. Dominios de
la función y rangos incluyen valores complejos. Todos los ángulos están en radianes.
Los bucles se usan cuando se necesita repetir un conjunto de instrucciones muchas
veces, Matlab soporta dos tipos de bucles uno de ellos es for, este es la opción mas
sencilla cuando se sabe cuantas veces se repetirá el bucle, la primera línea de su
estructura identifica el bucle y define el indice en este caso n, que es un numero que
SERIES DE FOURIER
27
cambia en cada paso a traves del bucle. Después viene el grupo de comandos que se
quiere ejecutar. Finalmente la terminación del bucle se identifica mediante el
comando end.
title : agrega un titulo a la grafica. El apostrofe (') al principio de los comandos
anteriores le advierte que comienza una cadena o lista de caracteres string (solo
letras). El color del texto cambia a púrpura cuando escribe el apóstrofe final ('), lo que
indica que completó la cadena.
Ezplot: representa gráficamente una expresión simbólica, dibuja curvas como plot en
cartesianas y paramétricas de una manera mas sencilla ya que genera
automáticamente los valores de la variable independiente. También se utiliza para
dibujar curvas en implícitas. Sea S una función simbólica que contiene una variable
var, ezplot creara un grafico de S (var) frente a var.
SERIES DE FOURIER
28
V. CONCLUSIÓN
El estudio efectuado pone de manifiesto, que las series de Fourier son de mucha
importancia en la Ingeniería, gracias a ellas se logra identificar la frecuencia,
amplitud y fase de cada una de las modulaciones de tipo seno generadas por una
función infinita. Además de lograr identificar la forma adecuada de realizar una serie
de Fourier en Matlab, desarrollando su respectivo grafico.
Los resultados obtenidos en este trabajo evidencian que este tipo de análisis de las
series de Fourier proporcionan información complementaria a la suministrada por
parámetros de forma convencionales.
SERIES DE FOURIER
29
VI. BIBLIOGRAFÍA
Tratamiento digital de señales-Prolakis-Manolakis. Apuntes de la cátedra Teoría de circuitos de I –FRMUTN.
Series de Fourier, Transformadas de Fourier y aplicaciones. G. González.
Consultado 30 de noviembre de 2012, en
http://www.emis.de/journals/DM/v5/art6.pdf
H. Dym, H. P. McKean. Fourier series and Integrals. Academic Press. New York, 1972.
G. Amos. Matlab, Una introducción con ejemplos prácticos. Barcelona,
España. Editorial Reverte s.a. 2005. 340 pág.
H. Moore. Matlab para ingenieros. Editorial Pearson, Prentice Hall. 600 pág.