Всем привет! Мне нужно построить график функции от обратного преобразования Фурье. Matlab я вижу впервые, поэтому простите, если совсем бред пишу. Я погуглила и пыталась что-то написать (прикрепила скриншот и код ниже навела). Но код не работает при а равно и меньше 1. Но и при а больше 1 мне график тоже что-то не очень нравится. Что я сделала не так?
Помоги пожалуйста, а то я уже не знаю что мне делать…
(а=3/2 на скриншоте графика).
clear all;
close all;
x=0:0.001:1;
t=0:0.001:1;
a=input('Введіть а');
z = exp(-t.*(sqrt(a+x.^2))./(log(sqrt(a+x.^2))));
y=ifft2(z);
plot3(t,x,y); grid
set(gca,'FontName','Arial Cyr','FontSize',16),
title('Графік ФРЗК при γ=1');
xlabel('t');
ylabel('x');
zlabel('G(t,x)')
Ответы
Я не совсем понимаю, о чём тут идёт речь, но, учитывая, что применяется ifft2 - то мы работаем с двумерными данными. Входом этой функции должна быть матрица. У вас в скрипте везде вектора из 1001 элемнента.
Я так понимаю, что указанная функция должна быть от двух аргументов? t и x? Чтобы результат был матрицей, достаточно один из этих веторов транспонировать. Например, t = t';
Результат ОБПФ - комплексный. Визуализировать надо либо модуль, либо аргумент матрицы/вектора.
Ну и лучше это наблюдать не через plot3, а всё же через surf.
Опять-таки, я не знаю, какой процесс описывается, поэтому мне сложно судить за адекватность результатов "на глаз".
Согласен. Плюс можно еще исходную функцию построить. Чисто для собственного понимания того, что во что превратирось.