0% encontró este documento útil (0 votos)
5 vistas9 páginas

Generador de Funciones en Linux

Este documento presenta un proyecto de un generador de funciones en entorno Linux desarrollado por estudiantes de la Universidad Mayor de San Andrés. El proyecto codifica funciones para generar ondas sinusoidales, cuadradas, triangulares y dientes de sierra. Estas funciones se implementan en un programa para dibujar y mostrar las diferentes formas de onda. El proyecto cumple con su objetivo de desarrollar una herramienta para generar funciones, aunque se reconoce que queda trabajo por hacer para mejorar y complementar la aplicación.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas9 páginas

Generador de Funciones en Linux

Este documento presenta un proyecto de un generador de funciones en entorno Linux desarrollado por estudiantes de la Universidad Mayor de San Andrés. El proyecto codifica funciones para generar ondas sinusoidales, cuadradas, triangulares y dientes de sierra. Estas funciones se implementan en un programa para dibujar y mostrar las diferentes formas de onda. El proyecto cumple con su objetivo de desarrollar una herramienta para generar funciones, aunque se reconoce que queda trabajo por hacer para mejorar y complementar la aplicación.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Mayor de San Andrés

Facultad de Ingeniería Electrónica

PROYECTO
LINUX
GENERADOR DE
FUNCIONES

ETN 903 – SISTEMAS DE COMPUTACION

PRESENTADO POR: GRUPO 13


EDWIN JHONNY COHARITA CALLISAYA
RAUL FERNANDO GONZALES TICONA
WILLIAMS QUISPE LUCANA
DOCENTE: Ing. JAVIER SANABRIA GARCIA

FECHA: 16/06/2023
LA PAZ - BOLIVIA
1. ANTECEDENTES

Un generador de señales, de funciones o de formas de onda es un dispositivo electrónico


de laboratorio que genera patrones de señales periódicas o no periódicas tanto analógicas como digitales.
Se emplea normalmente en el diseño, prueba y reparación de dispositivos electrónicos; aunque también
puede tener usos artísticos y ser empleado en la medicina.
En junio de 1928, el General Radio 403, fue el primer generador de señal comercial que fue comercializado. Admitía un
rango de frecuencia de 500Hz a 1.5MHz.1 Además, en abril de 1929, General Radio comercializó el primer estándar de
frecuencia comercial con una frecuencia de 50 kHz

OBJETIVO:

Desarrollar un generador de funciones en entorno Linux para aplicaciones posteriores y uso como
herramienta en laboratorio.

ANALISIS:
Para generar las funciones se codifico de la siguiente manera:
Onda sinusoidal:
/*-------------------------Dibuja sin(x)------------------------*/
int seno(float F)
#define DELTA 2
#define N 360
#define W M_PI/180
{
float t=0, y;
int X[500], Y[500];
SDL_SetRenderDrawColor(artist, 0x0, 0x0, 0x0, 255);
for(i=0;i<=N/DELTA;i++)
{
X[i] = floor(t) + MidX;
y = floor(Amp*sin(F*W*t));
Y[i] = -y + MidY;
t = t + DELTA;
}
for(i=0;i<=N/DELTA-1;i++)
SDL_RenderDrawLine(artist,X[i],Y[i],X[i+1],Y[i+1]);
}

Para la onda cuadrada:


/*-------------------------Dibuja onda cuadrada------------------------*/
int cuadrada(float F)
#define DELTA 2
#define N 360
#define W M_PI/180//M_PI constante 3,14159
{
float t=0, y; //variables
int X[500], Y[500]; //locales
SDL_SetRenderDrawColor(artist, 0x0, 0x0, 0x33, 255);
for(i=0;i<=N/DELTA;i++)
{
//floor redondea al entero menor
X[i] = floor(t) + MidX;
y = floor(Amp*sin(F*W*t));
if(y>=0)
y=Amp;
else
y=-Amp;
Y[i] = -y + MidY;
t = t + DELTA;
}
for(i=0;i<=N/DELTA-1;i++)
//SDL_RenderDrawLine funcion para dibujar una linea
SDL_RenderDrawLine(artist,X[i],Y[i],X[i+1],Y[i+1]);
}
Para la onda triangular:
/*-------------------------Dibuja onda triangular------------------------*/
int triangular(float F)
#define DELTA 2
#define N 360
#define W M_PI/180//M_PI constante 3,14159
{
float t=0, y, h,j=1,fact=0;
int X[500], Y[500];
SDL_SetRenderDrawColor(artist, 0x66, 0xFF, 0x00, 255);
for(i=0;i<=N/DELTA;i++)
{
X[i] = floor(t) + MidX;
y = (floor(Amp*t*F/90)*pow((-1),(j+1)))+(pow((-1),(j))*fact*Amp);
h = fabs(y);
if (h<=fabs(Amp))
Y[i]=-y+MidY;
else
{Y[i]=MidY+pow((-1),(j))*fabs(Amp);
j++;
fact=fact+2;}
t=t+DELTA;
}
for(i=0;i<=N/DELTA-1;i++)
//SDL_RenderDrawLine funcion para dibujar una linea
SDL_RenderDrawLine(artist,X[i],Y[i],X[i+1],Y[i+1]);
}

Para la onda diente de sierra:


/*-------------------------Dibuja onda diente de sierra------------------------*/
int sierra(float F) //funcion recibe el parametro F
#define DELTA 2
#define N 360
#define W M_PI/180//M_PI constante 3,14159
{
float t=0, y, g=0;
int X[500], Y[500];
SDL_SetRenderDrawColor(artist, 0x66, 0xFF, 0x00, 255);
for(i=0;i<=N/DELTA;i++)
{
X[i] = floor(t) + MidX;
y = floor((Amp*t*F/(180))-Amp)-g*Amp;
if (y<=Amp)
Y[i]=-y+MidY;
else
{Y[i]=MidY-fabs(Amp);
g=g+2;}
t=t+DELTA;
}
for(i=0;i<=N/DELTA-1;i++)
SDL_RenderDrawLine(artist,X[i],Y[i],X[i+1],Y[i+1]);
}

APLICACIÓN:

Se implementa las señales en base al programa proporcionado:


CONCLUSIONES:

Se logro el funcionamiento de las señales requeridas


Por carencia de tiempo queda realizar mejoras y complementar.

También podría gustarte