Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Remuestrear y filtrar una señal muestreada de forma no uniforme

Una persona registró su peso en libras durante el año bisiesto 2012. La persona no registraba su peso todos los días, por lo que los datos no son uniformes. Utilice la aplicación para preprocesar y estudiar el peso registrado.Analizador de señales La aplicación le permite rellenar los puntos de datos que faltan interpolando la señal a una cuadrícula uniforme. (Este procedimiento da los mejores resultados si la señal tiene sólo pequeños huecos.)

Cargue los datos y convierta las medidas en kilogramos. El archivo de datos tiene las lecturas que faltan establecidas en .NaN Faltan 27 puntos de datos, la mayoría de ellos durante un tramo de dos semanas en agosto.

wt = datetime(2012,1,1:366)';  load weight2012.dat wgt = weight2012(:,2)/2.20462;  validpoints = ~isnan(wgt); missing = wt(~validpoints); missing(15:26)
ans = 12x1 datetime array
   09-Aug-2012
   10-Aug-2012
   11-Aug-2012
   12-Aug-2012
   15-Aug-2012
   16-Aug-2012
   17-Aug-2012
   18-Aug-2012
   19-Aug-2012
   20-Aug-2012
   22-Aug-2012
   23-Aug-2012

Almacene los datos en un horario MATLAB®. Elimine los puntos que faltan. Retire el valor de CC para concentrarse en las fluctuaciones. Convierta la información de tiempo en una matriz restando el primer punto de tiempo.duration Para obtener más información, consulte .Tipos de datos admitidos por Signal Analyzer

wgt = wgt(validpoints); wgt = wgt - mean(wgt);  wt = wt(validpoints); wt = wt - wt(1);  wg = timetable(wt,wgt);

Abra y arrastre el horario a una pantalla.Analizador de señales En la pestaña, haga clic para abrir una vista de espectro.MonitorEspectro En la pestaña, seleccione .horaMostrar marcadores Amplíe el estiramiento que falta estableciendo los 200 y 250 días.Límites de tiempo

Haga clic con el botón derecho en la señal de la tabla Señal y seleccione .Duplicate Cambie el nombre de la copia haciendo doble clic en la columna de la tabla Signal.PreprocessedNombre Deje la señal seleccionada.Preprocessed En la pestaña, haga clic en .AnalizadorPreprocesamientoRemuestrear En la pestaña que aparece, especifique una frecuencia de muestreo y seleccione el método.Remuestrear 1 cycles/dayShape Preserving Cubic Haga clic.Remuestrear Superponga la señal remuestreada en la pantalla seleccionando la casilla de verificación situada junto a su nombre.

Alejar para revelar los datos de todo el año. En la pestaña, establezca la fuga en el valor máximo.Espectro Los espectros de las señales originales y remuestreadas coinciden bien para la mayoría de las frecuencias. El espectro muestra dos picos notables, uno alrededor de 0.14 ciclos/día y el otro a frecuencias muy bajas. Para localizar mejor los picos, haga clic en .Cursores de datosTwo Coloque los cursores en los picos. Pase el cursor sobre el campo de frecuencia de cada cursor para obtener un valor más preciso de su ubicación.

  • El pico de frecuencia media está en 0.142857 a 1/7 ciclos/día, que corresponde a un ciclo de una semana.

  • El pico de baja frecuencia está en 0.004762 ciclos/día, que corresponde a un ciclo de 210 días.

Elimine los cursores haciendo clic en el icono.Cursores de datos Retire la señal original de la pantalla. Filtrar la señal para eliminar los efectos de los ciclos.Preprocessed

  1. Para eliminar el ciclo de baja frecuencia, el paso alto filtra la señal. En la pestaña, seleccione .AnalizadorPasa-altos En la pestaña que aparece, ingrese una frecuencia de banda de paso de .Pasa-altos0.05 cycles/day Utilice los valores predeterminados de los demás parámetros. Haga clic.Pasa-altos

  2. Para eliminar el ciclo semanal, bandstop-filtra la señal. En la pestaña, haga clic en .AnalizadorPreprocesamientoBandstop En la pestaña que reemplaza la pestaña, ingrese una frecuencia de banda de paso más baja de y una frecuencia de banda de paso más alta de .BandstopPasa-altos0.135 cycles/day0.15 cycles/day Utilice los valores predeterminados de los demás parámetros. Haga clic.Bandstop

La señal preprocesada muestra menos fluctuación que la original. La forma de la señal sugiere que el peso de la persona varía menos en los meses de verano que en invierno, pero eso puede ser un artefacto del remuestreo. Haga clic en el icono de la columna de la entrada Tabla de señales de la señal para ver los pasos de preprocesamiento realizados en ella.InformaciónPreprocessed

Para ver un resumen completo de los pasos de preprocesamiento, incluidas todas las configuraciones que haya elegido, haga clic en la pestaña.Generar funciónAnalizador La función generada aparece en el Editor ® MATLAB.

function [y,ty] = preprocess(x,tx) %  Preprocess input x %    This function expects an input vector x and a vector of time values %    tx. tx is a numeric vector in units of seconds. %    Follow the timetable documentation (type 'doc timetable' in %    command line) to learn how to index into a table variable and its time %    values so that you can pass them into this function.  % Generated by MATLAB(R) 9.5 and Signal Processing Toolbox 8.1. % Generated on: 08-Jun-2018 14:35:38  targetSampleRate = 1.1574074074074073e-05; [y,ty] = resample(x,tx,targetSampleRate,'pchip'); Fs = 1/mean(diff(ty)); % Average sample rate y = highpass(y,5.787e-07,Fs,'Steepness',0.85,'StopbandAttenuation',60); y = bandstop(y,[1.5625e-06 1.73611111111111e-06],Fs,'Steepness',0.85,'StopbandAttenuation',60); end

Consulte también

Apps

Funciones

Ejemplos relacionados

Más acerca de