Código fuente de la empresa de suministro de agua
Las wavelets sí que tienen aplicaciones en este campo. Se recomienda ir directamente a la biblioteca para pedir prestado "MATLAB Wavelet Analysis (editado por Zhang Defeng et al.)" (Segunda edición). No sé si hay una primera edición. Una sección está dedicada a discutir cómo usar wavelets para detectar el primer tipo de puntos discontinuos y el segundo tipo de puntos discontinuos, y existen métodos para eliminar puntos singulares. Sea más específico.
Según su pregunta complementaria, creo que puede utilizar la distancia euclidiana como medida de fluctuación. El procedimiento específico es el siguiente:
Data=[...
20000101 1221790 794164 427626
20000102 1282410 833566.4 448843.6?
20000103 1241980 807287 434693?
20000104 1265880 822822 443058?
20000105 1301360 767802 533558?
20000106 70 727255 571415
20000107 1273770 700573.5 573196.5 p>
20000108 1300620 845403 455217?
20000109 1301750 846138 455612?
20000110 1318300 856895?
2 000011 1 1327550 862908 464642?
20000112 1356910 800577 556333
20000113 1329360 744442 584918
20000114 1312580 721919 590661
20000115 3 0460 864799 465661
20000116 1416710 855861.4 460848.6?
20000117 1293410 840717 452693?
20000118 1303150 847047.4 456102.6?
20000 119 1304690 769767 53492 3?
20000120 1301800 729008 572792
];
Fecha=datos(:,1)-20000000;
datos=datos(:,2:end);
x 1 = datos (:, 1);
x2 = datos (:, 2);
x3 = datos (:, 3); /p>
x 1 _ m = media (x 1);
x2 _ m = media (x2);
x3 _ m = media (x3); /p>
data_m=repmat([x1_m, x2_m, x3_m], tamaño(datos, 1), 1
temp=(datos-datos_m). ^2;
temp = sum(temp ')';
stem(fecha, temperatura);
Los resultados obtenidos son los siguientes:
Se puede observar que las mayores fluctuaciones son 65438 el 6 de octubre y 65438 el 16 de octubre. Usted mismo puede establecer un umbral y todo lo que supere el umbral se considera un valor singular.