Matlab - Plotear/Dibujar la envolvente de una señal

 
Vista:

Plotear/Dibujar la envolvente de una señal

Publicado por Jorge (4 intervenciones) el 19/05/2011 13:02:27
Tengo una señal con mucho ruido y necesito obtener la envolvente y dibujarla en una figura. Creo que se puede utilizar hilbert, pero no sé como hacerlo, aunque me parece que se puede hacer de alguna otra forma.

¿Alguien me puede ayudar? Un saludo.
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

Plotear/Dibujar la envolvente de una señal

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 19/05/2011 13:36:32
HOla Jorge.

1). POr tu pregunta anterior del foro. Veo que la señal son vectores cuyas entradas son valores numericos.
2). Ahora la pregunta en este nuevo pregunta que haz hecho, seria.
¿Dentro de ese vector, cuales elementos del vector son los que forman el envolvente.?.
Trata de hacer tu pregunta en terminos matematicos y no en terminos electronicos. Creo que si tu pregunta hubieras hecho en lenguaje matematico,ya te habrian contestado. El problema es que no todos los que entran al foro son ELECTRONICOS, pero si con CONOCIMIENTOS DE MATLAB.
Porque tu me hablas de dibujar, y para dibujar necesitas dos vectores (X,Y), y aplicar la funcion plot

Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
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

Plotear/Dibujar la envolvente de una señal

Publicado por Jorge (4 intervenciones) el 19/05/2011 14:29:38
Hola, a ver si me puedo explicar bien, porque matemáticamente no tengo mucha idea.

Yo tengo un .txt con datos numéricos llamado eco1.txt. Para crear la señal hago esto:

load eco1.txt;
fm=210E3; %esto es la frecuencia de muestreo
Tm=1/fm; %esto es el período de muestreo
vector_tiempos_1=Tm*(0:length(eco1)-1); %así se obtienen los tiempos de la señal

Entonces ahora tengo los datos de la señal en eco1 y en vector_tiempos_1 están los datos del tiempo, así que la señal se plotea con:

plot(vector_tiempos_1,eco1);

Así tengo la señal original, en función del tiempo.

Ahora lo que necesito es obtener la envolvente de esa señal, es decir, dibujar la silueta, el perfil... no sé como llamarlo. La envolvente la forman los máximos de la señal en cada período, tren de pulsos... no se como decirlo matemáticamente.

Si por ejemplo tenemos una señal senoidal que cada máximo va variando, por ejemplo primero la amplitud máxima es 3, luego 2, luego 4, luego 1, no es continua sino que varía en el tiempo, pues entonces lo que necesito es unir esos puntos.

¿Me entiendes?

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

Plotear/Dibujar la envolvente de una señal

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 19/05/2011 15:05:18
HOla Jorge.
"Si por ejemplo tenemos una señal senoidal que cada máximo va variando, por ejemplo primero la amplitud máxima es 3, luego 2, luego 4, luego 1, no es continua sino que varía en el tiempo, pues entonces lo que necesito es unir esos puntos.".

Porque no resuelves manualmente este ejemplo que estas planteando y lo pones al foro.
1) Primero me hablas de señal senoidal(que es eso), no has puesto ese señal.
2). Que es amplitud?.
3). Eso de unir los puntos si entiendo.

OBSERVACION: Asume que eres profesor de ese curso, y tienes enseñar ese tema y los alumnos no conocen ese tema y encima no tienes computadores para hacer simulaciones, por lo tanto tendras que simularlo manualmente.
Creo que es una manera perfecta de aprender como funcionan exactamente loque quieres hacer.
Los comandos de matlab son codigos, y quien haya hecho ese codigo, sabia perfectamente como se resolvian manualmente los problemas, por ello pudo hacer un algoritmo y de ello hacer el programa, y ese programa viene a ser uno de los comandos de matlab.


Reselve este problema manualmente. y lo pones y tu pregunta va ser contestada.


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
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

Plotear/Dibujar la envolvente de una señal

Publicado por ana (25 intervenciones) el 17/11/2011 19:46:16
Hola,

Yo tengo el mismo problema que tu, quiero hallar la envolvente de una señal, concretamente de una señal capturada con un micrófono durante 10 segundos.

Le pregunté a mi tutor de proyecto y me dijo que tenía que hacer dos cosas:

1. Obtener la señal rectificada, me explico, señal positiva, abs(señal)
2. A esa señal rectificada le aplicas un filtro IIR con una frecuencia de corte que sea más o menos la mitad de la frecuencia de muestreo. Puedes usar el filtro butter con un orden de 4 y el segundo parámetro se calcula así: 2*fcorte/fmuestreo
[a b]=butter(4,2*fcorte/fmuestreo);
sal=filter(a,b,senal);

Esto debería funcionar aunque te digo que yo todavía no he conseguido exactamente lo que quería. Si ya has solucionado tu problema, cómo lo has hecho.

Un saludo
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