Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

envelope

Envolvente de la señal

Descripción

ejemplo

[yupper,ylower] = envelope(x) devuelve las envolventes superior e inferior de la secuencia de entrada, x, como magnitud de su señal analítica. La señal analítica de x se obtiene utilizando la transformada de Fourier discreta según se implementa en hilbert. Inicialmente, la función elimina la media de x y la vuelve a añadir después de calcular las envolventes. Si x es una matriz, entonces envelope opera de forma independiente a lo largo de cada columna de x.

ejemplo

[yupper,ylower] = envelope(x,fl,'analytic') devuelve las envolventes de x determinadas utilizando la magnitud de su señal analítica. La señal analítica se calcula filtrando x con un filtro FIR de Hilbert de la longitud fl. Esta sintaxis se utiliza si solo especifica dos argumentos.

ejemplo

[yupper,ylower] = envelope(x,wl,'rms') devuelve las envolventes cuadradas medias de la raíz superiores e inferiores de x. Las envolventes se determinan utilizando una ventana deslizante de la longitud wl.

ejemplo

[yupper,ylower] = envelope(x,np,'peak') devuelve las envolventes cuadradas pico superiores e inferiores de x. Las envolventes se determinan utilizando la interpolación por splines sobre máximos locales separados por al menos np muestras.

ejemplo

envelope(___) sin argumentos de salida representa la señal y sus envolventes superior e inferior. Esta sintaxis acepta cualquiera de los argumentos de entrada de las sintaxis anteriores.

Ejemplos

contraer todo

Genere un chirp cuadrático modulado por un gaussiano. Especifique una tasa de muestreo de 2 kHz y una duración de señal de 2 segundos.

t = 0:1/2000:2-1/2000;
q = chirp(t-2,4,1/2,6,'quadratic',100,'convex').*exp(-4*(t-1).^2);
plot(t,q)

Figure contains an axes object. The axes object contains an object of type line.

Calcule las envolventes superior e inferior del chip utilizando la señal analítica.

[up,lo] = envelope(q);
hold on
plot(t,up,t,lo,'linewidth',1.5)
legend('q','up','lo')
hold off

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent q, up, lo.

La señal es asimétrica debido a la media distinta de cero.

Utilice envelope sin argumentos de salida para representar la señal y las envolventes como una función del número de la muestra.

envelope(q)

Figure contains an axes object. The axes object with title Analytic Envelope contains 3 objects of type line. These objects represent signal, envelope.

Cree una señal de dos canales muestreada a 1 kHz durante 3 segundos:

  • Un canal es una sinusoide decreciente exponencialmente. Especifique una frecuencia de 7 Hz y una constante de tiempo de 2 segundos.

  • El otro canal es un chirp con modulación gaussiana desplazado en el tiempo con un valor de DC de 2. Especifique una frecuencia de chirp inicial de 30 Hz que caiga a 5 Hz tras 2 segundos.

Represente la señal.

t = 0:1/1000:3;
q1 = sin(2*pi*7*t).*exp(-t/2);
q2 = chirp(t,30,2,5).*exp(-(2*t-3).^2)+2;
q = [q1;q2]';

plot(t,q)

Figure contains an axes object. The axes object contains 2 objects of type line.

Calcule las envolventes superior e inferior de la señal. Utilice un filtro de Hilbert con una longitud de 100. Represente los canales y las envolventes. Utilice líneas sólidas para las envolventes superiores y líneas de rayas para las envolventes inferiores.

[up,lo] = envelope(q,100,'analytic');
hold on
plot(t,up,'-',t,lo,'--')
hold off

Figure contains an axes object. The axes object contains 6 objects of type line.

Llame a envelope sin argumentos de salida para elaborar una gráfica de la señal y de sus envolventes como una función del número de muestras. Aumente la longitud del filtro a 300 para obtener una forma más suavizada. La bandera 'analytic' es el valor predeterminado cuando se especifican dos argumentos de entrada.

envelope(q,300)

Figure contains an axes object. The axes object with title Analytic Envelope contains 6 objects of type line.

Calcule y represente las envolventes de RMS variables de una grabación del silbato de un tren. Utilice una ventana con una longitud de 150 muestras.

load('train')

envelope(y,150,'rms')

Figure contains an axes object. The axes object with title RMS Envelope contains 3 objects of type line. These objects represent signal, envelope.

Represente las envolventes pico superior e inferior de una señal de habla suavizada a lo largo de intervalos de 30 muestras.

load('mtlb')

envelope(mtlb,30,'peak')

Figure contains an axes object. The axes object with title Peak Envelope contains 3 objects of type line. These objects represent signal, envelope.

Cree y represente una señal que se asemeje a la detección inicial de un pulso luminoso que se propague a través de un medio dispersivo.

t = 0.5:-1/100:-2.49;
z = airy(t*10).*exp(-t.^2);

plot(z)

Figure contains an axes object. The axes object contains an object of type line.

Determine las envolventes de la secuencia utilizando la magnitud de su señal analítica. Represente las envolventes.

envelope(z)

Figure contains an axes object. The axes object with title Analytic Envelope contains 3 objects of type line. These objects represent signal, envelope.

Calcule la envolvente analítica de la señal utilizando un filtro de Hilbert de 50 tomas.

envelope(z,50,'analytic')

Figure contains an axes object. The axes object with title Analytic Envelope contains 3 objects of type line. These objects represent signal, envelope.

Calcule la envolvente de RMS de la señal utilizando una ventana variable de 40 muestras. Represente el resultado.

envelope(z,40,'rms')

Figure contains an axes object. The axes object with title RMS Envelope contains 3 objects of type line. These objects represent signal, envelope.

Determine las envolventes pico. Utilice la interpolación por splines con condiciones not-a-knot sobre máximos locales separados por al menos 10 muestras.

envelope(z,10,'peak')

Figure contains an axes object. The axes object with title Peak Envelope contains 3 objects of type line. These objects represent signal, envelope.

Argumentos de entrada

contraer todo

Secuencia de entrada, especificada como vector o matriz. Si x es un vector, se trata como un solo canal. Si x es una matriz, entonces envelope calcula las estimaciones de envolventes de forma independiente para cada columna. Todos los elementos de x deben ser finitos.

Ejemplo: cos(pi/4*(0:159))+randn(1,160) es una señal de vector fila monocanal.

Ejemplo: cos(pi./[4;2]*(0:159))'+randn(160,2) es una señal de dos canales.

Tipos de datos: single | double

Longitud del filtro de Hilbert, especificada como escalar entero positivo. El filtro se crea disponiendo en ventanas un filtro paso bajo ideal con una ventana de Kaiser de longitud fl y parámetro de forma β = 8.

Tipos de datos: single | double

Longitud de la ventana, especificada como escalar entero positivo.

Tipos de datos: single | double

Separación de los picos, especificada como escalar entero positivo.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Envolventes de señal superior e inferior, devueltas como vectores o matrices.

Capacidades ampliadas

Historial de versiones

Introducido en R2015b