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.
답변 (3개)
Image Analyst
2016년 10월 16일
0 개 추천
Attach your text data file. Otherwise, try csvread(), dlmread(), importdata(), load(), textscan(), readtable(), or similar routines.
댓글 수: 4
TheNewGuy
2016년 10월 16일
Image Analyst
2016년 10월 16일
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.
Image Analyst
2016년 10월 16일
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
2016년 10월 16일
dang khoa tran
2019년 12월 17일
0 개 추천
Hello, so do you have any idea to do inverse FFT using the text file?
Thank you
댓글 수: 1
Image Analyst
2019년 12월 17일
Use ifft and ifftshift.
dang khoa tran
2019년 12월 18일
0 개 추천
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.
카테고리
도움말 센터 및 File Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!