Matlab - Generar repetición del periodo calculado

 
Vista:
sin imagen de perfil

Generar repetición del periodo calculado

Publicado por Jorge (4 intervenciones) el 11/03/2017 21:44:57
Buenas noches,
he realizado un código para la saturación de una onda sinusoidal, sin embargo, solo consigo que se sature en el primer periodo, a partir del cual los valores son cero, por mi forma de calcularlo, es posible repetir este periodo durante el tiempo analizado, para obtener la misma onda durante los siguientes periodos.
Adjunto aquí el código, el ploteado conseguido y el resultadod deseado.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
f=50; %Hz
w=2*pi*f;
tc=linspace(0,0.1,1000);
Amp=10;
OndaSin=Amp*sin(w*tc);
f4=figure;
plot(tc,OndaSin)
Tc=0.007;
fc1=((tc<Tc)).*OndaSin+((tc>=Tc)).*0;
fc2=(tc>=0.01).*OndaSin+(tc<0.01).*0;
fc3=(tc>=(0.01+Tc)).*OndaSin+(tc<(0.01+Tc)).*0;
fc=fc1+fc2-fc3;
 
f5=figure
plot(tc,fc)


Gracias de antemano.
Saludos
Sinusoide-Saturada
Resultado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Generar repetición del periodo calculado

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 12/03/2017 01:58:02
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
clear all
f=50;
w=2*pi*f;
tc=linspace(0,0.1,1000);
Amp=10;
OndaSin=Amp*sin(w*tc);
figure(1);
plot(tc,OndaSin)
grid on
Tc=0.007;
 
 
 
figure(2)
i=1;
j=1;
n=1;
k=0;
tcc=tc(j:j+199);
fc1=(tcc<(i-0.15*k)*Tc).*OndaSin(j:j+199) ;
fc2=(tcc>=0.01*n).*OndaSin(j:j+199);
fc3=(tcc>=(0.01*n+Tc)).*OndaSin(j:j+199) ;
fc=fc1+fc2-fc3;
plot(tcc,fc)
grid on
 
figure(3)
k=1;
j=201;
i=4;
n=3;
tcc=tc(j:j+199);
fc1=(tcc<(i-0.15*k)*Tc).*OndaSin(j:j+199)  ;
fc2=(tcc>=0.01*n).*OndaSin(j:j+199);
fc3=(tcc>=(0.01*n+Tc)).*OndaSin(j:j+199);
fc=fc1+fc2-fc3;
plot(tcc,fc)
grid on
 
figure(4)
k=2;
j=401;
i=7;
n=5;
tcc=tc(j:j+199);
fc1=(tcc<(i-0.15*k)*Tc).*OndaSin(j:j+199)  ;
fc2=(tcc>=0.01*n).*OndaSin(j:j+199);
fc3=(tcc>=(0.01*n+Tc)).*OndaSin(j:j+199);
fc=fc1+fc2 -fc3;
plot(tcc,fc)
grid on
 
figure(5)
k=3;
j=601;
i=10;
n=7;
tcc=tc(j:j+199);
fc1=(tcc<(i-0.15*k)*Tc).*OndaSin(j:j+199)  ;
fc2=(tcc>=0.01*n).*OndaSin(j:j+199);
fc3=(tcc>=(0.01*n+Tc)).*OndaSin(j:j+199);
fc=fc1+fc2 -fc3;
plot(tcc,fc)
grid on
 
 
figure(6)
i=1;
j=1;
n=1;
k=0;
for j=1:200:length(tc)
    tcc=tc(j:j+199);
  fc1=(tcc<(i-0.15*k)*Tc).*OndaSin(j:j+199)  ;
fc2=(tcc>=0.01*n).*OndaSin(j:j+199);
fc3=(tcc>=(0.01*n+Tc)).*OndaSin(j:j+199);
fc=fc1+fc2 -fc3;
plot(tcc,fc)
hold on
k=k+1;
n=n+2;
i=i+3;
end
grid on
hold off


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar