Я создал код, который пытается вычислить DTFT функции.
Это мой код:
figure
n = linspace(0,2*pi,1500); %example
x = cos(n); %example
l = length(n);
syms k w
Xk = sum(x(1:l).*exp((-1i.*k.*2/l.*pi.*(0:l-1))));
Xk = matlabFunction(Xk);
d = linspace(-5,5,1000);
stem(d,Xk(d))
Чтобы проверить свой код, как видите, я попытался вычислить преобразование Фурье с дискретным временем для cos(n)
, выбрав его и сравнив с преобразованием Фурье с непрерывным временем для cos(x)
, но, к сожалению, я не получил того же результата.
Вот что я получаю, запуская этот код:
и когда я увеличиваю n
, хотя значения в -1,1
увеличиваются, как мы и ожидали, ненулевые значения также увеличиваются в противоположность ожидаемому.
(Преобразование Фурье cos(x)
равно deltaFunction(x-1)+deltaFunction(x+1)
)
Спасибо за любую помощь. Я знаю, что в MATLAB есть такие функции, но я пытаюсь создать их самостоятельно.