Main Content

fourier

説明

fourier(f)fフーリエ変換を返します。既定では、関数 symvar は独立変数を決定し、w は変換変数です。

fourier(f,transVar) は、w の代わりに transVar を変換変数として使用します。

fourier(f,var,transVar) は、symvarw の代わりに vartransVar をそれぞれ独立変数および変換変数として使用します。

共通入力のフーリエ変換

共通入力のフーリエ変換を計算します。既定では、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))

右側の指数

条件 a > 0 での変換も計算します。仮定を消去します。

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)

両側の指数

a > 0 と仮定します。仮定を消去します。

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)

ガウス

b および c は実数と仮定します。結果を単純化し、仮定を消去します。

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)

nu = 1 の第 1 種ベッセル

結果を単純化します。

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 は変換変数です。ここで、symvarx を選択します。

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)

独立変数と変換変数を ty として、第二、第三引数にそれぞれ指定します。

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 = 1s = -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 = 1s = 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 は関数 symvar を使用して独立変数を決定します。

変換変数。シンボリック変数、シンボリック式、シンボリック ベクトルまたはシンボリック行列として指定します。この変数は、多くの場合 "周波数変数" と呼ばれます。既定では、fourierw を使用します。wf の独立変数の場合、fourierv を使用します。

詳細

すべて折りたたむ

フーリエ変換

変数 x の式 f = f(x) の点 w におけるフーリエ変換は

F(w)=cf(x)eiswxdx.

です。

c および s はフーリエ変換のパラメーターです。関数 fourierc = 1s = –1 を使用します。

ヒント

  • いずれかの引数が配列である場合、fourier は配列の全要素について要素単位で動作します。

  • 1 番目の引数がシンボリック関数を含む場合、2 番目の引数はスカラーでなければなりません。

  • 逆フーリエ変換を計算するには、ifourier を使用します。

  • fourierpiecewise を変換しません。代わりに、関数 heavisiderectangularPulse、または triangularPulse を使用して piecewise を書き換えてください。

参照

[1] Oberhettinger F., "Tables of Fourier Transforms and Fourier Transforms of Distributions." Springer, 1990.

バージョン履歴

R2006a より前に導入