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 graba 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ñal 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 mediciones en kilogramos. El archivo de datos tiene las lecturas faltantes establecidas.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 cronograma de MATLAB®. Quite los puntos faltantes. Quite 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 el analizador de señal

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ñal En la pestaña, haga clic para abrir una vista de espectro.DisplaySpectrum En la pestaña, seleccione.TimeShow Markers Amplíe el tramo que falta estableciendo el valor de 200 y 250 días.Time Limits

Haga clic derecho en la señal en la tabla Signal y seleccione.Duplicate Cambie el nombre de la copia haciendo doble clic en la columna de la tabla Signal.PreprocessedName Deje la señal seleccionada.Preprocessed En la ficha, haga clic en ▼ y seleccione.AnalyzerPreprocessingResample En la ficha que aparece, introduzca una frecuencia de muestreo y seleccione el método.Resample 1 cycles/dayShape Preserving Cubic Haga clic.Resample Superponer la señal remuestreada en la pantalla seleccionando la casilla de verificación junto a su nombre.

Aléjese para revelar los datos de todo el año. En la ficha, establezca la fuga en el valor máximo.Spectrum Los espectros de las señales originales y remuestreados coinciden bien para la mayoría de las frecuencias. El espectro muestra dos picos notables, uno en torno a 0,14 ciclos/día y el otro en frecuencias muy bajas. Para ubicar los picos mejor, haga clic en ▼ y seleccione.Data CursorsTwo Coloque los cursores en los picos. Sitúe 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 se encuentra en 0,142857 = 1/7 ciclos/día, que corresponde a un ciclo de una semana.

  • El pico de baja frecuencia se encuentra en 0,004762 ciclos/día, lo que corresponde a un ciclo de 210 días.

Quite los cursores haciendo clic en el icono.Data Cursors Quite la señal original de la pantalla. Filtre la señal para eliminar los efectos de los ciclos.Preprocessed

  1. Para eliminar el ciclo de baja frecuencia, pase alto-filtre la señal. En la pestaña, seleccione.AnalyzerHighpass En la pestaña que aparece, introduzca una frecuencia de banda de paso de.Highpass0.05 cycles/day Utilice los valores predeterminados de los otros parámetros. Haga clic.Highpass

  2. Para eliminar el ciclo semanal, Bandstop-filtra la señal. En la ficha, haga clic en ▼ y seleccione.AnalyzerPreprocessingBandstop En la pestaña que reemplaza la pestaña, ingrese una frecuencia de banda de paso más baja y una frecuencia de banda de paso más alta de.BandstopHighpass0.135 cycles/day0.15 cycles/day Utilice los valores predeterminados de los otros 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 de la tabla señal para ver los pasos de preprocesamiento que se realizan en él.InfoPreprocessed

Para ver un resumen completo de los pasos de preprocesamiento, incluyendo todos los ajustes que eligió, haga clic en la pestaña.Generate FunctionAnalyzer La función generada aparece en MATLAB® editor.

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

Aplicaciones

Funciones

Ejemplos relacionados

Más acerca de