Hi everyone, please ask a question. How to remove bad values and filter the experimental data.The data is shown below.
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Wesley
el 9 de Nov. de 2021
Comentada: Wesley
el 9 de Nov. de 2021
4 comentarios
Chris
el 9 de Nov. de 2021
Editada: Chris
el 9 de Nov. de 2021
Okay, there is actually a bad value in this vector. You can find it with
badValues = ~isfinite(x);
Then you could choose whether to delete it, or replace it with a 0 or an averaged value based on neighboring values.
After that, you should be able to apply a low-pass filter to quiet the high-frequency noise if you have the Signal Processing Toolbox, or smoothdata, or something along those lines.
Respuesta aceptada
Image Analyst
el 9 de Nov. de 2021
Try movmean():
s = load('24v.mat')
u = s.u;
x = 1 : length(u);
% Interpolate nans
nanLocations = isnan(u);
u = interp1(x(~nanLocations), u(~nanLocations), x)
% Now u has been "repaired" by filling in nans.
% Plot repaired data.
plot(x, u, 'b-')
grid on;
% Smooth with movmean() function.
smoothu = movmean(u, 201);
% Plot smoothed data.
hold on;
plot(smoothu, 'r-', 'LineWidth', 4)
xlabel('Index', 'FontSize',17);
ylabel('Signal', 'FontSize',17);
legend('Original Signal', 'Smoothed Signal')
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!