DFT des Zeitbereichs für die Schrittfunktion

Ich habe kürzlich in Matlab an DFT gearbeitet. Hier ist mein Code in Matlab. Welcher Teil meines Codes hat ein Problem, mein Sampling ist falsch ??? Ich bin dankbar, wenn Sie meine Frage beantworten:

dt = 0.01;      %sampling time interval
Fs = 1/dt;       %sampling rate
t = 0:dt:45;     %Time vector
t0 = 5;          %duration of applied stress
N = length(t);   %number of sample points
y_timedomain = heaviside(t)-heaviside(t-t0);     %the step function
figure (1)
plot(y_timedomain)
axis([-100,1000,-0.2,1.2]);
y_freqDomain=abs(fft(y_timedomain));     % fft of step funcion, y(t)
z = fftshift(y_freqDomain);              % DFT and shift center to zero
figure (2)
plot(linspace(-10,10,length(y_freqDomain)),z)
xlabel('Sample Number')
ylabel('Amplitude')
title('Using the Matlab fft command')
grid
axis([-.3,.3,0,1000]);

meanwhile, ich habe 2 Frage zu diesem Code: 1 - meine Schrittfunktion zu 0 Zeit, hat Größe von 1/2, aber ich möchte meine Schrittfunktion zu 0 Zeit 0 anstelle von 1/2 sein, (wie Rechteckform) , aber ich weiß nicht, wie ich das korrigieren soll ??? 2- Wenn wir DFT machen, sollten wir immer "shift FFT" verwenden ???? Wenn Sie mir Ihren Rat zu diesem Code geben, werde ich wirklich dankbar sein.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage