Import Text Data and Plot FFT

Hi, I'm very new to MatLab and don't know too much. I need to take a series of data from a text file and plot the Fourier Transform. The sample rate is 100samples/second or deltaT = 0.01. Thank you for your help.

Risposte (3)

Image Analyst
Image Analyst il 16 Ott 2016

0 voti

Attach your text data file. Otherwise, try csvread(), dlmread(), importdata(), load(), textscan(), readtable(), or similar routines.

4 Commenti

TheNewGuy
TheNewGuy il 16 Ott 2016
Here's the text file
OK, fine. But what did you try? Did you try this:
data = importdata('p1.txt');
spectrum = fft(data);
??? I'm assuming you did because I told you to already. So, what question do you still have? You forgot to tell us.
Here is some more complete code:
data = importdata('p1.txt')
spectrum = fft(data);
deltaT = 0.01;
numElements = length(spectrum)
indexOf0 = numElements / 2
shiftedSpectrum = fftshift(abs(spectrum));
f = (1 / deltaT) * linspace(-numElements/2, numElements/2, numElements);
plot(f, shiftedSpectrum, 'b.-', 'LineWidth', 2, 'MarkerSize', 16);
grid on;
title('Spectrum of Data', 'FontSize', fontSize);
xlabel('Frequency', 'FontSize', fontSize);
ylabel('Power', 'FontSize', fontSize);
% Make bolder y axis
line([indexOf0, indexOf0], ylim, 'Color', 'k', 'LineWidth', 3);
% Set up figure properties:
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
% Get rid of tool bar and pulldown menus that are along top of figure.
set(gcf, 'Toolbar', 'none', 'Menu', 'none');
% Give a name to the title bar.
set(gcf, 'Name', 'Demo by ImageAnalyst', 'NumberTitle', 'Off')
TheNewGuy
TheNewGuy il 16 Ott 2016
Sorry, I just wasn't sure overall how to make the FFT using the text file. I had tried the import function, but my plot was blank. Your code helps, thank you.

Accedi per commentare.

dang khoa tran
dang khoa tran il 17 Dic 2019

0 voti

Hello, so do you have any idea to do inverse FFT using the text file?
Thank you
dang khoa tran
dang khoa tran il 18 Dic 2019

0 voti

Thank you for your reply. But then I do this, it still shows the same result as that when doing with "fft and fftshift"
My case is : There is a variation of electric filed amplitude along the propagation distance. And I want to transform this into the variation along the time domain so that I can get the "pulse duration". So do you have any idea?
Below is the attactment of the text file.

Richiesto:

il 16 Ott 2016

Risposto:

il 18 Dic 2019

Community Treasure Hunt

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

Start Hunting!

Translated by