FFT of single max sided from signal

3 次查看(过去 30 天)
I'm trying to get frequency of signal.But after applying FFT it doesn't shows 200e3 (which is given) ?
Attaching the code and picture how the end result should be.
Thanks
load ('T1.mat')
f = 200e3; % frequency
T = 1/f ;
sf = 1/t(1,2);
n =5;
tt = n*T;
t1 = 0:1/sf:tt; % total time cycle
sinewave = sin(2*pi*f*t);
figure(1)
plot(t,sinewave)
%fourier
figure
xdft = fft(sinewave,1024);
plot(abs(xdft))

采纳的回答

Mathieu NOE
Mathieu NOE 2021-3-17
hello
this is the code fixed :
FYI, the frequency in your code is 200 and not 100 kHz as in image , but you can easily change that
cheers
clc
clearvars
load ('T1.mat')
f = 200e3; % frequency
T = 1/f ;
sf = 1/t(1,2);
n =5;
tt = n*T;
t1 = 0:1/sf:tt; % total time cycle
sinewave = sin(2*pi*f*t);
figure(1)
plot(t,sinewave)
%fourier
nfft = 1024;
xdft = fft(sinewave,nfft);
% one sidded fft spectrum % Select first half
if rem(nfft,2) % nfft odd
select = (1:(nfft+1)/2)';
else
select = (1:nfft/2+1)';
end
xdft = xdft(select)*2/nfft;
freq_vector = (select - 1)*sf/nfft;
figure
plot(freq_vector/1000,abs(xdft)) % freq divided by 1000 to be displayed in kHz
xlabel('kHz');
ylabel('Amplitude');
xlim([0 2*f/1000]);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Spectral Measurements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by