DFT do domínio do tempo para a função de etapa
Eu tenho trabalhado em DFT no Matlab recentemente, aqui está o meu código no Matlab. qual parte do meu código tem problema, minha amostragem está errada ??? Ficarei grato se você responder minha pergunta:
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]);
Enquanto isso, eu tenho 2 perguntas sobre esse código: 1- minha função step no tempo 0, tem magnitude 1/2, mas quero que a função step no tempo 0 seja 0 em vez de 1/2 (como forma de retângulo), mas eu não sei como corrigi-lo ?? 2- quando fazemos DFT, devemos usar "shift FFT" sempre ???? se você me der seu conselho sobre esse código, ficarei muito agradecido.