fourier
フーリエ変換
説明
例
共通入力のフーリエ変換
共通入力のフーリエ変換を計算します。既定では、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 |
ステップ (ヘヴィサイド) | 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
を指定します。変数を 1 つだけ指定した場合、その変数は変換変数です。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)
フーリエ変換パラメーターの指定
フーリエ変換のパラメーターを指定します。
フーリエ変換のパラメーターの既定値 c = 1
、s = -1
を使用して、f
のフーリエ変換を計算します。詳細は、フーリエ変換を参照してください。
syms t w f = t*exp(-t^2); fourier(f,t,w)
ans = -(w*pi^(1/2)*exp(-w^2/4)*1i)/2
sympref
を使用して、フーリエ変換のパラメーターを c = 1
、s = 1
に変更し、変換を再計算します。結果が変わります。
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® セッションを通じて維持されます。FourierParameters
を 'default'
に設定して、c
および s
の設定を既定値に戻します。
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
は配列の全要素について要素単位で動作します。1 番目の引数がシンボリック関数を含む場合、2 番目の引数はスカラーでなければなりません。
逆フーリエ変換を計算するには、
ifourier
を使用します。fourier
はpiecewise
を変換しません。代わりに、関数heaviside
、rectangularPulse
、またはtriangularPulse
を使用してpiecewise
を書き換えてください。
参照
[1] Oberhettinger F., "Tables of Fourier Transforms and Fourier Transforms of Distributions." Springer, 1990.
バージョン履歴
R2006a より前に導入