Matlab - eliminacion picos señal continua tiempo

 
Vista:

eliminacion picos señal continua tiempo

Publicado por Borja (1 intervención) el 25/11/2008 11:49:49
Hola!Tengo una duda sobre mi proyecto que me está volviendo loco y agradecería si alguien pudiese ayudarme.Tengo una señal contínua en el tiempo que presenta tramos donde los valores son prácticamente constantes e instantes de tiempo en el que la señal toma valores elevados (picos) que me gustaría eliminar.Alguien sabe qué se puede hacer?gracias de antemano!aviso:no tengo mucha idea de matlab
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

RE:eliminacion picos señal continua tiempo

Publicado por Ramiro (54 intervenciones) el 25/11/2008 19:31:56
Hola:
Lo que te sugiero es que uses la instrucción find para localizar aquellos valores de t en los cuales la señal excede un valor fijado por ti, digamos M.
k=find(y>M);
después redefinir y en esos valores, usando la instrucción:
y(k)=NaN;
por último grafica la nueva y modificada y observarás que los picos ya no existen.
plot(t,y)
Por ejemplo, si quisieramos eliminar los "picos" de la Serie de Fourier, en la cercanía de los puntos de discontinuidad de la onda cuadrada, lo haríamos así:
t = 0:.1:10;
% If we use the first, third, fifth, seventh, and ninth harmonics.
y = sin(t) + sin(3*t)/3 + sin(5*t)/5 + sin(7*t)/7 + sin(9*t)/9;
plot(t,y); %Gráfica completa de los armóonicos
k=find(abs(y)>0.85);
y(k)=NaN;
plot(t,y) %Gráfica donde se han eliminado los valores de y que exceden 0.85
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

RE:eliminacion picos señal continua tiempo

Publicado por anexo (54 intervenciones) el 26/11/2008 08:03:22
Si quisieras, además de eeliminar los picos, quedarte sólo con los valores constantes o quasiconstantes, usa lo siguiente:

t = 0:.1:10;
% Now use the first, third, fifth, seventh, and ninth harmonics...
y = sin(t) + sin(3*t)/3 + sin(5*t)/5 + sin(7*t)/7 + sin(9*t)/9+sin(11*t)/11+sin(13*t)/13;
subplot(1,2,1),plot(t,y)
k=find(abs(y)>0.85|abs(y)<0.65);
y(k)=NaN;
subplot(1,2,2),plot(t,y)
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