Преобразование Фурье
fourier(
возвращает Преобразование Фурье f
)f
. По умолчанию функция symvar
определяет независимую переменную и w
- переменная преобразования.
Вычислите преобразование Фурье общих входов. По умолчанию преобразование происходит в терминах w
.
Функция | Вход и выход |
---|---|
Прямоугольный импульс |
syms a b t f = rectangularPulse(a,b,t); f_FT = fourier(f) f_FT = - (sin(a*w) + cos(a*w)*1i)/w + (sin(b*w) + cos(b*w)*1i)/w |
Единичный импульс (дельта Дирака) |
f = dirac(t); f_FT = fourier(f) f_FT = 1 |
Абсолютное значение |
f = a*abs(t); f_FT = fourier(f) f_FT = -(2*a)/w^2 |
Шаг (Heaviside) |
f = heaviside(t); f_FT = fourier(f) f_FT = pi*dirac(w) - 1i/w |
Постоянный |
f = a; f_FT = fourier(a) f_FT = pi*dirac(1, w)*2i |
Косинус |
f = a*cos(b*t); f_FT = fourier(f) f_FT = pi*a*(dirac(b + w) + dirac(b - w)) |
Синус |
f = a*sin(b*t); f_FT = fourier(f) f_FT = pi*a*(dirac(b + w) - dirac(b - w))*1i |
Знак |
f = sign(t); f_FT = fourier(f) f_FT = -2i/w |
Треугольник |
syms c f = triangularPulse(a,b,c,t); f_FT = fourier(f) f_FT = -(a*exp(-b*w*1i) - b*exp(-a*w*1i) - a*exp(-c*w*1i) + ... c*exp(-a*w*1i) + b*exp(-c*w*1i) - c*exp(-b*w*1i))/ ... (w^2*(a - b)*(b - c)) |
Правосторонняя экспоненциальная | Также вычислите преобразование с условием f = exp(-t*abs(a))*heaviside(t); f_FT = fourier(f) assume(a > 0) f_FT_condition = fourier(f) assume(a,'clear') f_FT = 1/(abs(a) + w*1i) - (sign(abs(a))/2 - 1/2)*fourier(exp(-t*abs(a)),t,w) f_FT_condition = 1/(a + w*1i) |
Двусторонняя экспоненциальная | Предположим assume(a > 0) f = exp(-a*t^2); f_FT = fourier(f) assume(a,'clear') f_FT = (pi^(1/2)*exp(-w^2/(4*a)))/a^(1/2) |
Гауссовский | Предположим assume([b c],'real') f = a*exp(-(t-b)^2/(2*c^2)); f_FT = fourier(f) f_FT_simplify = simplify(f_FT) assume([b c],'clear') f_FT = (a*pi^(1/2)*exp(- (c^2*(w + (b*1i)/c^2)^2)/2 - b^2/(2*c^2)))/ ... (1/(2*c^2))^(1/2) f_FT_simplify = 2^(1/2)*a*pi^(1/2)*exp(-(w*(w*c^2 + b*2i))/2)*abs(c) |
Бессель первого рода с | Упростите результат. syms x f = besselj(1,x); f_FT = fourier(f); f_FT = simplify(f_FT) f_FT = (2*w*(heaviside(w - 1)*1i - heaviside(w + 1)*1i))/(1 - w^2)^(1/2) |
Вычислите преобразование Фурье exp(-t^2-x^2)
. По умолчанию, symvar
определяет независимую переменную и w
- переменная преобразования. Вот, symvar
выбирает x
.
syms t x f = exp(-t^2-x^2); fourier(f)
ans = pi^(1/2)*exp(- t^2 - w^2/4)
Задайте переменную преобразования следующим y
. Если вы задаете только одну переменную, эта переменная является переменной преобразования. symvar
все еще определяет независимую переменную.
syms y fourier(f,y)
ans = pi^(1/2)*exp(- t^2 - y^2/4)
Задайте и независимую переменную, и переменные преобразования как t
и y
во втором и третьем аргументах, соответственно.
fourier(f,t,y)
ans = pi^(1/2)*exp(- x^2 - y^2/4)
Вычислите следующие преобразования Фурье. Результаты с точки зрения функций Dirac и Heaviside.
syms t w fourier(t^3, t, w)
ans = -pi*dirac(3, w)*2i
syms t0 fourier(heaviside(t - t0),t,w)
ans = exp(-t0*w*1i)*(pi*dirac(w) - 1i/w)
Задайте параметры преобразования Фурье.
Вычислите преобразование Фурье f
использование значений по умолчанию параметров Фурье c = 1
, s = -1
. Для получения дополнительной информации см. «Преобразование Фурье».
syms t w f = t*exp(-t^2); fourier(f,t,w)
ans = -(w*pi^(1/2)*exp(-w^2/4)*1i)/2
Измените параметры Фурье на c = 1
, s = 1
при помощи sympref
, и снова вычислите преобразование. Результат меняется.
sympref('FourierParameters',[1 1]); fourier(f,t,w)
ans = (w*pi^(1/2)*exp(-w^2/4)*1i)/2
Измените параметры Фурье на c = 1/(2*pi)
, s = 1
. Результат меняется.
sympref('FourierParameters', [1/(2*sym(pi)), 1]); fourier(f,t,w)
ans = (w*exp(-w^2/4)*1i)/(4*pi^(1/2))
Настройки, заданные sympref
сохраниться через ваш текущий и будущий MATLAB® сеансов. Восстановите значения по умолчанию c
и s
путем установки FourierParameters
на 'default'
.
sympref('FourierParameters','default');
Найдите преобразование Фурье матрицы M
. Задайте независимые переменные и переменные преобразования для каждой матричной записи с помощью матриц одного и того же размера. Когда аргументы нескаляры, fourier
действует на них поэлементно.
syms a b c d w x y z M = [exp(x) 1; sin(y) i*z]; vars = [w x; y z]; transVars = [a b; c d]; fourier(M,vars,transVars)
ans = [ 2*pi*exp(x)*dirac(a), 2*pi*dirac(b)] [ -pi*(dirac(c - 1) - dirac(c + 1))*1i, -2*pi*dirac(1, d)]
Если fourier
вызывается как с скалярными, так и с нескалярными аргументами, затем расширяет скаляры так, чтобы они совпадали с нескалярными при помощи скалярного расширения. Нескалярные аргументы должны иметь одинаковый размер.
fourier(x,vars,transVars)
ans = [ 2*pi*x*dirac(a), pi*dirac(1, b)*2i] [ 2*pi*x*dirac(c), 2*pi*x*dirac(d)]
Если fourier
не может преобразовать вход, тогда он возвращает недооцененный вызов.
syms f(t) w F = fourier(f,t,w)
F = fourier(f(t), t, w)
Верните исходное выражение при помощи ifourier
.
ifourier(F,w,t)
ans = f(t)
Если любой аргумент является массивом, то fourier
действует поэлементно на всех элементах массива.
Если первый аргумент содержит символьную функцию, то второй аргумент должен быть скаляром.
Чтобы вычислить обратное преобразование Фурье, используйте ifourier
.
fourier
не преобразуется piecewise
. Вместо этого попробуйте переписать piecewise
при помощи функций heaviside
, rectangularPulse
, или triangularPulse
.
[1] Oberhettinger F., «Таблицы преобразований Фурье и преобразования Фурье распределений». Спрингер, 1990.