How do you separate imported data into time and amplitude?

1 visualización (últimos 30 días)
James Adams
James Adams el 19 de Feb. de 2020
Comentada: James Adams el 20 de Feb. de 2020
%%i have imported notepad data into matlab, having difficulty seperating the data into seperate arrays. Any help?
  5 comentarios
Jon
Jon el 19 de Feb. de 2020
I don't see any problems with the code you wrote. I also confirmed that it ran OK. I think the pproach you have taken seems fine so far. Now was there something more that you were trying to do which you got stuck on?
James Adams
James Adams el 19 de Feb. de 2020
I now need to remove the trend from the data, without using the 'detrend' function that is on matlab.
Do you have idea on how to approach this? Below is a code that I was told to use, but I am not sure if this is correct.
plot(x,y - mean(y));
Could you confirm if this is true?
Many Thanks Jon

Iniciar sesión para comentar.

Respuesta aceptada

Jon
Jon el 19 de Feb. de 2020
Editada: Jon el 19 de Feb. de 2020
If by detrend you mean that you want to remove the part of the signal that is growing linearly with time then the expression you have will not work. It will just shift your whole plot horizontally, so that it is centered on the mean value for the whole series.
Instead you can do a little linear regression to find the best straight line (y = mx + b) through the data, and then subtract that off.
To do this in MATLAB you could use:
% make regression matrix, A where
% y = A*c + error
A = [x(:) ones(size(x(:)))]
% Find least squares solution (regression) for constants c that provide best fit for
% y = c(1)*x + c(2) using Matlab \ operator
c = A\y
% remove the linear growth (detrend) the data
yDetrended = y - (c(1)*x + c(2))
% plot the result
plot(x,yDetrended)
Here is a good link to learn more about the linear regression, https://www.mathworks.com/help/matlab/data_analysis/linear-regression.html
  1 comentario
James Adams
James Adams el 20 de Feb. de 2020
Thank you very much for you support Jon.
I am now having trouble doing the same technqiue on a slightly different graph. Similar to the first signal, my starting code is below. I must now convert this signal and make it linear. Any ideas on how to achieve this??
A = dlmread('signal_2.txt'); %Reads signal data file
x= A(:,1); %Time Variables
y= A(:,2); %Amplitude variables
Many Thanks

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by