Filter löschen
Filter löschen

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

7 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Star Strider
Star Strider am 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 Kommentare
Mohamed Ashraf
Mohamed Ashraf am 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 am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

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

wallflower
wallflower am 7 Dez. 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!

Translated by