Я недавно работал над DFT в Matlab, вот мой код в Matlab. какая часть моего кода имеет проблемы, моя выборка неправильная ??? Буду признателен, если вы ответить на мой вопрос:DFT временной области для функции шага
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]);
того время, у меня есть 2 вопроса об этом коде: 1- моего шага функции при 0 время, имеет величину 1/2, но я хочу, чтобы мой шаг функция в 0 раз будет 0 вместо 1/2 (например, прямоугольная форма), но я не знаю, как ее исправить ??? 2- когда мы делаем DFT, следует ли использовать «shift FFT» всегда ???? , если вы дадите мне свой совет об этом коде, я буду очень благодарен.
Пожалуйста, задайте общий вопрос FT на правильном форуме (Stack Exchange Math, я думаю?), Здесь мы должны только посмотреть на проблемы программирования и структуры. Тем не менее, см. Мой короткий ответ ниже. – rst