주요 콘텐츠

fourier

기호 표현식의 푸리에 변환

설명

FT = fourier(f)f푸리에 변환을 계산합니다. 기본적으로 함수 symvar은 독립 변수를 결정하며 w는 변환 변수입니다.

예제

FT = fourier(f,transVar)w 대신 transVar을 변환 변수로 사용합니다.

예제

FT = fourier(f,var,transVar)symvar(f,1)w 대신 독립 변수 var과 변환 변수 transVar을 각각 사용합니다.

예제

예제

모두 축소

흔히 쓰이는 입력값에 대한 푸리에 변환을 계산합니다. 기본적으로 이 변환은 w에 대한 식이 됩니다.

사각 펄스 함수의 푸리에 변환을 구합니다.

syms a b t
f = rectangularPulse(a,b,t);
FT = fourier(f)
FT = 

-sin(aw)+cos(aw)iw+sin(bw)+cos(bw)iw

단위 임펄스(디랙 델타 함수)의 푸리에 변환을 구합니다.

f = dirac(t);
FT = fourier(f)
FT = 1

절댓값 함수의 푸리에 변환을 구합니다.

f = a*abs(t);
FT = fourier(f)
FT = 

-2aw2

계단 함수(헤비사이드 함수)의 푸리에 변환을 구합니다.

f = heaviside(t);
FT = fourier(f)
FT = 

πδdirac(w)-iw

상수의 푸리에 변환을 구합니다.

f = a;
FT = fourier(f)
FT = 2πδdirac(w)i

코사인 함수의 푸리에 변환을 구합니다.

f = a*cos(b*t);
FT = fourier(f)
FT = πaδdirac(b+w)+δdirac(b-w)

사인 함수의 푸리에 변환을 구합니다.

f = a*sin(b*t);
FT = fourier(f)
FT = πaδdirac(b+w)-δdirac(b-w)i

부호 함수의 푸리에 변환을 구합니다.

f = sign(t);
FT = fourier(f)
FT = 

-2iw

아무런 가정 없이 우측 지수 함수의 푸리에 변환을 구합니다.

f = exp(-t*abs(a))*heaviside(t);
FT = fourier(f)
FT = 

1|a|+wi-sign(|a|)2-12fourier(e-t|a|,t,w)

a > 0라고 가정하고 우측 지수 함수의 푸리에 변환을 구합니다. 푸리에 변환을 계산한 후 가정을 지웁니다.

assume(a > 0)
FTwithAssumption = fourier(f)
FTwithAssumption = 

1a+wi

assume(a,"clear")

a > 0라고 가정하고 양면 지수 함수의 푸리에 변환을 구합니다. 푸리에 변환을 계산한 후 가정을 지웁니다.

assume(a > 0)
f = exp(-a*t^2);
FTwithAssumption = fourier(f)
FTwithAssumption = 

πe-w24aa

assume(a,"clear")

bc가 실수라고 가정하고 가우스 함수의 푸리에 변환을 구합니다. 푸리에 변환을 계산한 후 결과를 단순화하고 가정을 지웁니다.

syms c
assume([b c],"real")
f = a*exp(-(t-b)^2/(2*c^2));
FT = fourier(f);
FTsimplified = simplify(FT)
FTsimplified = 

2aπe-wwc2+2bi2|c|

assume([b c],"clear")

nu = 1를 사용하여 제1종 베셀 함수의 푸리에 변환을 구합니다. 결과를 단순화합니다.

syms x
f = besselj(1,x);
FT = fourier(f);
FTsimplified = simplify(FT)
FTsimplified = 

-2wrectangularPulse(-1,1,-w)i1-w2

exp(-t^2-x^2)의 푸리에 변환을 구합니다. 기본적으로 symvar은 독립 변수를 결정하고 w는 변환 변수입니다. 여기서 symvarx를 선택합니다.

syms t x
f = exp(-t^2-x^2);
FT = fourier(f)
FT = 

πe-t2-w24

변환 변수를 y로 지정합니다. 변수를 하나만 지정한 경우 해당 변수는 변환 변수가 됩니다. symvar이 계속 독립 변수를 결정합니다.

syms y
FT = fourier(f,y)
FT = 

πe-t2-y24

