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
로 지정합니다. 변수를 하나만 지정한 경우 해당 변수는 변환 변수가 됩니다. 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
를 사용하여 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")
다음으로, 시작점이 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 =
와 에 위치한 두 점 소스의 푸리에 변환을 구합니다.
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)
을 사용하여 독립 변수를 결정합니다.
세부 정보
점 w에서 변수 x에 대한 표현식 f = f(x)의 푸리에 변환은 다음과 같습니다.
여기서 c와 s는 푸리에 변환의 파라미터입니다. fourier
함수는 c = 1, s = –1을 사용합니다.
팁
인수가 배열인 경우
fourier
는 배열의 모든 요소에 대해 각각 동작을 수행합니다.첫 번째 인수에 기호 함수가 포함된 경우 두 번째 인수는 스칼라여야 합니다.
푸리에 역변환을 계산하려면
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.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 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)