2015-06-15 5 views
0

Я недавно работал над 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» всегда ???? , если вы дадите мне свой совет об этом коде, я буду очень благодарен.

+0

Пожалуйста, задайте общий вопрос FT на правильном форуме (Stack Exchange Math, я думаю?), Здесь мы должны только посмотреть на проблемы программирования и структуры. Тем не менее, см. Мой короткий ответ ниже. – rst

ответ

0

Хевисайда Функция

MATLAB выполняет определение ступенчатую функцию с 1/2 для x=0 (см http://de.mathworks.com/help/symbolic/heaviside.html?refresh=true), если вы хотите в противном случае вы можете определить свою собственную функцию, может быть, как это здесь? не

mystep = @(x) sign(max(x, 0)); 

fftshift

Нет вы не должны использовать fftshift всегда, что на самом деле зависит от того, что именно вы хотите сделать. В принципе, fft не очень подходит для сигналов, таких как ступенчатая функция (если вы хотите провести частотный анализ, в этом конкретном случае я рекомендую делать аналитические футы!). Есть много побочных эффектов (я не хочу сейчас входить в эту область), а fftshift - один из инструментов, помогающих справиться с ними. Прочтите документ (doc fftshift) и узнайте больше о фут в целом.

Смежные вопросы