usinf fft shift i need only to display the positive part of the spectrum

9 views (last 30 days)
I would like to display only the positive part of the frequency domain
if true
%
fs=1e5; %Sampling Frequency
t=0:1/(fs):0.001; %Time at which signal displays
%First,generating a signal
f=1e4;%Signal is 10kHz
amp_signal=1;
signal=amp_signal*(sin(2*pi*f*t));
%Frequency Domain of transmitted signal
transmited_signal_fft=fft(signal);
transmited_signal_fft=fftshift(transmited_signal_fft);
f_axis=linspace(-fs/2,fs/2,length(transmited_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,abs(transmited_signal_fft)/length(signal));
grid on;
title('Transmitted signal in frequency domain')
end
Thanks in advance

Accepted Answer

Star Strider
Star Strider on 21 Feb 2018
Try this:
fs=1e5; %Sampling Frequency
t=0:1/(fs):0.001; %Time at which signal displays
%First,generating a signal
f=1e4;%Signal is 10kHz
Fn = f/2; % Nyquist Freqency (Added)
amp_signal=1;
signal=amp_signal*(sin(2*pi*f*t));
L = length(signal); % Added
%Frequency Domain of transmitted signal
transmited_signal_fft=fft(signal);
f_axis = linspace(0, 1, fix(L/2)+1)*Fn; % Changed
Iv = 1:length(f_axis); % Index Vector (Added)
% % transmited_signal_fft=fftshift(transmited_signal_fft); % (Commented-Out)
% % f_axis=linspace(-fs/2,fs/2,length(transmited_signal_fft)); % (Commented-Out)
%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, 2*abs(transmited_signal_fft(Iv))/L); % Changed
grid on;
title('Transmitted signal in frequency domain')
See this version of the documentation for details: fft (link).
  2 Comments
Mohamed Ashraf
Mohamed Ashraf on 21 Feb 2018
the nyquist frequency should be double the message not half of it
Nyquist Frequency:the minimum rate at which a signal can be sampled without introducing errors, which is twice the highest frequency present in the signal.
Star Strider
Star Strider on 21 Feb 2018
The nyquist frequency is one-half the sampling frequency. It should be fs/2, and I thought I typed it as such.

Sign in to comment.

More Answers (2)

Abhishek Ballaney
Abhishek Ballaney on 21 Feb 2018
https://in.mathworks.com/help/matlab/ref/fft.html

wallflower
wallflower on 7 Dec 2020
Hi,
Did you find the answer?

Community Treasure Hunt

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

Start Hunting!