how to plot this function

4 comentarios

darova
darova el 17 de Mayo de 2019
Do you have any attempts?
HADIMARGO
HADIMARGO el 17 de Mayo de 2019
Yes sir. But it didnot give me the right shape:
HADIMARGO
HADIMARGO el 17 de Mayo de 2019
Walter Roberson
Walter Roberson el 18 de Mayo de 2019
(n<-2 & n>2)
is never true. However, since you are multiplying that by 0, if it somehow did match it would contribute 0 anyhow. You can just leave out that term.
Your x axis is wrong. You are effectively using your n as your frequency, including negative n. If you are going to plot negative frequencies then you need to fftshift() . And use more points.
Read the first example of fft() to see how to properly plot.

Iniciar sesión para comentar.

Respuestas (2)

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 18 de Mayo de 2019

1 voto

n = -5:1:5;
x=1*(n>=-2 & n<=2)+0*(n<-2 & n>2);
L = length(n); Fs = 1;
Nblock = 128; % Block size
Y = fft(x, Nblock)/L;
f = Fs/2*linspace(0,5, Nblock/2+1);
plot(f, 2*abs(Y(1:Nblock/2+1)))
xlabel('frequency, [Hz]'), ylabel('Amplitude')
title('Single-sided Spectrum'), shg

3 comentarios

madhan ravi
madhan ravi el 18 de Mayo de 2019
Editada: madhan ravi el 18 de Mayo de 2019
x=1*(n>=-2 & n<=2)+0*(n<-2 & n>2); % what is the necessity to multiply it by zero ??
% Hint: Not necessary
HADIMARGO
HADIMARGO el 18 de Mayo de 2019
so many tnx for ur answering. but why the shapes didnot match together? compare.jpg
HADIMARGO
HADIMARGO el 18 de Mayo de 2019
hi.
i could find this code that the result and shape is near to my shape.
clc
clear
t=linspace(-5,5,100);
y=heaviside(t+0.5)-heaviside(t-0.5);
z=fft(y);
z=abs(z);
stem(z)
near.jpg

Iniciar sesión para comentar.

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 18 de Mayo de 2019

1 voto

Hi,
Here is the full spectrum calculation:
n = -5:1:5;
x=1*(n>=-2 & n<=2);
L = length(n); Fs = 1;
Nblock = 128; % Block size
Y = fft(x, Nblock)/L;
f = Fs/2*linspace(0,5, Nblock);
plot(f, 2*abs(Y(1:Nblock)))
xlabel('frequency, [Hz]'), ylabel('Amplitude')
title('Single-sided Spectrum'), shg
Good luck.

4 comentarios

HADIMARGO
HADIMARGO el 18 de Mayo de 2019
tnx. this is so near also to final shape but my result is:
question2.jpg
Walter Roberson
Walter Roberson el 18 de Mayo de 2019
fftshift()
HADIMARGO
HADIMARGO el 19 de Mayo de 2019
can u explain more mr Walter Roberson.
Walter Roberson
Walter Roberson el 19 de Mayo de 2019
t = linspace(0,10);
ft = fft(t);
subplot(1,2,1); plot(abs(ft)); %what you are doing now
subplot(1,2,2); plot(abs(fftshift(ft))); %what you need to do in order to get the 0 in the center

Iniciar sesión para comentar.

Preguntada:

el 17 de Mayo de 2019

Comentada:

el 19 de Mayo de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by