Предположим, что мы имеем некоторое преобразование Фурье с мнимой и вещественной частью. Расчет величины для некоторой частоты прост, как показано в приведенном ниже коде.Учет перенапряжения мнимого аргумента в MATLAB
Однако, если частота, в данном случае p=1
, составляет, например, 1000
, тогда у нас есть проблема. Нам нужно учитывать тот факт, что мнимая часть должна находиться между -pi
и pi
.
Например. Предположим, что моя воображаемая часть - Im => w-100
, а моя настоящая часть - только Re => 1
.
Угол/фаза: arctan(Im/Re) = arctan(w-100)
. Простое замещение значения для w
не будет работать. Нам нужно вычесть посторонние полные вращения и передать это функции arctan
.
Как бы я это сделал?
p = 1; % Value given in argument
x1 = exp(-4*(t-2))*cos(9*t)*heaviside(t); % define function
F = fourier(x1,t,w); % fourier transformation
sub1 = double(subs(F,w,p)); % SUBSTITUTE value for omega
mod1 = abs(sub1) % print out modulus
ang1 = angle(sub1) % print out phase angle
ПРИМЕЧАНИЕ: Преобразование Фурье возвращает символическую функцию. Поэтому я перебрасываю его в double в sub1
.
Извините за предыдущий ответ, Я добавил, что числовое решение, а не символическое, должно было бы это отметить. – brodoll
@ brodroll, так что тогда нет идеи? : p – Ortix92
У меня мало опыта с символическими операциями Matlab. Idk, если функция ** atan2 ** будет работать для вашего фазового угла, а также не имеет способа проверить atm: x – brodoll