# single plot, dft graph?

3 views (last 30 days)

Show older comments

Hi folks just asking how you can a single point graph plotted, so that its x against y. the x plot should be 0:120, every 5 seconds. and y plot should be these values: 62,57,56,55,57,56,58,62,62,63,61,61,62,62,62,61,60,60,60,61,65,68,67,66,67 These values represent a reading every 5 seconds

in the format of the link below is what i'm trying to get.

https://www.google.co.uk/search?q=matlab+dft+graph&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjwoJnT77DLAhWCHxoKHQ6GArUQ_AUIBygB&biw=1920&bih=1033#imgrc=Npbkd6ifbaMW3M%3A

hope this makes sense

##### 2 Comments

Star Strider
on 8 Mar 2016

### Answers (5)

Star Strider
on 13 Apr 2016

This is how I would code it:

xdat = 0:5:120;

ydat = [62,57,56,55,57,56,58,62,62,63,61,61,62,62,62,61,60,60,60,61,65,68,67,66,67];

Ts = mean(diff(xdat)); % Sampling Interval

Fs = 1/Ts; % Sampling Frequency

Fn = Fs/2; % Nyquist Frequency

L = length(ydat); % Signal Length (Obviously)

ft_y = fft(ydat)/L; % Fourier Transform (Normalised)

Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector

Iv = 1:length(Fv); % Index Vector

figure(1)

plot(Fv, 2*abs(ft_y(Iv)))

grid

xlabel('Frequency (Arbitrary Units)')

ylabel('Amplitude (Arbitrary Units)')

There’s a relatively high d-c offset. You can eliminate that by subtracting the mean of ‘ydat’ before you take the fft. This will make the other frequencies more apparent.

##### 6 Comments

davy hanna
on 10 May 2016

Star Strider

Are they though, the ydat for that example is pulse rates every 5 seconds, during walking. when the fft is plotted, the y-scale is from 0 to a maximum of 5? so am thinking it can't be the ydat of the original form?

Star Strider
on 10 May 2016

The Fourier transform is what it is, and I stand by my previous statements. It may not be appropriate for your analysis, since your data plotted as a function of time demonstrate a certain periodicity with respect to heart rate, with an increasing heart rate over time. This may be an artefact of your experimental conditions (for example, treadmill velocity, if you are studying heart rate over certain fixed periods of specific treadmill velocities). Since I don’t know what you’re doing, I can’t say with any certainty what analysis techniques are appropriate for your data.

If my ‘treadmill’ guess is correct, perhaps you should be regressing heart rate against treadmill velocity instead of doing a Fourier transform.

I have no idea.

Ilham Hardy
on 9 Mar 2016

Perhaps this is what you want,

xdat = 0:5:120;

ydat = [62,57,56,55,57,56,58,62,62,63,61,61,62,62,62,61,60,60,60,61,65,68,67,66,67];

scatter(xdat,ydat,'filled')

set(gca,'xtick',0:5:120)

grid on

davy hanna
on 12 Apr 2016

xdat = 0:5:120;

ydat = [62,57,56,55,57,56,58,62,62,63,61,61,62,62,62,61,60,60,60,61,65,68,67,66,67];

scatter(xdat,ydat,'filled')

set(gca,'xtick',0:5:120)

grid on

any idea on how to an fft on that plot above?

##### 0 Comments

davy hanna
on 13 Apr 2016

Edited: davy hanna
on 13 Apr 2016

xdat= 0:5:120;

ydat=[62,57,56,55,57,56,58,62,62,63,61,61,62,62,62,61,60,60,60,61,65,68,67,66,67];

plot(xdat,ydat);

nfft=length(ydat);

nfft2=2.^nextpow2(nfft);

ffty=fftshift(fft(ydat,nfft2));

r=abs(ffty);

plot(r);

plot(r); ↑ Error: The input character is not valid in MATLAB statements or expressions.

can anyone tell me how/why im going wrong when trying to plot the FFT of this?

##### 0 Comments

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!