How do you separate imported data into time and amplitude?

1 Ansicht (letzte 30 Tage)
James Adams
James Adams am 19 Feb. 2020
Kommentiert: James Adams am 20 Feb. 2020
%%i have imported notepad data into matlab, having difficulty seperating the data into seperate arrays. Any help?
  5 Kommentare
Jon
Jon am 19 Feb. 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 am 19 Feb. 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jon
Jon am 19 Feb. 2020
Bearbeitet: Jon am 19 Feb. 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 Kommentar
James Adams
James Adams am 20 Feb. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by