Matlab - Encontrear maximos de una señal

 
Vista:
Imágen de perfil de Jordy
Val: 40
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Encontrear maximos de una señal

Publicado por Jordy (15 intervenciones) el 20/03/2020 19:20:02
Hola gente

Necesito encontrar los 4 valores mas altos de un vector (es una señal sinusoidal). Luego graficar el vector, marcar los 4 máximos y mostrar en la leyenda el valor de los 4 máximos encontrados respecto al eje x.

Como lo puedo hacer?

adjunto imagen de ejemplo.

Screenshot_1
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: 8.024
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Encontrear maximos de una señal

Publicado por JOSE JEREMIAS CABALLERO (5780 intervenciones) el 20/03/2020 20:39:26
¿ los 4 valores más alto o los 4 picos más alto?.

1
2
3
4
5
6
7
8
9
10
11
clear
figure(gcf)
x=linspace(0.1,1,10);
y=sin(2000./x).*cos(5400*x).*((x).^x);
plot(x,y)
grid on
A=[x',y'];
hold on
B=sortrows(A,2,'descend');
plot(B(1:4,1),B(1:4,2),'*')
hold off
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 Jordy
Val: 40
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Encontrear maximos de una señal

Publicado por Jordy (15 intervenciones) el 20/03/2020 20:58:43
Los 4 picos mas altos. Disculpad mi error
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

Encontrear maximos de una señal

Publicado por JOSE JEREMIAS CABALLERO (5780 intervenciones) el 20/03/2020 21:44:02
1
2
3
4
5
6
7
8
9
10
11
12
13
clear
figure(gcf)
s=importdata('señal.txt');
f=importdata('frecuencia.txt');
plot(f,s)
hold on
minima_distancia_picos=0.5;
[picos,loc]=findpeaks(s,f);
B=sortrows([loc picos'],2,'descend');
plot(B(1:4,1),B(1:4,2),'*')
hold off
grid on
hold off

1
>> senal_4_picos_mas_altos
senal



Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online en Matlab
jjcc94@hotmail.com


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
Imágen de perfil de Jordy
Val: 40
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Encontrear maximos de una señal

Publicado por Jordy (15 intervenciones) el 20/03/2020 23:05:16
Gracias! Esto me sirve
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 Jordy
Val: 40
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Encontrear maximos de una señal

Publicado por Jordy (15 intervenciones) el 20/03/2020 21:09:38
Adjunto la señal y la frecuencia.
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