I have a time series of temperature and I want to fit a polynomial of this kind T=A (log t)+B (log t)^2+ .......... so on
remove noise from data by polynomial fitting
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Matlabuser
le 27 Oct 2014
Commenté : Image Analyst
le 28 Oct 2014
Hi everyone, I want to remove noise from my data and for that I want to fit a polynomial. Can anyone plz tell me how can we remove noise in matlab?
Thanks
Réponse acceptée
Image Analyst
le 28 Oct 2014
x = log(t);
coefficients = polyfit(x, T, 1);
See full demo (with a different equation) attached.
4 commentaires
Image Analyst
le 28 Oct 2014
You need to give more interpolation points, like
% Setup:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
imtool close all; % Close all imtool figures if you have the Image Processing Toolbox.
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 20;
t=[10:100:2500];
% T=A (log t)+B (log t)^2
A = 5;
B = 3;
T = A * log(t) + B * log(t).^2
% Add noise so it's not so perfect.
T = T + 50*rand(1, length(T));
% Plot training data
plot(t, T, 'bo', 'LineWidth', 2);
grid on;
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0.1 1 .75]);
hold on;
%--------------------------------------------------------------
% Find polynomial
x=log(t); % Transform t so it's a lienar least squares situation.
% Now T = A*x + B*x^2 and we can fit a second order polynomial.
coefficients = polyfit(x,T,2)
% Interpolate additional points for a total of 300.
extra_x = linspace(x(1), x(end), 300);
fittedData = polyval(coefficients, extra_x);
% But we want to plot against t, not x so we need to recover t from extra_x.
extra_t = exp(extra_x);
plot(extra_t, fittedData, 'r*-', 'LineWidth', 2);
xlabel('t', 'FontSize', fontSize);
ylabel('T', 'FontSize', fontSize);
title('T vs. t', 'FontSize', fontSize);
legend('Training Data', 'Fit');
Voir également
Catégories
En savoir plus sur Axis Labels dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!