Matlab - Señal cuadrada en MatLab

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 20 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Señal cuadrada en MatLab

Publicado por Jessica Alexandra (1 intervención) el 17/08/2019 18:03:00
senal

Hola, que función en MatLab podría utilizar para generar esta señal cuadrada de forma automática?, solo entre t=-2 y t=6. Luego tengo que hacerle corrimiento a esta señal. GRACIAAAS!!!

La función debe de ser algo similar a esta:
function x=funciondet(t)
x=0*(t==-1)+1*((t>=0)&(t<=1))+2*(t==2)+1*((t>=3)&(t<=4))+0*(t==5)+(-1)*(t==6);

Pero en este caso con los puntos de la función de la imagen.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
2
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 8.024
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Señal cuadrada en MatLab

Publicado por JOSE JEREMIAS CABALLERO (5780 intervenciones) el 17/08/2019 19:37:54
1
2
3
4
function x=funciondet(t)
x=0*(t<=-1)+ 1*((t>=-1)&(t<=1))+ 0*((t>=1)&(t<=3)) +1*((t>=3)&(t<=5))+0*((t>=5)&(t<=6));
plot(t,x)
axis([-2 6 -2 3])

1
t=-2:0.00001:6; funciondet(t);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Juan Carlos
Val: 39
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Señal cuadrada en MatLab

Publicado por Juan Carlos (22 intervenciones) el 18/08/2019 21:13:05
Esta pregunta me parece muy interesante, de la inicial me ha dado esta otra cuestión.
Supongamos que se requiere un pulso cuadrado/tren de pulso/señal cuadrada de manera arbitraria.
Entiendo que en simulink hay un bloque que permite hacer las veces de un generador de señales (senoidal, cuadrada, triangular)
Pero omitiendo esta alternativa como podria generar un tren de pulso, por ejemplo de amplitud uno y periodo 1 ms a mano?

Supongo que en el ejemplo anterior virtualmente se construyo la señal de -2 a 6 por trozos.
Pero generalizarlo no se que tan complicado sea de esta manera.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 8.024
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Señal cuadrada en MatLab

Publicado por JOSE JEREMIAS CABALLERO (5780 intervenciones) el 18/08/2019 22:03:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function periodica(a,b)
close all
hold on
for i=a:4:b
    t=i:0.001:(i+4);
    x=funciondet1(t,[t(1) t(1)+1 t(1)+3 t(1)+4]);
    plot(t,x,'b')
    axis([a b -1 2])
    grid on
end
hold off
end
 
function x=funciondet1(t,s)
for  i=1:length(t)
if t(i)<=s(2)
    x(i)=0;
elseif t(i)>s(2)&& t(i)<=s(3)
    x(i)=1;
elseif t(i)>s(3)&& t(i)<=s(4)
    x(i)=0;
end
end
 
 
end


1
2
3
>> periodica(-2,12)
>> periodica(0,18)
>> periodica(2,18)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 8.024
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Señal cuadrada en MatLab

Publicado por JOSE JEREMIAS CABALLERO (5780 intervenciones) el 23/08/2019 14:43:03
1
2
3
4
5
6
7
8
9
10
11
12
function senal_cuadrada1(a,b)
    hold on
    for i=a:4:b
        t=i:0.001:(i+4);
        s=[t(1)+1 t(1)+3 t(1)+4];
        x=(t<=s(1))*0+(t>s(1)& t<=s(2))*1+(t>s(2)& t<=s(3))*0;
        plot(t,x,'r')
        axis([a b -1 2])
        grid on
    end
    hold off
end


1
senal_cuadrada1(-2,12)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar