# Graficar señal periódica en Matlab



## elece13 (Feb 28, 2009)

Tengo la siguiente duda, necesito saber cómo puedo hacer la función para una señal periódica y poder ingresarla en Matlab, como ejemplo pongo una señal triangular con las siguientes ecuaciones:

f(x)=x        para 0<x<1    
f(x)=2-x     para 1<x<2

Muestro la gráfica para que se entienda mejor.

No sé si me podrían dar algún consejo o sugerir alguna página donde pueda encontrar información sobre eso.

Tengo nociones básicas sobre Matlab, no se me dificulta utilizar una expresión matemática para graficarla o realizar operaciones con polinomios, sin embargo no tengo idea de qué tipo de ecuación se necesita para poder graficar una función como la menciona sin tener que utilizar intervalos.

De antemano, muchas gracias.


----------



## tiopepe123 (Feb 28, 2009)

La forma mas sencilla es utilizando un bucle for dentro de otro for dentro de otro for, o sea anidado 3 bucles for.


for numero de triangulos
   for subida
   for bajada
end
plot
Hay literatura en español sobre matlab, pero yo tambien se poco

Hay otro metodo con una sencilla formula y poco mas, pero es necesario exprimirse mas el coco


----------



## elece13 (Mar 5, 2009)

Sale, gracias, me has dado una buena idea.


----------



## juergenaut (Jun 28, 2010)

buenos dias a todos, me encuentro en el mismo problema al parecer, soy novaton en el uso de matlab y necesito generar una funcion para una onda triangular


----------



## nialsv (Mar 24, 2011)

hola, tambien tengo este problema. Quiero graficar la onda de un rectificador de onda completa. Haber si alguien se anima hacer algun codigo..
Saludos


----------



## asherar (Mar 24, 2011)

tiopepe123 dijo:


> La forma mas sencilla es utilizando un bucle for dentro de otro for dentro de otro for, o sea anidado 3 bucles for.
> 
> 
> for numero de triangulos
> ...



O yo no entiendo, o acá hay un error. 
No hay que anidar el bucle de bajada dentro del bucle de subida. Qué daría entonces ? 
Lo correcto es cerrar el bucle de subida y recién después iniciar el de bajada. 


```
for numero de triangulos
 for subida
  . . . . .
 end
 for bajada
  . . . . .
 end
end
plot
```


----------



## nialsv (Mar 25, 2011)

haber haber, aqui hice mi rectificador de onda completa. No se si ayude con tu problema, pero aqui esta mi aporte.

este es el codigo:






aqui esta la figura:


----------



## asherar (Mar 25, 2011)

la curva que mostrás es la del seno, no la triangular


----------



## sangreaztk (May 15, 2012)

Sé que el tema es algo antiguo. Pero Octave/Matlab es divertido, jajaja.
Aquí mi solución para crear n ciclos de una señal triangular:


```
function [t, y] = n_triang(t_up, t_fall, h, n)
  % regresa 'n' ciclos de una función triangular,
  % con 't_up' tiempo de subida y 't_fall' tiempo
  % de bajada. La amplitud es de 1.
  % 't' es el vector de tiempo resultante
  % 'y' los valores de la función.
 

  % [t, y] = n_triang(1, 1, 0.01, 5);
  % plot(t, y)
  
   y_up = (h:h:t_up)/t_up;
   y_fall = 1-(h:h:t_fall)/t_fall;
   
   i = 0;
   y = [0];
   for i = 1:n
     y = [y, y_up, y_fall];
   endfor
   
   t=0:h:(n*(t_up + t_fall));
   
 end
```

Saludos!

Sé que el tema es algo antiguo. Pero Octave/Matlab es divertido, jajaja.
Aquí mi solución para crear n ciclos de una señal triangular:


```
function [t, y] = n_triang(t_up, t_fall, h, n)
  % regresa 'n' ciclos de una función triangular,
  % con 't_up' tiempo de subida y 't_fall' tiempo
  % de bajada. La amplitud es de 1.
  % 't' es el vector de tiempo resultante
  % 'y' los valores de la función.
 

  % [t, y] = n_triang(1, 1, 0.01, 5);
  % plot(t, y)
  
   y_up = (h:h:t_up)/t_up;
   y_fall = 1-(h:h:t_fall)/t_fall;
   
   i = 0;
   y = [0];
   for i = 1:n
     y = [y, y_up, y_fall];
   endfor
   
   t=0:h:(n*(t_up + t_fall));
   
 end
```
Saludos!





			
				camiloyepez dijo:
			
		

> Amigooo espero puedas ayudarme, necesito q me des una asesoria, tengo q entregar un trabajo y vi que sabes arto del tema, gracias
> 
> 
> 
> necesito en scilab la ecuacion que me de el rectificador de media onda, el de onda completa y algunas otras mas, si alguien puede ayudarme le quedare inmensamente agradecido




Me parece que la sintaxis de Scilab es muy parecida a Octave/Matlab.
Una forma fácil de la función de un rectificador de onda completa y media onda ideales sería:


```
>>> t=0:0.01:4*pi;
>>> y=sin(t);
>>> plot(t, abs(y)) % onda completa
>>> plot(t, (y.*(y > 0))) % media onda
```

Saludos!


----------

