how to solve a Plotting FFT problem

조회 수: 1 (최근 30일)
Mohamed Ashraf
Mohamed Ashraf 2018년 2월 18일
답변: John BG 2018년 2월 18일
I have this code for generating a signal and plotting it in time domain and frequency domain but the plot in the frequency domain has a problem as I suppose frequency to be 1000 but it plots around it not the 1000 and not the 500 and -500 can any body help??
Code:
if true
%First,generating a signal and plotting it
f=input('Enter Signal Frequency=');
amp_signal=input('Enter ampliude of transmitted Signal Frequency=');
signal=amp_signal*(sin(2*pi*f*t));
%Frequency Domain of transmitted signal
trans_signal_fft= fft(signal);
trans_signal_fft = fftshift(trans_signal_fft);
f_axis = linspace((-f),(f),length(trans_signal_fft));
%Plotting Signal
figure;
subplot(2,1,1);
plot(t,signal);
grid on;
title('Transmitted signal in time domain')
%Display transmitted signal in frequency domain
subplot(2,1,2);
plot(f_axis,trans_signal_fft);
grid on;
title('Transmitted signal in frequency domain')
end

답변 (1개)

John BG
John BG 2018년 2월 18일
Hi Mohamed
if the time vector does not have a small enough step the output will show a shifted frequency, or not even show any frequency at all. Try the following
f=1000;
amp_signal=1;
t=[0:1/(2*f):1];
just on 2 samples per cycle, and it's not clear what is the input. Don't work on the edge, try to get as many samples as reasonably possible per cycle.
.
Using 4 samples per cycle
.
t=[0:1/(4*f):.5];
.
and here you have the input tone.
Bear in mind that it would make sense to plot amplitude and phase, or real in imaginary, just plugging the complex fft into plot is not the way to proceed, choose what you want to plot.
if you find this answer useful would you please be so kind to consider marking my answer as Accepted Answer?
To any other reader, if you find this answer useful please consider clicking on the thumbs-up vote link
thanks in advance for time and attention
John BG

카테고리

Help CenterFile 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