Преобразование Фурье
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)
Вычислите следующие преобразования Фурье. Результаты представлены в терминах функций Дирака и Хевисайда.
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] Оберхеттингер Ф., «Таблицы преобразований Фурье и преобразований Фурье распределений». Спрингер, 1990.