• Регистрация
incognito220797
incognito2207970.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+1655.30
      27.11.2019 12:16

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

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

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

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

       

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