푸리에 급수란
영상처리, 신호와 시스템 등 공학에서 가장 중요한 것은 푸리에 급수와 푸리에 변환이다.
많이 어려워서 이해를 하기 위해 글로 표현해서 공부해보기로 했다.

먼저 결과부터 말하자면, 빨간색의 복잡한 신호가 있다고 가정하자.
이 세상의 모든 복잡한 신호(빨간색)는 간단한 신호(파란색)의 합으로 나타낼 수 있다.
참고로 간단한 신호라 함은 코사인 함수이다.
왜 사인함수는 아니냐하면, 사인함수를 평행이동 시키면 코사인함수이기 때문이다.

또한 빨간색의 노이즈와 검은색의 원본노이즈가 있다고 하자.
이를 푸리에 변환을 통해 청록색의 그래프로 나타낼 수 있다.

이를 구분해 잔잔바리의 노이즈를 제거하고 기존의 깔끔한 원본 신호를 가져올 수도 있다.
이래서 푸리에 변환은 노이즈 제거에 중요하다.
그래서 영상처리나 음원처리 등 각종 프로세싱 과정에서 많이 쓰인다.
푸리에 급수 유도
간단한 신호들의 합
특정 시간 t초일 때, 복잡한 신호 f(t)에 관한 식을 삼각함수들의 합으로 표현할 수 있다.
f(t)=a0+(a1cosωt+a2cos2ωt+⋯+ancosnωt+…)+(b1sinωt+b2sin2ωt+⋯+bnsinnωt+⋯)
단순한 신호들은 정수배의 주기로 이루어져있다.
그리고 신호는 y절편처럼 편차가 존재하기 때문에 상수 a0도 식에 존재한다.
이를 무한대로 활용하면 f(t)=a0+∑n=1∞(ancosnωt+bnsinnωt)이다.
여기서 a0~a∞과 b1~b∞계수들만 알면 주기함수의 합으로 신호를 표현할 수 있는 것이다.
사전에 알아야할 식
∫0Tsinnωtdt=0
∫0Tcosnωtdt=0
∫0Tsinnωtcosmωtdt=0
∫0Tsinnωtsinmωtdt=0
∫0Tcosnωtcosmωtdt=0
∫0Tcos2nωtdt=2T
∫0Tsin2nωtdt=2T
이 식은 직접 계산해봐도 알 수 있다.
a0구하기
f(t)=a0+(a1cosωt+a2cos2ωt+⋯+ancosnωt+…)+(b1sinωt+b2sin2ωt+⋯+bnsinnωt+⋯)
위 식을 적분하면 다음과 같다. 적분은 0부터 주기T까지 시간축으로 진행한다.
∫0Tf(t)dt=∫0T[a0+(a1cosωt+a2cos2ωt+⋯+ancosnωt+…)+(b1sinωt+b2sin2ωt+⋯+bnsinnωt+⋯)]dt=∫0Ta0dt+a1∫0Tcosωtdt+a2∫0Tcos2ωtdt+⋯+b1∫0Tsinωtdt+b2∫0Tsin2ωtdt+…
여기서 ∫0Tsinnωtdt=0, ∫0Tcosnωtdt=0이기 때문에, ∫0Ta0dt만 살아남는다.
즉, ∫0Tf(t)dt=∫0Ta0dt=Ta0이므로 a0=T1∫0Tf(t)dt
a1~a∞구하기
f(t)=a0+(a1cosωt+a2cos2ωt+⋯+ancosnωt+…)+(b1sinωt+b2sin2ωt+⋯+bnsinnωt+⋯)
이번엔 양변에 cosnωt를 곱한 후 적분한다.
∫0Tf(t)cosnωtdt=∫0T[a0+(a1cosωt+a2cos2ωt+⋯+ancosnωt+…)+(b1sinωt+b2sin2ωt+⋯+bnsinnωt+⋯)]cosnωtdt=∫0Ta0cosnωtdt+a1∫0Tcosωtcosnωtdt+a2∫0Tcos2ωtcosnωtdt+⋯+b1∫0Tsinωtcosnωtdt+b2∫0Tsin2ωtcosnωtdt+…
여기서 ∫0Tsinmωcosnωtdt=0, ∫0Tcosmωcosnωtdt=0, ∫0Tcosnωtdt=0이기 때문에, ∫0Tancos2nωtdt만 살아남는다.
즉,∫0Tf(t)cosnωtdt=∫0Tancos2nωtdt=an∫0Tcos2nωtdt=2Tan이므로, an=T2∫0Tf(t)cosnωtdt
b1~b∞구하기
f(t)=a0+(a1cosωt+a2cos2ωt+⋯+ancosnωt+…)+(b1sinωt+b2sin2ωt+⋯+bnsinnωt+⋯)
이번엔 양변에 sinnωt를 곱한 후 적분한다.
∫0Tf(t)cosnωtdt=∫0T[a0+(a1cosωt+a2cos2ωt+⋯+ancosnωt+…)+(b1sinωt+b2sin2ωt+⋯+bnsinnωt+⋯)]sinnωtdt=∫0Ta0sinnωtdt+a1∫0Tcosωtsinnωtdt+a2∫0Tcos2ωtsinnωtdt+⋯+b1∫0Tsinωtsinnωtdt+b2∫0Tsin2ωtsinnωtdt+…
여기서 ∫0Tsinmωsinnωtdt=0, ∫0Tcosmωsinnωtdt=0, ∫0Tsinnωtdt=0이기 때문에, ∫0Tbnsin2nωtdt만 살아남는다.
즉,∫0Tf(t)sinnωtdt=∫0Tbnsin2nωtdt=bn∫0Tsin2nωtdt=2Tbn이므로, bn=T2∫0Tf(t)sinnωtdt
정리 후 결과 대입
정리하자면 다음과 같다.
a0=T1∫0Tf(t)dt
an=T2∫0Tf(t)cosnωtdt
bn=T2∫0Tf(t)sinnωtdt
이를 f(t)=a0+∑n=1∞(ancosnωt+bnsinnωt) 이식에 대입하면 다음과 같다.
f(t)=T1∫0Tf(t)dt+∑n=1∞((T2∫0Tf(t)cosnωtdt)cosnωt+(T2∫0Tf(t)sinnωtdt)sinnωt)
ω=2πn으로 각속도로 나타낼 수 있기에 이를 대입하면 다음과 같다.
f(t)=T1∫0Tf(t)dt+∑n=1∞((T2∫0Tf(t)cos2πnωtdt)cos2πnωt+(T2∫0Tf(t)sin2πnωtdt)sin2πnωt)
오일러 공식
오일러는 가우스가 구상한 실수와 허수축이 있는 복소평면에서 공식을 하나 찾았다.
eiπ=−1 세상에서 가장 멋진 수식이다.
그 이유를 알아보자.
유도

