Graficar señal periódica en Matlab

#1
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.
 

Adjuntos

#2
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
 
#4
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
 
#5
hola, tambien tengo este problema. Quiero graficar la onda de un rectificador de onda completa. Haber si alguien se anima hacer algun codigo..
Saludos
 
#6
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
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.

Código:
for numero de triangulos
 for subida
  . . . . .
 end
 for bajada
  . . . . .
 end
end
plot
 
#7
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:
 
#9
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:

Código:
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:

Código:
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:

Código:
>>> t=0:0.01:4*pi;
>>> y=sin(t);
>>> plot(t, abs(y)) % onda completa
>>> plot(t, (y.*(y > 0))) % media onda
Saludos!
 
Última edición:
Arriba