Borrar filtros
Borrar filtros

make my curve smooth

1 visualización (últimos 30 días)
fouad koudsi
fouad koudsi el 5 de Ag. de 2019
Respondida: Star Strider el 6 de Ag. de 2019
Hello,
Due to low sample rate my curve is not coming smooth, so I want to make it smooth
This is the code I am writting:
filename = 'All Data_10mm.xlsx';
%
sheet = '10 mm_1hz_0V_Test1'; % add sheet number
xlRange = 'B80:B101'; % X range
ylRange = 'E80:E101'; % Y range
[Disp, text, raw]= xlsread(filename,sheet,xlRange);
[force, text, raw]= xlsread(filename,sheet,ylRange);
plot(Disp,force,'-r')
hold all
grid on
grid minor
  2 comentarios
Rik
Rik el 5 de Ag. de 2019
Have you looked at the spline function?
Adam Danz
Adam Danz el 5 de Ag. de 2019
Editada: Adam Danz el 5 de Ag. de 2019

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 6 de Ag. de 2019
This is as close as I can get to what you want:
filename = 'All Data_10mm.xlsx';
sheet = '10 mm_1hz_0V_Test1'; % add sheet number
xlRange = 'B80:B101'; % X range
ylRange = 'E80:E101'; % Y range
[Disp, text, raw]= xlsread(filename,sheet,xlRange);
[force, text, raw]= xlsread(filename,sheet,ylRange);
plot(Disp,force,'-r')
hold all
grid on
grid minor
[minx,idx1] = mink(Disp,3);
[maxx,idx2] = maxk(Disp,2);
idxv = sort([idx1; idx2]);
for k = 1:numel(idxv)-1
xi = [idxv(k), idxv(k+1)];
Dispv(k,:) = linspace(Disp(xi(1)), Disp(xi(2)), 150);
% qx = Disp(xi(1):xi(2))
% qy = force(xi(1):xi(2))
forcev(k,:) = interp1(Disp(xi(1):xi(2)), force(xi(1):xi(2)), Dispv(k,:), 'pchip');
end
figure
plot(Dispv', forcev')
grid
title('‘pchip’ Interpolation')
producing:
make my curve smooth - 2019 08 05.png
Feel free to experimant with it.

Más respuestas (0)

Categorías

Más información sobre Smoothing en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by