복소평면의 (x,y)에 점이 있다고 하자.
원점과 점까지의 거리는 r이라고 하면, x=rcosθ,y=rsinθ로 나타낼 수 있다.
그리고 복소평면의 점은 복소수로 나타낼 수 있다.
x+iy=rcosθ+irsinθ 이를 A라고 둔다.
이 점은 원점과 r=1이라고 가정한다. 그래서 A=cosθ+isinθ이다.
양변에 θ로 미분하면 dθdA=icosθ−sinθ=i(isinθ+cosθ)=iA이다.
양변에 Adθ를 곱해주면 AdA=idθ이다.
서로 적분을 진행하면 lnA=iθ이므로 A=eiθ이다.
즉, cosθ+isinθ=eiθ가 된다.
삼각함수와 오일러 공식
cosθ+isinθ=eiθ 에서 θ자리에 −θ를 넣어보자.
cos−θ+isin−θ=e−iθ 가 된다.
주기 함수의 성질로 인해 cosθ−isinθ=e−iθ 이렇게 유도된다.
cosθ+isinθ=eiθ식과 유도된 식을 합치고 빼고를 하면
cosθ=2eiθ+e−iθ, sinθ=2ieiθ−e−iθ을 유도할 수 있다.
오일러 공식을 푸리에 급수에 대입
오일러 공식을 약간 변환한 cosnωt=2einωt+e−inωt, sinnωt=2ieinωt−e−inωt을 대입해보자.
f(t)=a0+∑n=1∞(ancosnωt+bnsinnωt)=a0+∑n=1∞(an(2einωt+e−inωt)+bn(2ieinωt−e−inωt))
여기서 einωt와 e−inωt를 따로 묶어서 다시 전개한다.
f(t)=a0+∑n=1∞(an(2einωt+e−inωt)+bn(2ieinωt−e−inωt))=a0+∑n=1∞(2an−bni(einωt)−2an+bni(e−inωt))
그리고 시그마의 범위를 0~∞이 아닌 −∞~∞으로 확장시키기 위해, e−inωt부분이 있는 곳을 n자리에 −n을 대입해준다.
f(t)=a0+∑n=1∞(2an−bni(einωt)−2an+bni(e−inωt))=a0+∑n=1∞(2an−bnieinωt)+∑n=−1−∞(2a−n−b−nieinωt)
여기에 아까 푸리에 급수 정리 파트에서 구한 3가지 요소를 대입한다.
a0=T1∫0Tf(t)dt
an=T2∫0Tf(t)cosnωtdt
bn=T2∫0Tf(t)sinnωtdt
참고로 이식도 cosnωt=2einωt+e−inωt, sinnωt=2ieinωt−e−inωt를 대입해서
a0=T1∫0Tf(t)dt
an=T2∫0Tf(t)(2einωt+e−inωt)dt=T1∫0Tf(t)(einωt+e−inωt)dt
bn=T1∫0Tf(t)(ieinωt−e−inωt)dt 로 바꿔주고 대입해주면..
f(t)=∑−∞∞(∫0Tf(t)(e−inωt)dt)einωt으로 유도된다.
결론
f(t)=∑−∞∞(∫0Tf(t)(e−inωt)dt)einωt