Beruflich Dokumente
Kultur Dokumente
Procesamiento de Seales
OBJETIVOS
Objetivo general.- El objetivo principal del proyecto es generar seales seno y coseno en un
microcontrolador.
Objetivos especficos.- Dentro de los objetivos especficos a alcanzar tenemos:
Dar a conocer una forma de generar seales seno y coseno.
Disear un sistema que permita generar seales seno y coseno, en un microcontrolador,
la cual se la podr utilizar de acuerdo a la comodidad del usuario.
INTRODUCCIN
En el presente proyecto se analizan temas bsicos relacionados a las series de Taylor,
el muestreo, el teorema de muestreo, cuantizacin y microcontrolador, debido a que estos
temas son de gran importancia para llevar a cabo los objetivos propuestos.
A. Series de Taylor
La serie de Taylor de una funcin f de nmeros reales o complejos que es infinitamente
diferenciable en un entorno de nmeros reales o complejos a, es la serie de potencias, el
polinomio siguiente se llama el polinomio de Taylor de grado n en x=a:
, =
+
!
+
!
+
!
+ +
!
=
,
!
, !
!"
=0
'
(
+ 1
=
+
0
' ( '
+
+ +
+
+ 1!
1!
2!
!
La expresin del polinomio de Taylor de grado 5 para f(x) en el punto x=0 viene dado
por:
+ = 0 +
!
0 +
0 +
!
.
+!
!
0+
0 +
,
-!
0- +
+ = 0 + +
!
!
!
+
-!
- +
+!
+
+ = / +
+
A continuacin se presenta el cdigo en matlab utilizando las series de Taylor para
generar los coeficientes de las funciones seno y coseno y el margen de error que se presenta
segn el grado que se utilice de la serie de Taylor.
3) Cdigo En Matlab
syms x
x=0:0.001:0.15;
frec=62.83; % frecuencia a 10hz debido a que w=2*pi*f de donde f=10
amplitud=15; % es la amplitud de la onda seno
tayl=amplitud.*((frec.*x-1/6.*frec.^3.*x.^3+1/120.*frec.^5.*x.^51/5040.*frec.^7.*x.^7+1/362880.*frec.^9.*x.^91/39916800.*frec.^11.*x.^11+1/6227020800.*frec.^13.*x.^131/1307674368000.*frec.^15.*x.^15+1/355687428096000.*frec.^17.*x.^171/121645100408832000.*frec.^19.*x.^19)) % funcion sen(x) construida con las series de
taylor
y=amplitud*sin(frec.*x) % funcin sen(x) dada ya por matlab
plot (x,y,x,tayl,'-.r') %graficar en la misma pantalla ambas grficas
grid on % activar la grilla
%leyendas de las grficas
h = legend('Funcin sen(x) dada','Funcin sen(x) con taylor',3);
set(h,'Interpreter','none')
%ubicacin en el eje x
0
1
0
1
0
+ + - + +
1!
2!
3!
4!
5!
1
1
+ = 1 + 2
24
5) Cdigo en Matlab
syms x
x=0:0.001:0.15;
frec=62.83; % frecuencia a 10hz debido a que w=2*pi*f de donde f=10
5
seal digital en dos pasos. Primero, debemos muestrearla, en intervalos uniformes ts. La
cantidad discreta nts se relaciona con el ndice entero n. Luego debemos cuantizar los
valores de la muestra (amplitudes). Tanto el muestreo como la cuantizacin conducen a una
prdida potencial de informacin. Sin embargo la seal puede muestrearse sin prdida de
informacin si es de banda limitada a una frecuencia ms alta fB y muestreada a intervalos
menores que . Este es el clebre teorema de muestreo. Si el intervalo de muestreo supera
3
el valor critico
3
Fig. 3 El microcontrolador
Todas las partes del computador estn contenidas en su interior y slo salen al exterior
las lneas que gobiernan los perifricos.
Segn los controladores de perifricos que posea cada modelo de microcontrolador, las
lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control.
[7]
DESARROLLO
El objetivo de este proyecto es generar seales senoidales y cosenoidales, y esta nos debe
proporcionar las siguientes funciones: Ser variable en frecuencia y en amplitud.
HERRAMIENTAS A UTILIZAR
Compilador C CodevisionAVR, utilizado para programar el microcontrolador para el fin
del proyecto.
10
Fig. 3 CodevisionAVR
Simulador de dispositivos elctricos y electrnicos Isis Profesional
!
+
!
+ +
11
!
6
+
'
'
!
ALGORITMO DE PROGRAMACIN
Generar coeficiente de la
onda mediante las series de
Taylor.
Redondeo de valores.
Amplitud y frecuencia
Reconstruccin de la seal
mediante la DAC.
Resultado de la
onda requerida por
el usuario
12
CODIGO EN CODEVISIN
#include <mega32.h>
#include <delay.h>
#include <stdio.h>
float tayl, tay;
float num;
int x=0, k=0;
flash char sinewave[]={
0, 0, 1, 1, 1, 1 , 1 , 1, 1, 1, 1 , 1 , 2, 2, 2 , 2, 2 , 2 , 2, 2 , 2, 2, 3, 3, 3, 3 ,
3 , 3, 3 , 3, 3, 3, 4 , 4 , 4 , 4 , 4, 4, 4 , 4 , 4 , 4 , 4 , 5 , 5 , 5, 5, 5 , 5, 5, 5, 5 ,
5, 5, 5 , 6 , 6 , 6 , 6, 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 7 , 7, 7 , 7, 7, 7, 7, 7 , 7 ,
7, 7, 7 , 7 , 7 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8, 8 , 8 ,
8 , 9, 9, 9 , 9, 9, 9, 9, 9, 9 , 9, 9, 9, 9, 9 , 9, 9 , 9 , 9, 9, 9, 9 , 9, 9, 9 , 10 ,
10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10 , 10,
9 , 9 , 9 , 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 , 9, 9, 9, 9, 9, 9,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 , 7 , 7 , 7 , 7 , 7 ,
7 , 7 , 7, 7 , 7, 7 , 7 , 7 , 7 , 6, 6 , 6 , 6 , 6, 6 , 6 , 6, 6,
6, 6 , 6, 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 ,5 , 4 , 4 , 4
, 4 , 4 , 4, 4 , 4 , 4 , 4 , 4 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3
, 2 , 2 , 2, 2 , 2, 2, 2 , 2 , 2 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1
, 1 , 1 , 1 , 0 , 0 , 0 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -2
, -2 ,-2 , -2 , -2 , -2 , -2 , -2 , -2 , -2 , -3 , -3 , -3 , -3 , -3 , -3 , -3 , -3
, -3 , -3 , -4 , -4 , -4 ,-4 , -4 , -4 , -4 , -4 , -4 , -4 , -4 , -5 , -5 , -5 , -5
, -5 , -5 , -5 , -5 , -5 , -5 , -5 , -5 , -6 ,-6 , -6 , -6 , -6 , -6 , -6 , -6 , 6 , -6 , -6 , -6 , -7 , -7 , -7 , -7 , -7 , -7 , -7 , -7 , -7 , -7 ,-7 , -7 , -7 ,
-7 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8
, -8 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , 9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -10 , -10 , -10 , -10 , -10 , -10 , -10 ,
-10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 ,-10 , -10 , -10 , -9 , -9 ,
-9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -9 , -8 , -8 , -8 , -8 , -8 , -8 , -8
, -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8 , -8, -8 , -7 , -7 , -7 , -7 , -7 , -7 , -7
, -7 , -7 , -7 , -7 , -7 , -7 , -7 , -6 , -6 , -6 , -6 , -6 , -6 , -6 , -6 , -6 , 6 , -6 , -6 , -6 , -5 , -5 , -5 , -5 , -5 , -5 , -5 , -5 , -5 , -5 , -5 ,-4 , -4 ,
-4 , -4 , -4 , -4 , -4 , -4 , -4 , -4 , -4 , -3 , -3 , -3 , -3 , -3 , -3 , -3 , -3 ,
-3 , -3 , -3 , -2 , -2 , -2 , -2 , -2 , -2 , -2 , -2 , -2 , -2 , -1 , -1 , -1 , -1 ,
-1 , -1 , -1 , -1 , -1 , -1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2, 2
, 2, 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 4 ,
4, 4 , 4, 4 , 4, 4 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5
, 6 , 6 , 6 , 6 , 6, 6, 6 , 6, 6 , 6 , 6 , 6 , 6 , 7 , 7 , 7 , 7 , 7
, 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7, 7, 7 , 8, 8 , 8 , 8 , 8 , 8 , 8 ,
8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8, 8 , 9 , 9 , 9 , 9 , 9 ,
9 , 9 , 9 , 9 , 9 ,9 , 9 ,9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 9, 9 , 9,
9 , 9 , 9 , 9 , 9 , 9 , 9 , 9 ,9 , 9 ,9 , 9 , 9 , 9 , 9 , 9 , 9 , 9
, 9, 9 , 9, 9 , 9 ,9 , 9 , 9 , 9 , 9 , 9 ,9 , 9 ,9 , 9 , 9 , 9 ,
9 , 9 , 9 , 8 , 8, 8 , 8, 8, 8 ,8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 ,8
13
, 7
, 6
, 3
1 ,
-6 ,
-13
, 7 , 7 , 7
, 5 ,5 , 5
, 3 , 2 ,2
-1 , -2 , -2
-7 , -7 , -8
, -14 , -14
, 7 , 7 , 7, 7, 7 , 7, 7, 6 , 6 , 6 , 6 , 6 , 6 , 6
, 5 ,5 , 5 , 5 , 4 , 4, 4, 4 , 4, 4 , 3 , 3 , 3 , 3
, 2 , 2 , 2 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , -1 , -1 , , -2 , -2 , -3 , -3 , -3 , -4 , -4 , -4 , -5 , -5 , -5 , -6 , -6 ,
, -8 , -8 , -9 , -9 , -10 ,-10 , -10 ,-11 , -11 ,-12 , -12 , -13 ,
};
flash char triwave[]={
-1, -1,
, -1 , -1
-1 , -1 ,
-1 , -1,
-1 , -1 ,
-1 , -1,
, -1 , -1
1 , 1,
, 1 , 1
1 , 1,
, 1, 1
1 , 1 ,
-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1
, -1 , -1 , -1 , -1 , -1 , -1 , -1, -1, -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
-1, -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 ,
-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1,
-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1
, -1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1, 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1
, 1 , 1 , 1 , 1 , 1 , 1 , 1, 1 , 1, 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1, 1 , 1 , 1, 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1
, 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1, 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,1
};
10 , -10 , -10 , -10, -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , 10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10,
-10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 ,
-10 , -10 , -10 , -10 , -10 , -10 , -10, -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , 10 , -10 ,-10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10 , -10, -10 , 10 , -10 , -10 , 10
};
void main(void)
{
int frec, amplitud,b,C, resultado;
char i, inc=1;
int j;
k=1;
frec=1;
amplitud =1;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0xFF;
while (1)
{
if(PINB.0==0) {
inc=inc+1;
delay_ms(500);
}
if(PINB.1==0) {
inc=inc-1;
delay_ms(500);
}
if(inc==1 && PINB.1==0){
inc=1;
}
if(PINB.2==0) {
for (x=0; x<=255; x=x+inc)
{
PORTD=sinewave[x];
}
}
if(PINB.3==0){
for (x=0; x<=255; x=x+inc)
{
PORTD=triwave[x];
15
}
}
if(PINB.4==0){
for (x=0; x<=255; x=x+inc)
{
PORTD=squawave[x];
}
}
};
}
CIRCUITO UTILIZADO
16
SIMULACIONES
17
RESULTADOS
18
CRONOGRAMA
CONCLUSIONES
Las series de Taylor nos permite aproximar el valor de una funcin a su valor real
con un grado de error y esta depende de el numero de trminos que se utilice.
Al agregar ms trminos a la serie de Taylor, su valor resulta ser ms exacto, es
decir mientras menos trminos tenga la serie el error ser ms grande.
El muestreo de seales es el primer paso en el procesamiento de seales discretas
(DSP).
Para procesar una seal analgica primero se la debe muestrear en intervalos
uniformes, luego debemos cuantizarla.
Tanto el muestreo como la cuantizacin conducen a una prdida potencial de
informacin.
En los microcontroladores la memoria de instrucciones y datos est integrada en el
propio chip. Una parte es voltil, tipo ROM y la otra es de tipo RAM, voltil.
Los principales recursos especficos que incorporan los microcontroladores son:
temporizadores,
Perro guardin o "Watchdog", Proteccin ante fallo de
alimentacin o "Brownout", Estado de reposo o de bajo consumo, Conversor A/D
(CAD), Comparador analgico, Conversor D/A (CDA), Modulador de anchura de
impulsos o PWM.
REFERENCIAS BIBLIOGRAFICAS
[1]. Molinas P, Martnez P. Aplicaciones de la derivada. UOC. MECD. Consultado el
24 de mayo de 2010. Disponible en: http://www.acienciasgalilei.com/mat/pdfmat/aplicaciones_derivadas.pdf
[2]. Las series de Taylor. Consultado el 22 de mayo de 2010. Disponible en:
http://lc.fie.umich.mx/~calderon/programacion/Mnumericos/STaylor.html
[3]. Meja Jos Fernando. Desarrollo en las series de Taylor. Consultado el 22 de mayo
de
2010.
Disponible
en:
http://descartes.cnice.mec.es/materiales_didacticos/Desarrollo_serie_taylor/Desarro
llo_en_serie_de_taylor.htm
19
20