fourier
シンボリック式またはシンボリック関数のフーリエ変換
説明
例
一般的な関数のフーリエ変換を計算します。既定では、w に関して変換されます。
矩形パルス関数のフーリエ変換を求めます。
syms a b t f = rectangularPulse(a,b,t); FT = fourier(f)
FT =
単位インパルス (ディラックのデルタ関数) のフーリエ変換を求めます。
f = dirac(t); FT = fourier(f)
FT =
絶対値関数のフーリエ変換を求めます。
f = a*abs(t); FT = fourier(f)
FT =
ステップ関数 (ヘヴィサイド関数) のフーリエ変換を求めます。
f = heaviside(t); FT = fourier(f)
FT =
定数のフーリエ変換を求めます。
f = a; FT = fourier(f)
FT =
余弦関数のフーリエ変換を求めます。
f = a*cos(b*t); FT = fourier(f)
FT =
正弦関数のフーリエ変換を求めます。
f = a*sin(b*t); FT = fourier(f)
FT =
符号関数のフーリエ変換を求めます。
f = sign(t); FT = fourier(f)
FT =
仮定なしで右側の指数関数のフーリエ変換を求めます。
f = exp(-t*abs(a))*heaviside(t); FT = fourier(f)
FT =
a > 0 と仮定して右側の指数関数のフーリエ変換を求めます。フーリエ変換の計算後、仮定を消去します。
assume(a > 0) FTwithAssumption = fourier(f)
FTwithAssumption =
assume(a,"clear")a > 0 と仮定して両側の指数関数のフーリエ変換を求めます。フーリエ変換の計算後、仮定を消去します。
assume(a > 0) f = exp(-a*t^2); FTwithAssumption = fourier(f)
FTwithAssumption =
assume(a,"clear")b と c が実数であると仮定してガウス関数のフーリエ変換を求めます。フーリエ変換の計算後、結果を単純化して仮定を消去します。
syms c assume([b c],"real") f = a*exp(-(t-b)^2/(2*c^2)); FT = fourier(f); FTsimplified = simplify(FT)
FTsimplified =
assume([b c],"clear")nu = 1 の第 1 種ベッセル関数のフーリエ変換を求めます。結果を単純化します。
syms x
f = besselj(1,x);
FT = fourier(f);
FTsimplified = simplify(FT)FTsimplified =
exp(-t^2-x^2) のフーリエ変換を求めます。既定では、symvar は独立変数を決定し、w は変換変数です。ここで、symvar は x を選択します。
syms t x f = exp(-t^2-x^2); FT = fourier(f)
FT =
変換変数として y を指定します。変数を 1 つだけ指定した場合、その変数は変換変数です。symvar が依然として独立変数を決定します。
syms y
FT = fourier(f,y)FT =
独立変数を t、変換変数を y としてそれぞれ指定します。
FT = fourier(f,t,y)
FT =
開始点が –1/2、終点が 1/2 の矩形パルスを作成します。
syms t
f1 = rectangularPulse(-1/2,1/2,t);そのフーリエ変換を求めます。結果を単純化します。ここでは、フーリエ変換に実数部のみが含まれます。
FT1 = fourier(f1); FT1 = simplify(FT1)
FT1 =
fplot を使用して、矩形パルスを 2 行 2 列のタイル表示チャート レイアウトでプロットします。そのフーリエ変換の実数部と虚数部をプロットします。
tiledlayout(2,2) nexttile fplot(f1) xlabel("$t$",Interpreter="latex") ylabel("$f(t)$",Interpreter="latex") title("Rectangular Pulse") nexttile fplot(real(FT1),[-50 50]) hold on fplot(imag(FT1),[-50 50]) xlabel("$w$",Interpreter="latex") ylabel("FT($w$)",Interpreter="latex") title("Fourier Transform") legend("Re(FT)","Im(FT)",Location="northeastoutside")

次に、開始点が 0、終点が 1 の別の矩形パルスを作成します。
f2 = rectangularPulse(0,1,t);
そのフーリエ変換を求めます。ここでは、フーリエ変換に実数部と虚数部の両方が含まれます。
FT2 = fourier(f2)
FT2 =
矩形パルスをプロットします。そのフーリエ変換の実数部と虚数部をプロットします。
nexttile fplot(f2) xlabel("$t$",Interpreter="latex") ylabel("$f(t)$",Interpreter="latex") nexttile fplot(real(FT2),[-50 50]) hold on fplot(imag(FT2),[-50 50]) xlabel("$w$",Interpreter="latex") ylabel("FT($w$)",Interpreter="latex") legend("Re(FT)","Im(FT)",Location="northeastoutside")

