Hello,
i am trying to plot FFT samples vs freq.. bt not getting the exact peak at expected frequency.
i have attached the samples in excel sheet,..plz can some one help me and guide me to get peaks at expected frequency.
clear
N=3584;
n=0:3584
ts=.0002;
fs=1/ts
ts1=0.02
f=1/(N*ts);
t=[0:N-1]*ts;
g=input('enter the frequency required')
ref=3*sin(2*pi()*g*t)
figure
plot(t,ref),axis tight
fref=abs(fft(ref))
figure
plot(abs(fref))
axis tight
x=xlsread('41hz.xlsx')
figure
plot(x),grid on
axis tight
Xf=abs(fft(x));
f1=[0:N-1]*f
plot(f1,abs(Xf)),grid on
axis tight
n_2=ceil(N/2)
figure
plot(f1(1:n_2),abs(Xf(1:n_2))),grid on

댓글 수: 2

madhan ravi
madhan ravi 2019년 4월 9일
편집: madhan ravi 2019년 4월 9일
What value are you inputting for g?
Sunil Kumar
Sunil Kumar 2019년 4월 9일
50 hz

댓글을 달려면 로그인하십시오.

 채택된 답변

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2019년 5월 10일

0 개 추천

Here is the corrected code that computes fft and plots accordingly.
N=3584; g=50;
ts=.0002;
fs=1/ts;
t=[0:N-1]*ts;
L = numel(t); % Length of your signal
f = fs*(0:(L/2))/L; % Frequency values
ref=3*sin(2*pi()*g*t);
figure
plot(t,ref),axis tight, title('Time domain signal')
fref=abs(fft(ref));
figure
plot(f, abs(fref(1:N/2+1))); % plot f vs. spectrum magnitude
xlim([0, 100])
%% Working with your measured/sampled data
DATA = xlsread('DATA_ES.xlsx', 'Sheet2');
L = numel(DATA(:, 1)); % Length of the signal
figure
ts=.0002; fs=1/ts;
Xf=abs(fft(DATA(:,1))); % Assuming Column 1 contains frequency response data
f=fs*(0:(L/2))/L;
n_2=ceil(N/2);
plot(f,abs(Xf(1:n_2+1))),grid on

댓글 수: 2

Sunil Kumar
Sunil Kumar 2019년 5월 13일
Thank you so much
You are most welcome!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터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!

Translated by