독립 변수와 변환 변수를 각각 ty로 지정합니다.

FT = fourier(f,t,y)
FT = 

πe-x2-y24

시작점이 -1/2이고 끝점이 1/2인 사각 펄스를 생성합니다.

syms t
f1 = rectangularPulse(-1/2,1/2,t);

푸리에 변환을 구합니다. 결과를 단순화합니다. 여기서 푸리에 변환은 실수 부분만 포함합니다.

FT1 = fourier(f1);
FT1 = simplify(FT1)
FT1 = 

2sin(w2)w

fplot를 사용하여 2x2 타일 차트 레이아웃에 사각 펄스를 플로팅합니다. 푸리에 변환의 실수부와 허수부를 플로팅합니다.

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")

Figure contains 2 axes objects. Axes object 1 with title Rectangular Pulse, xlabel $t$, ylabel $f(t)$ contains an object of type functionline. Axes object 2 with title Fourier Transform, xlabel $w$, ylabel FT($w$) contains 2 objects of type functionline. These objects represent Re(FT), Im(FT).

다음으로, 시작점이 0이고 끝점이 1인 또 다른 사각 펄스를 생성합니다.

f2 = rectangularPulse(0,1,t);

푸리에 변환을 구합니다. 여기서 푸리에 변환은 실수부와 허수부를 모두 포함합니다.

FT2 = fourier(f2)
FT2 = 

sin(w)+cos(w)iw-iw

사각 펄스를 플로팅합니다. 푸리에 변환의 실수부와 허수부를 플로팅합니다.

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")

Figure contains 4 axes objects. Axes object 1 with title Rectangular Pulse, xlabel $t$, ylabel $f(t)$ contains an object of type functionline. Axes object 2 with title Fourier Transform, xlabel $w$, ylabel FT($w$) contains 2 objects of type functionline. These objects represent Re(FT), Im(FT). Axes object 3 with xlabel $t$, ylabel $f(t)$ contains an object of type functionline. Axes object 4 with xlabel $w$, ylabel FT($w$) contains 2 objects of type functionline. These objects represent Re(FT), Im(FT).

t^3의 푸리에 변환을 구합니다. 결과는 디랙 델타 함수의 3계 도함수로 표현됩니다.

syms t w
FT = fourier(t^3,t,w)
FT = -2πδdirac(w)i

t0에서 불연속을 갖는 헤비사이드 함수의 푸리에 변환을 구합니다.

syms t0
FT = fourier(heaviside(t - t0),t,w)
FT = 

e-t0wiπδdirac(w)-iw

세부 정보 섹션에 설명된 대로 cs는 푸리에 변환의 파라미터입니다. 기본적으로 fourier 함수는 c=1s=-1을 사용합니다. 하지만 sympref를 사용하여 해당 파라미터 값을 변경할 수 있습니다.

푸리에 파라미터의 디폴트 값을 사용하여 t*exp(-t^2)의 푸리에 변환을 계산합니다.

syms t w
f = t*exp(-t^2);
FT = fourier(f,t,w)
FT = 

-wπe-w24i2

sympref를 사용하여 푸리에 파라미터를 c = 1s = 1로 변경하고 변환을 다시 계산합니다. 결과가 다음과 같이 변경됩니다.

sympref("FourierParameters",[1 1]);
FT = fourier(f,t,w)
FT = 

wπe-w24i2

푸리에 파라미터를 c = 1/(2*pi)s = 1로 변경하고 변환을 다시 계산합니다. 결과가 다음과 같이 변경됩니다.

sympref("FourierParameters",[1/(2*sym(pi)) 1]);
FT = fourier(f,t,w)
FT = 

we-w24i4π

sympref를 사용하여 설정한 기호 설정은 현재 세션뿐만 아니라 이후의 MATLAB® 세션까지 계속 적용됩니다. FourierParameters를 "default"로 설정하여 cs의 디폴트 값을 복원합니다.

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 = 

(2πexδdirac(a)2πδdirac(b)-πδdirac(c-1)-δdirac(c+1)i-2πδdirac(d))

fourier를 스칼라 및 비 스칼라 인수와 함께 호출한 경우 이 함수는 비 스칼라 인수와 일치하도록 스칼라 인수를 확장합니다. 비 스칼라 인수는 크기가 동일해야 합니다.