t^3 のフーリエ変換を求めます。結果は、ディラックのデルタ関数の 3 次導関数で返されます。
syms t w FT = fourier(t^3,t,w)
FT =
t0 に不連続点があるヘヴィサイド関数のフーリエ変換を求めます。
syms t0
FT = fourier(heaviside(t - t0),t,w)FT =
詳細のセクションで説明するように、 および はフーリエ変換のパラメーターです。既定では、fourier 関数は と を使用します。ただし、これらのパラメーター値は sympref を使用して変更できます。
フーリエ変換のパラメーターの既定値を使用して、t*exp(-t^2) のフーリエ変換を計算します。
syms t w f = t*exp(-t^2); FT = fourier(f,t,w)
FT =
sympref を使用して、フーリエ変換のパラメーターを c = 1 と s = 1 に変更し、変換を再計算します。結果が変わります。
sympref("FourierParameters",[1 1]);
FT = fourier(f,t,w)FT =
フーリエ変換のパラメーターを c = 1/(2*pi) と s = 1 に変更し、変換を再計算します。結果が変わります。
sympref("FourierParameters",[1/(2*sym(pi)) 1]);
FT = fourier(f,t,w)FT =
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) 1i*z]; vars = [w x; y z]; transVars = [a b; c d]; FT = fourier(M,vars,transVars)
FT =
fourier をスカラーと非スカラーの両方の引数で呼び出した場合、スカラー拡張を使用して非スカラー引数と一致するようスカラー引数を拡張します。非スカラー引数のサイズは同じでなければなりません。
FT = fourier(x,vars,transVars)
FT =
fourier が入力を変換できない場合は、未評価の呼び出しが返されます。
syms f(t) w FT = fourier(f,t,w)
FT =
ifourier を使用して元の式を返します。
f = ifourier(FT,w,t)
f =
一連の 1 次元フーリエ変換を各独立変数に個別に適用することで、2 次元フーリエ変換を求めます。
この例では、フーリエ変換のパラメーターを と に設定し、2 次元フーリエ変換の式が次を満たすようにします。
.
これらのパラメーターは sympref を使用して指定できます。
sympref("FourierParameters",[1 2*sym(pi)]);幅が a、高さが b の原点に位置する 2 次元の単位矩形の 2 次元フーリエ変換を求めます。1 次元フーリエ変換を変数 に対して実行し、その後に変数 に対して実行します。結果を単純化します。
syms x y a b real f(x,y) = rectangularPulse(-a/2,a/2,x)*rectangularPulse(-b/2,b/2,y); syms u v FT = fourier(f,x,u); FT = fourier(FT,y,v); FT = simplify(FT)
FT =
と の両方向の標準偏差が である 2 次元ガウス関数のフーリエ変換を求めます。
syms sigma real f(x,y) = 1/2/sym(pi)/sigma^2*exp((-x^2-y^2)/2/sigma^2); syms u v FT = fourier(f,x,u); FT = fourier(FT,y,v); FT = simplify(FT)
FT =
と に位置する 2 点のソースのフーリエ変換を求めます。
f(x,y) = 1/2*dirac(x)*(dirac(y-a)+dirac(y+a)); FT = fourier(f,x,u); FT = fourier(FT,y,v); FT = simplify(FT)
FT =
単位円の開口部のフーリエ変換を求めます。heaviside 関数を使用して単位円を定義します。
f(x,y) = heaviside(x^2+y^2-1); FT = fourier(f,x,u); FT = fourier(FT,y,v)
FT =
ここでは、fourier 関数が入力関数を変換できず、未評価の呼び出しが返されます。別の方法として、fft2関数を使用すると、2 次元フーリエ変換を数値的に求めることができます。円形の開口部の 2 次元フーリエ変換を求める方法の例については、2 次元フーリエ変換を参照してください。
sympref を使用して設定したシンボリック設定は、現在およびこれ以降の MATLAB セッションを通じて維持されます。既定の設定に戻します。
sympref("default");入力引数
シンボリック式、シンボリック関数、シンボリック ベクトルまたはシンボリック行列で指定される入力。
変換変数。シンボリック変数、シンボリック式、シンボリック ベクトルまたはシンボリック行列として指定します。この変数は、多くの場合 "周波数変数" と呼ばれます。既定では、fourier は w を使用します。w が f の独立変数の場合、fourier は v を使用します。
独立変数。シンボリック変数、シンボリック ベクトルまたはシンボリック行列として指定します。この変数は、多くの場合 "時間変数" または "空間変数" と呼ばれます。この引数を指定しない場合、fourier は関数 symvar(f,1) を使用して独立変数を決定します。
詳細
変数 x の式 f = f(x) の点 w におけるフーリエ変換は
です。
ここで、c および s はフーリエ変換のパラメーターです。fourier 関数は c = 1 と s = –1 を使用します。
ヒント
いずれかの引数が配列である場合、
fourierは配列の全要素について要素単位で動作します。1 番目の引数がシンボリック関数を含む場合、2 番目の引数はスカラーでなければなりません。
逆フーリエ変換を計算するには、
ifourierを使用します。fourierはpiecewiseを変換しません。代わりに、関数heaviside、rectangularPulse、またはtriangularPulseを使用してpiecewiseを書き換えてください。
参照
[1] Oberhettinger, Fritz. Tables of Fourier Transforms and Fourier Transforms of Distributions. Berlin, Heidelberg: Springer Berlin Heidelberg, 1990.
バージョン履歴
R2006a より前に導入
参考
関数
トピック
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)