• Регистрация
incognito220797
incognito220797 0.00
н/д

Обратное преобразование Фурье

05.11.2019

Всем привет! Мне нужно построить график функции от обратного преобразования Фурье. 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)')

Теги

    05.11.2019

    Ответы

    • Marat
      Marat+208.00
      27.11.2019 09:16

      Я не совсем понимаю, о чём тут идёт речь, но, учитывая, что применяется ifft2 - то мы работаем с двумерными данными. Входом этой функции должна быть матрица. У вас в скрипте везде вектора из 1001 элемнента.

      Я так понимаю, что указанная функция должна быть от двух аргументов? t и x? Чтобы результат был матрицей, достаточно один из этих веторов транспонировать. Например, t = t';

      Результат ОБПФ - комплексный. Визуализировать надо либо модуль, либо аргумент матрицы/вектора.

      Ну и лучше это наблюдать не через plot3, а всё же через surf.

       

      Опять-таки, я не знаю, какой процесс описывается, поэтому мне сложно судить за адекватность результатов "на глаз".

       

      • aBoomest
        aBoomest+942.89
        28.09.2020 13:28

        Согласен. Плюс можно еще исходную функцию построить. Чисто для собственного понимания того, что во что превратирось.