FT = fourier(x,vars,transVars)
FT = 

(2πxδdirac(a)2πδdirac(b)i2πxδdirac(c)2πxδdirac(d))

fourier는 입력값을 변환할 수 없는 경우, 실행되지 않은 호출을 그대로 반환합니다.

syms f(t) w
FT = fourier(f,t,w)
FT = fourier(f(t),t,w)

ifourier를 사용하면 원래의 표현식이 반환됩니다.

f = ifourier(FT,w,t)
f = f(t)

각 독립 변수에 일련의 1차원 푸리에 변환을 독립적으로 적용하여 2차원 푸리에 변환을 구합니다.

이 예제에서는 2차원 푸리에 변환 공식이 다음과 같이 되도록 푸리에 파라미터를 c=1s=2π로 설정합니다.

F(u,v)=--f(x,y) ei(2πux+2πvy) dx dy.

sympref를 사용하여 이러한 파라미터를 지정할 수 있습니다.

sympref("FourierParameters",[1 2*sym(pi)]);

원점에 위치하고 너비가 a, 높이가 b인 2차원 단위 직사각형의 2차원 푸리에 변환을 구합니다. 변수 x에 대한 1차원 푸리에 변환을 수행한 다음, 변수 y에 대한 변환을 수행합니다. 결과를 단순화합니다.

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 = 

sin(πau)sin(πbv)uvπ2

표준편차가 σ이고 xy 방향 모두에서 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 = e-2σ2π2u2+v2

(x,y)=(0,a)(x,y)=(0,-a)에 위치한 두 점 소스의 푸리에 변환을 구합니다.

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 = cos(2πav)

단위원형 개구의 푸리에 변환을 구합니다. heaviside 함수를 사용하여 단위원 을 정의합니다.

f(x,y) = heaviside(x^2+y^2-1);
FT = fourier(f,x,u);
FT = fourier(FT,y,v)
FT = fourier(fourier(heaviside(x2+y2-1),x,u),y,v)

여기서 fourier 함수는 입력 함수를 변환할 수 없고 실행되지 않은 호출을 그대로 반환합니다. 대안으로, fft2 함수를 사용하여 2차원 푸리에 변환을 수치적으로 구할 수 있습니다. 원형 개구의 2차원 푸리에 변환을 구하는 방법에 대한 예제는 2차원 푸리에 변환 항목을 참조하십시오.

sympref를 사용하여 설정한 기호 설정은 현재 세션뿐만 아니라 이후의 MATLAB 세션까지 계속 적용됩니다. 디폴트 설정을 복원합니다.

sympref("default");

입력 인수

모두 축소

입력값으로, 기호 표현식, 기호 함수, 기호 벡터 또는 기호 행렬로 지정됩니다.

변환 변수로, 기호 변수, 기호 표현식, 기호 벡터 또는 기호 행렬로 지정됩니다. 이 변수는 종종 "빈도 변수"라고 불립니다. 기본적으로 fourierw를 사용합니다. wf의 독립 변수인 경우 fourierv를 사용합니다.

독립 변수로, 기호 변수, 기호 표현식, 기호 벡터 또는 기호 행렬로 지정됩니다. 이 변수를 흔히 "시간 변수" 또는 "공간 변수"라고 합니다. 변수를 지정하지 않으면 fourier는 함수 symvar(f,1)을 사용하여 독립 변수를 결정합니다.

세부 정보

모두 축소

  • 인수가 배열인 경우 fourier는 배열의 모든 요소에 대해 각각 동작을 수행합니다.

  • 첫 번째 인수에 기호 함수가 포함된 경우 두 번째 인수는 스칼라여야 합니다.

  • 푸리에 역변환을 계산하려면 ifourier를 사용하십시오.

  • fourierpiecewise를 변환하지 않습니다. 대신 함수 heaviside, rectangularPulse 또는 triangularPulse를 사용하여 piecewise를 재작성해 보십시오.

참고 문헌

[1] Oberhettinger, Fritz. Tables of Fourier Transforms and Fourier Transforms of Distributions. Berlin, Heidelberg: Springer Berlin Heidelberg, 1990.

버전 내역

R2006a 이전에 개발됨