Skip to content
Home » 푸리에 트랜스 폼 | 5분만에 이해해보는 푸리에 변환 답을 믿으세요

푸리에 트랜스 폼 | 5분만에 이해해보는 푸리에 변환 답을 믿으세요

당신은 주제를 찾고 있습니까 “푸리에 트랜스 폼 – 5분만에 이해해보는 푸리에 변환“? 다음 카테고리의 웹사이트 hu.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://hu.taphoamini.com/photos/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 공돌이의 수학정리노트 이(가) 작성한 기사에는 조회수 24,266회 및 284168 Like 개의 좋아요가 있습니다.

푸리에 변환(Fourier transform, FT)은 시간이나 공간에 대한 함수를 시간 또는 공간 주파수 성분으로 분해하는 변환을 말한다. 종종 이 변환으로 나타난 주파수 영역에서 함수를 표현한 결과물을 가리키는 용어로도 사용된다.

Table of Contents

푸리에 트랜스 폼 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 5분만에 이해해보는 푸리에 변환 – 푸리에 트랜스 폼 주제에 대한 세부정보를 참조하세요

어때요 참 쉽쥬?
한국어 자막이 제공됩니다.

푸리에 트랜스 폼 주제에 대한 자세한 내용은 여기를 참조하세요.

Fourier Transform(푸리에 변환)의 이해와 활용 – 다크 프로그래머

푸리에 변환(Fourier transform)을 직관적으로 설명하면 푸리에 변환은 임의의 입력 신호를 다양한 주파수를 갖는 주기함수들의 합으로 분해하여 표현하는 …

+ 여기에 더 보기

Source: darkpgmr.tistory.com

Date Published: 1/19/2022

View: 1041

푸리에 트랜스폼 Fourier Transform 직관적 이해

몇 블로그 들을 참고하였고, 아래 reference로 적어놓았다. 1. 푸리에 급수. Fourier Series는 ‘적분변환 …

+ 여기에 더 보기

Source: young-ni.tistory.com

Date Published: 11/28/2022

View: 2393

푸리에 변환 – 나무위키

이를 이산 푸리에 변환(Discrete Fourier Transform, DFT)이라고 한다. 이산 푸리에 변환은 기본적인 푸리에 변환이 정의역이 연속적인 함수에 사용되는 …

+ 여기를 클릭

Source: namu.wiki

Date Published: 1/6/2022

View: 6487

[ Signal ] 푸리에 변환 (Fourier Transform) – (1) 기본 유도과정

푸리에 변환(Fourier Transform; FT)은 임의의 입력 함수(주기, 비주기 상관없음)를 받아서 다양한 주파수를 갖는 주기함수(sin, cos)들의 합으로 분해 …

+ 자세한 내용은 여기를 클릭하십시오

Source: supermemi.tistory.com

Date Published: 10/26/2021

View: 2267

푸리에 변환 Fourier transform – 네이버 블로그

‘푸리에 변환'(Fourier transform)이란 ‘시간 영역'(time domain)의 함수를 ‘주파수 영역'(frequency domain)의 함수로 변환하는 것 또는 그 변환된 것을 …

+ 여기에 보기

Source: m.blog.naver.com

Date Published: 1/27/2022

View: 2089

형보다 나은 아우: 푸리에 변환(Fourier Transform)

그러면 비주기 함수도 푸리에 급수로 변환할 수 있다. 다만 주기를 무한대로 보낸 경우는 푸리에 급수라 하지 않고 푸리에 적분(Fourier integral) 혹은 …

+ 자세한 내용은 여기를 클릭하십시오

Source: ghebook.blogspot.com

Date Published: 2/7/2022

View: 3735

푸리에 급수와 푸리에 변환(Fourier Transform)에 대해

푸리에 급수와 푸리에 변환(Fourier Transform)에 대해. 린레몬 2020. 7. 5. 19:44. 안녕하세요 레몬입니다. 맨 처음으로 통신이론 과목소개 글을 작성하려 했는데, …

+ 여기에 더 보기

Source: renelemon.tistory.com

Date Published: 6/4/2022

View: 2852

05. 푸리에 변환, 푸리에 역변환 (Fourier Transform, Inverse …

이번 장에서 드디어 앞 장에서 설명했던 푸리에 급수를 이용해서 푸리에 변환식을 유도해 낼 것이다. 앞 장에서 푸리에 급수에 대해 알아봤다.

+ 여기에 표시

Source: infograph.tistory.com

Date Published: 9/17/2021

View: 2040

주제와 관련된 이미지 푸리에 트랜스 폼

주제와 관련된 더 많은 사진을 참조하십시오 5분만에 이해해보는 푸리에 변환. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

5분만에 이해해보는 푸리에 변환
5분만에 이해해보는 푸리에 변환

주제에 대한 기사 평가 푸리에 트랜스 폼

  • Author: 공돌이의 수학정리노트
  • Views: 조회수 24,266회
  • Likes: 284168 Like
  • Date Published: 2021. 12. 11.
  • Video Url link: https://www.youtube.com/watch?v=YsG8fJsH9JE

위키백과, 우리 모두의 백과사전

사인파의 진폭이 다양한 방식으로 표현되어 있다. (1)은 일반적인 첨두치 peak 진폭을, (2)는 최대치와 최저치 사이의 차이를, (3)은 제곱평균제곱근을, (4)는 주기를 나타낸다.

θ만큼 위상차가 생긴 모습

푸리에 변환(Fourier transform, FT)은 시간이나 공간에 대한 함수를 시간 또는 공간 주파수 성분으로 분해하는 변환을 말한다. 종종 이 변환으로 나타난 주파수 영역에서 함수를 표현한 결과물을 가리키는 용어로도 사용된다. 조제프 푸리에가 열전도에 대한 연구에서 열 방정식의 해를 구할 때 처음 사용되었다.

시간에 대한 함수를 푸리에 변환했을 때 얻어지는 복소함수에서 각 주파수에서의 진폭은 원래 함수를 구성하던 그 주파수 성분의 크기를, 편각은 기본 사인 곡선과의 위상차(phase offset)를 나타낸다. 푸리에 변환된 결과물로부터 피변환함수를 복원할 수도 있다. 이를 증명하는 정리를 푸리에 역변환 정리라고 한다.

원래 함수에 적용할 수 있는 선형 연산은 주파수 영역에도 그 대응되는 연산이 존재하는데, 때때로 이 대응되는 선형 연산이 더 간단할 수도 있다. 시간 영역에서 미분은 주파수 영역에서는 주파수와의 곱셈으로 나타나기 때문에 미분방정식을 푸리에 공간으로 옮겨와 푸는 경우도 종종 발생한다. 또 시간 영역에서의 합성곱은 주파수 영역으로 옮겨오면 평범한 곱셈과 같다. 이런 경우에는 원 함수를 푸리에 공간으로 옮겨와 여기서 선형연산을 적용한 뒤, 다시 역변환을 통해 원 함수를 복원하는 방식으로 연산을 더 쉽게 적용할 수 있다. 이처럼 더 단순한 함수와 연산은 조화해석학 분야에서 체계적으로 연구되고 있으며 현대 수학에 폭 넓게 응용되고 있다.

시간 영역에서는 좁은 지역에서 표현되는 함수를 주파수 영역으로 푸리에 변환하면 함수가 넓게 퍼지게 된다. 이를 불확정성 원리라 한다. 그러나 가우스 함수는 푸리에 변환을 해도 똑같이 가우스 함수로 나타난다. 이 가우스 함수는 확률 이론과 통계학에서 뿐만 아니라 정규 분포를 나타내는 물리 현상에 대한 연구에서 매우 중요하게 다뤄진다. 조제프 푸리에가 푸리에 변환을 통해 구한 열 방정식의 해가 바로 가우스 함수의 꼴을 띄었다.

엄밀히 말하자면 푸리에 변환은 일종의 적분 변환으로, 리만 이상적분이어서 더 복잡한 적분 이론을 요구하는 응용분야에서는 적합하지 않을 수 있다. 대표적으로 많은 경우 디랙 델타 함수를 일종의 함수로 푸리에 변환에 응용하지만, 수학적으로 엄밀한 관점을 취하자면 더 심도있는 고찰이 필요한 것이다.[주해 1]

푸리에 변환은 유클리드 공간의 변수들로 구성된 함수로 일반화할 수도 있다. 즉, 3차원 공간의 함수를 3차원 공간의 운동량에 대한 함수로 바꿀 수도 있고, 혹은 공간과 시간의 함수를 4차원 운동량에 대한 함수로 변환할 수 있다. 이것은 파동에 대한 연구나 양자역학에서뿐 아니라 공간이나 운동량 또는 둘 모두를 함수로 표현할 때 파동 공식 표현이 중요한 분야에서 공간에서의 푸리에 변환이 매우 자연스럽게 사용되도록 하였다. 일반적으로 푸리에 공식이 적용가능한 함수는 복소수이며, 벡터 값을 가질 수 있다. 집합군을 이용한 함수에서는 더 많은 형태가 가능하다. ℝ 또는 ℝn (덧셈에 닫혀있는 집합군으로 보여지는)의 원래의 푸리에 변환 외에, 알려져 있듯이 이산시간 푸리에 변환(DTFT, 집합 ℤ)과 이산 푸리에 변환(DFT, 집합 ℤ mod N), 푸리에 급수, 원형 푸리에 변환(집합 S1, 단위원 = 끝점이 같은 유한 폐구간)을 포함한다. 마지막 것은 보통 주기함수에서 다루어진다. 고속 푸리에 변환(Fast Fourier transform)은 DFT를 계산하기 위한 하나의 알고리즘이다.

정의 [ 편집 ]

함수 x ( t ) {\displaystyle x(t)} 가 복소수 범위에서 정의되어 있고 르베그 적분이 가능할 때, 이 함수의 푸리에 변환 X ( ξ ) {\displaystyle X(\xi )} 는 다음과 같이 정의된다.

X ( ξ ) = ∫ − ∞ ∞ x ( t ) e − 2 π i ξ t d t {\displaystyle X(\xi )=\int _{-\infty }^{\infty }x(t)\ e^{-2\pi i\xi t}\,dt} ξ {\displaystyle \xi }

여기서 일반적으로 독립변수 t {\displaystyle t} 는 시간을 나타내고, 변환변수 ξ {\displaystyle \xi } 는 주파수를 나타낸다.

X ( ξ ) {\displaystyle X(\xi )} 대신 x ^ ( ξ ) {\displaystyle {\hat {x}}(\xi )} , F { x } ( ξ ) {\displaystyle {\mathcal {F}}\{x\}(\xi )} 와 같은 표기를 사용하기도 한다.

소개 [ 편집 ]

f 가 f̂ 로 표시한다. 영상의 초반부에 푸리에 급수 로 분해되어 파란색으로 표시된다. 이 사인파들을 주파수에 따라 나열하면 영상의 후반부에 나타나는 것처럼 디랙 델타 함수 의 꼴로 표시된다. 이 때 주파수 영역에서의 함수를로 표시한다.

푸리에 급수에서 출발하자. 푸리에 급수에서는 복잡한 모양의 주기함수를 사인과 코사인으로 분해한다. 푸리에 변환은 일반적인 함수의 주기를 무한대로 간주하여 접근한다.[1]

오일러 공식을 통해 e2πiθ = cos(2πθ) + i sin(2πθ)로 나타낼 수 있어서 푸리에 급수의 기본 함수를 삼각함수가 아닌 e2πiθ로 사용하기도 한다. 이를 통해 공식을 더 간단하게 표시할 수 있다는 이점이 있다. 삼각함수를 복소지수함수로 나타낼 경우 푸리에 계수들도 복소수의 값을 가져야 한다. 이 때 푸리에 계수의 진폭은 원래 함수를 구성하던 그 주파수 성분의 크기를, 편각은 기본 사인 곡선과의 위상차(phase offset)를 나타낸다. 이 정의를 사용하면 주파수가 음의 값을 가지는 경우도 발생한다. 따라서 푸리에 변환에서의 주파수는 “시간당 몇 회 진동하는지”에 대한 개념으로만 설명될 수는 없고 확장된 어떤 개념으로 보아야 한다.

푸리에 급수 [ 편집 ]

푸리에 적분(Fourier Integral) [ 편집 ]

f ( x ) = ∫ 0 ∞ A ( w ) cos ⁡ w x d w + B ( w ) sin ⁡ w x d w {\displaystyle f(x)=\int _{0}^{\infty }A(w)\cos wxdw+B(w)\sin wxdw} x {\displaystyle x}

여기서 A(w)와 B(w)는 다음과 같다.

A ( w ) = 1 π ∫ − ∞ ∞ f ( t ) cos ⁡ w t d t {\displaystyle A(w)={1 \over \pi }\int _{-\infty }^{\infty }f(t)\cos wtdt} B ( w ) = 1 π ∫ − ∞ ∞ f ( t ) sin ⁡ w t d t {\displaystyle B(w)={1 \over \pi }\int _{-\infty }^{\infty }f(t)\sin wtdt}

푸리에 변환의 단점 [ 편집 ]

시간에 대한 연속성이 고려되지 않음으로써 많은 문제가 야기된다. 이러한 단점을 보완하기 위해 DTFT, STFT, 웨이블릿 변환, 가버변환, MFCCs 등등이 연구되어 나왔다.

같이 보기 [ 편집 ]

주해 [ 편집 ]

각주 [ 편집 ]

다크 프로그래머 :: Fourier Transform(푸리에 변환)의 이해와 활용

푸리에 변환(Fourier transform)에 대해서는 예전부터 한번 정리를 해야겠다고 생각만 했었는데 이번에 기회가 되어 글을 올립니다.

푸리에 변환(Fourier transform)은 신호처리, 음성, 통신 분야에서 뿐만 아니라 영상처리에서도 매우 중요한 개념으로 다양한 응용을 가지고 있습니다. 영상을 주파수 성분으로 변환하여 다양한 분석 및 처리를 할 수 있고 임의의 필터링 연산을 fft(fast Fourier transform)를 이용하여 고속으로 구현할 수도 있습니다. 그리고 푸리에 변환과 같은 근원적인 이론들은 특정 응용에 국한되지 않기 때문에 한번 알아두면 분야를 떠나서 두고두고 도움이 됩니다.

이 글에서는 푸리에 변환(Fourier transform)이 무엇이고 어디에 쓸 수 있는지, 그리고 어떻게 쓸 수 있는지 직관적 이해와 유용한 성질들, 영상처리 응용, 그리고 푸리에 변환(Fourier transform)을 실제 활용하는데 있어서 필요한 사항들을 최대한 직관적으로 정리하고자 합니다.

그동안 푸리에 변환(Fourier transform)에 대해 개인적으로 가지고 있었던 의문은 푸리에 변환을 통해 얻어지는 스펙트럼과 페이즈(phase) 중 페이즈(phase)가 무엇인가? 그리고 푸리에 주파수 공간의 좌표값을 어떻게 해석할까입니다. 아마도 비슷한 의문을 가진 분들도 꽤 있을 것으로 생각됩니다. 이 글을 통해서 그러한 의문에 대한 답도 같이 다루게 됩니다.

1. 푸리에 변환(Fourier transform) – 직관적 이해

모든 공부의 시작은 핵심 개념을 정확히 이해하는데 있다. 그리고 그 이해는 가급적 직관적일수록 좋다.

푸리에 변환(Fourier transform)을 직관적으로 설명하면 푸리에 변환은 임의의 입력 신호를 다양한 주파수를 갖는 주기함수들의 합으로 분해하여 표현하는 것이다.

좀더 들어가면, 푸리에 변환에서 사용하는 주기함수는 sin, cos 삼각함수이며 푸리에 변환은 고주파부터 저주파까지 다양한 주파수 대역의 sin, cos 함수들로 원본 신호를 분해하는 것이다.

아래 그림(그림 1)의 예를 보자. 맨 앞의 붉은 색 신호는 입력 신호이고 뒤의 파란색 신호들은 푸리에 변환(Fourier transform)을 통해 얻어진 (원본 신호를 구성하는) 주기함수 성분들이다. 각각의 주기함수 성분들은 고유의 주파수(frequency)와 강도(amplitude)를 가지고 있으며 이들을 모두 합치면 원본 붉은색 신호가 된다.

그림 1. 푸리에 변환 (그림출처: 위키피디아)

여기서 입력 신호는 전파, 음성 신호 등과 같이 시간축(time)에 대해 정의된 신호일 수도 있고 이미지(image) 등과 같이 공간축에 대해 정의된 신호일 수도 있다. 통신 분야에서는 푸리에 변환(Fourier transform)을 time domain에서 frequency domain으로의 변환이라고 하고, 컴퓨터 비전(computer vision), 영상처리 쪽에서는 spatial domain에서 frequency domain으로의 변환이라고 부른다. 명칭이야 어쨌든 그 핵심은 입력 신호를 sin, cos의 주기성분으로 분해하는 것이다.

푸리에 변환(Fourier transform)의 대단한 점은 입력 신호가 어떤 신호이든지 관계없이 임의의 입력 신호를 sin, cos 주기함수들의 합으로 항상 분해할 수 있다는 것이다. 그리고 그 과정을 수식으로 표현한 것이 푸리에 변환식이다.

2. 푸리에 변환(Fourier transform) – 수식적 이해

어떤 개념을 직관적으로 이해했다면 그 개념에 대한 수식적 이해는 그 개념을 한층 풍성하고 깊이있게 이해하게 해 준다.

푸리에 변환(Fourier transform)은 프랑스의 수학자 Joseph Fourier (1768 ~ 1830)가 제안한 방법으로서 수학사(해석학)의 역사가 새로 씌여질 정도로 대단한 발견이었다고 한다. 그 유명한 푸리에 변환의 수식은 다음과 같다.

, — (1)

. — (2)

여기서 j는 허수단위 , f(x)는 원본 입력 신호, ej2πux는 주파수 u인 주기함수 성분, F(u)는 해당 주기함수 성분의 계수(coefficient)를 나타낸다.

일단 식을 있는 그대로 해석하면 식 (1)은 입력신호 f(x)가 ej2πux들의 합으로 표현(분해)된다는 의미이다 (적분은 합한다는 의미를 갖는다). 그리고 식 (2)는 f(x)를 주기함수 성분으로 분해했을 때의 계수(coefficient) F(u)가 식 (2)로 주어진다는 의미이다. 앞서 그림 1과 연관해 보면 ej2πux는 f(x)를 구성하는 (파란색의 주파수 u인) 주기함수 성분들이고 F(u)는 해당 주기함수 성분의 강도(amplitude)를 나타낸다.

☞ 푸리에 변환에 대한 일반적인 설명 방식은 두번째 식 (2)를 푸리에 변환이라고 정의하고 첫번째 식 (1)을 푸리에 역변환(inverse Fourier transform)이라고 정의하는 것이다. 그리고 푸리에 역변환을 하면 다시 원래의 함수로 돌아온다고 한다. 하지만 이러한 기계적인 이해(푸리에 변환을 어디 하늘에서 뚝 떨어진 정의로만 받아들이는 것)는 푸리에 변환의 본질을 이해하는데 별 도움이 되지 않는다.

이제 식으로 좀더 들어가 보자. 일단, 식 자체는 푸리에 변환의 대단함에 비추어 매우 단순하다 (Simple is the best!!). 다만 한 가지 ej2πux의 의미만 이해하면 된다. 그리고 이를 위해서는 오일러 공식(Euler’s formula)이 필요하다.

오일러 공식(Euler’s formula)은 복소지수함수를 삼각함수로 변환할 수 있도록 하는 유명한 식이다.

— (3)

식 (3)은 증명 가능한 식이며 그 증명은 인터넷에서 어렵지 않게 찾을 수 있다. 어쨌든 오일러 공식을 이용하면 식 (1)의 ej2πux는 실수부가 cos(2πux), 허수부가 sin(2πux)인 주기함수임을 알 수 있다.

— (4)

여기서 cos(2πux), sin(2πux) 모두 주기(period)가 1/u, 주파수(frequency) u인 주기함수이므로 결국 ej2πux는 주파수 u인 정현파(sinusoidal wave)의 복소지수함수 표현임을 알 수 있다.

주기: 파동이 한번 진동하는데 걸리는 시간, 또는 그 길이. sin(wx)의 주기는 2π/w 임.

주파수: 1초 동안의 진동 횟수. 주파수와 주기는 서로 역수 관계 (주파수 = 1/주기)

☞ 정현파(sinusoidal wave)는 파형이 sin 또는 cos 함수인 파동(wave)을 말한다. 그런데, 여기서 왜 갑자기 복소수가 나오고 또 주기함수를 저렇게 표현하느냐고 따질 수 있다. 하지만 여기서는 그냥 복수지수함수는 정현파(sinusoidal wave)를 표현하는 방법 중 하나라는 정도로만 알아두자. 정현파 및 복수지수함수 표현에 대한 보다 자세한 내용은 AngeloYeo님의 페이저(phasor)에 대한 설명글을 참고하기 바란다.

이제 다시 원래의 식 (1), (2)로 돌아가 보자. 식 (1)은 함수 f(x)를 모든 가능한 주파수(u)의 주기함수들(ej2πux)의 일차결합으로 표현한 것이다. 그리고 그 일차결합 계수 F(u)는 식 (2)로 항상 주어질 수 있다는 것이 요지이다. 이와 같이 푸리에 변환식을 볼 수 있다면 푸리에 변환의 핵심을 이해한 것이다.

☞ 식 (1), (2)의 푸리에 변환(Fourier transform)식은 언뜻 보면 정의(definition)로 보이지만 사실은 증명해야 할 정리(theorem)이다. 즉, 식 (2)의 F(u)를 식 (1)에 대입하면 항상 f(x)가 나옴을 증명해야 한다. 이것이 증명되면 모든 임의의 신호함수는 항상 주기함수들의 일차결합으로 분해될 수 있음이 증명되는 것이다 (증명은 이곳 참조).

마지막으로, (증명은 아니지만) 왜 일차결합의 계수 F(u)가 식 (2)로 주어지는지를 선형대수학과 연관지어 직관적으로 이해해 보자. 식 (1)에서 ej2πux, u = 0, ±1, ±2, …은 모든 신호를 생성할 수 있는 직교(orthogonal) 기저(basis) 함수들로 볼 수 있다 (편의상 u를 정수 범위로 표기했으나 u는 실수 전체 범위임). 그러면 입력 신호 f(x)를 이들 기저함수들로 분해했을 때의 계수 F(u)는 f(x)와 기저함수의 내적(dot product)으로 계산될 수 있다 (아래의 ☞선형대수학 관련 설명 참조). 식 (2)는 f(x)와 ej2πux의 함수 내적이기 때문에 그 결과는 f(x)를 ej2πux들로 분해했을 때의 계수가 된다. 따라서, F(u)가 식 (2)로 주어지는 이유가 설명이 되었다. 참고로, 식 (2)에서 j 앞에 -가 붙은 이유는 복소수에서의 내적은 어느 한쪽에 켤레(conjugate) 복소수를 취한 후 계산되기 때문이다.

☞ 선형대수학(linear algebra)에서는 어떤 벡터 공간을 생성할 수 있는 일차독립인 벡터들의 집합을 기저(basis)라고 한다. 만일 기저(basis) 벡터들이 v1, v2, …, vn라 하면 이 벡터공간에 속하는 임의의 벡터 v는 v = a1v1 + a2v2 + … + anvn (ai는 상수)와 같이 기저 벡터들의 일차결합으로 표현될 수 있다 (왜냐하면 vi들이 이 벡터공간의 모든 벡터들을 생성할 수 있으니까). 그런데 만일 기저벡터들이 서로 수직(vi·vj = 0)인 단위벡터라면 일차결합 계수 ai는 내적을 이용하여 ai = v·vi로 손쉽게 계산할 수 있다 (∵ v·vi = (a1v1 + … + anvn)·vi = ai*(vi·vi) = ai). 어떤 벡터와 기저(basis) 벡터를 내적하면 이 벡터에 포함된 기저 성분의 계수가 얻어진다는 것은 선형대수학에서 매우 유용한 성질이다.

☞ F(u)가 식 (2)로 주어지는 이유에 대한 선형대수학적 설명은 개인적 이해 방식이라서 증명이 있거나 근거 문헌이 있는 내용은 아닙니다. 그냥 그런 식으로 이해할 수도 있구나 하고 참고만 하기 바랍니다. 정말 그런지 수학적으로 증명해 봐라 하면 골치아픕니다..

3. 이미지(영상신호)에서의 푸리에 변환(Fourier transform)

푸리에 변환(Fourier transform)을 영상처리에 적용하기 위해서는 이미지(영상신호)가 가지고 있는 몇 가지 차이점을 인지해야 한다. 먼저, 이미지는 2차원의(x축 방향의 변화와 y축 방향의 변화가 동시에 포함된) 신호이기 때문에 2차원에서 정의되는 푸리에 변환이 필요하다. 2차원 신호에 대한 푸리에 변환(Fourier transform)은 다음과 같이 정의된다.

, — (5)

. — (6)

단, 여기서 F(u, v)는 x축 방향으로 주파수(frequency) u, y축 방향으로 v인 주기함수 성분의 계수이다. 그리고 그 값은 식 (6)에 의해 계산된다.

그런데 이미지는 연속(continuous)이 아닌 이산(discrete) 신호이다. 그리고 한정된 유한(finite) 구간에서 정의되는 신호이다. 따라서, 이산 데이터에서 정의되는 푸리에 변환이 필요하다. W x H 크기의 이미지 f(x, y)에 대한 이산 푸리에 변환(discrete Fourier transform)은 다음과 같이 정의된다.

, —(7)

. —(8)

단, x = 0, 1, …, W-1, y = 0, 1, …, H-1이고 u = 0, 1, …, W-1, v = 0, 1, …, H-1.

식 (7)에서 ej2π(ux/W+vy/H)는 x축 방향으로 주파수가 u/W, y축 방향으로 주파수가 v/H인 sinusoidal 주기함수이다 (by 오일러 공식). 일반적인 푸리에 변환식과는 달리 W와 H로의 나누기가 들어있음에 유의해야 하며 이는 데이터가 정의된 구간을 하나의 단위 주기(unit period)로 만드는 효과가 있다. 일종의 정규화 팩터(normalization factor)라고 생각하면 된다.

여기서 2D 이미지를 어떻게 신호로 해석할 수 있는지, 그리고 2D 정현파(sinusoidal wave) ej2π(ux/W+vy/H)가 도대체 어떤 모습일지 아마도 의아해할 수 있다. 첫째, 이미지를 신호로 해석하는 문제는 x 또는 y축을 시간축으로 놓고 좌표의 변화에 따라 변하는 이미지 픽셀의 밝기 변화를 신호로 생각하면 쉽게 이해할 수 있다. 다음으로, 2D에서 정의되는 정현파(sinusoidal wave)의 모습은 아래 그림과 같이 모든 방향으로의 단면이 sinusoidal이 되는 물결 형태의 파동을 생각하면 된다.

그림 2. 2D에서의 sinusoidal wave

앞서 그림 1의 1D 푸리에 변환의 경우와 유사하게 생각해 보면, 이미지에 대한 푸리에 변환(Fourier transform)은 그림 2와 같은 형태의 다양한 2D 정현파들의 합으로 이미지를 분해하여 표현하는 것으로 이해할 수 있다.

이미지에 대한 푸리에 변환(Fourier transform)에서 한 가지 주의해야 할 것은 푸리에 변환의 계수 F(u, v)가 ej2π(ux+vy)의 계수가 아니라 ej2π(ux/W+vy/H)의 계수라는 점이다. 즉, 이산 푸리에 변환에서 F(u, v)는 주파수 u, v 성분이 아니라 주파수 u/W, v/H 성분에 대한 계수를 나타낸다.

W × H 이미지에 대한 이산 푸리에 변환에서 F(u, v)는 – x축 주파수 u/W, y축 주파수 v/H인 주기함수 성분에 대응 – 주기로는 x축 방향 W/u 픽셀, y축 방향 H/v 픽셀인 주기성분을 나타냄 (주기 = 1/주파수)

☞ 바로 이 부분이 개인적으로 푸리에 변환에 대해서 혼동스러웠던 부분 중 하나이다. W x H 이미지의 푸리에 변환에서 F(u, v)는 주파수 u, v의 성분이 아니라 주파수 u/W, v/H 성분이다. 따라서, 주파수 공간에서 특정 F(u, v) 값이 높게 나타났다면 원래의 이미지 공간에서는 x축 방향으로 주기가 W/u 픽셀, y축 방향 주기가 H/v 픽셀인 주기성 성분이 존재한다는 의미가 된다.

참고로, 1차원에서의 함수 f(x), x = 0, 1, 2, …, W-1에 대한 이산 푸리에 변환(discrete Fourier transform)은 다음과 같이 정의된다.

— (9)

— (10)

☞ 1차원 이산 푸리에 변환(discrete Fourier transform)식은 실제 푸리에 변환을 컴퓨터로 구현하는데 있어서 가장 기본이 되는 식이다. 왜냐하면 파동과 같은 연속 신호라 할지라도 실제 분석에 있어서는 샘플링된 이산 데이터를 이용해야 하고 2차원 푸리에 변환에 대한 구현도 내부적으로는 1차원 푸리에 변환을 이용하여 구현되기 때문이다.

4. 푸리에 스펙트럼(spectrum)과 페이즈(phase)

이제 실제로 푸리에 변환(Fourier transform)을 통해 얻어지는 F(u, v) 값들이 어떤 의미를 가지며 어떤 형태(visualization)를 갖는지 살펴보자.

푸리에 변환을 통해 얻어지는 F(u, v)는 복소수(complex number)이며 실수부(Real)와 허수부(Imaginary)로 구성된다 (1차원 푸리에 변환의 경우도 마찬가지이다).

— (11)

이 때, 복소수 F(u, v)의 크기 |F(u, v)|를 푸리에 변환의 spectrum(스펙트럼) 또는 magnitude라고 부르고, F(u, v)의 각도 Φ를 phase(페이즈) angle 또는 phase spectrum이라고 부른다.

— (12)

— (13)

A. 푸리에 스펙트럼(Fourier spectrum)

먼저, 푸리에 스펙트럼(Fourier spectrum)에 대해 살펴보자. 푸리에 스펙트럼은 해당 주파수 성분이 원 신호(이미지)에 얼마나 강하게 포함되어 있는지를 나타낸다. W x H 이미지를 푸리에 변환(Fourier transform)하면 식 (7), (8)에 의해 W x H의 F(u, v), u = 0, …, W-1, v = 0, …, H-1 가 얻어진다. 따라서, |F(u, v)|를 픽셀값으로 잡으면 아래 예와 같이 푸리에 스펙트럼을 원본 이미지와 동일한 크기의 이미지로 시각화할 수 있다.

그림 3. 푸리에 스펙트럼(spectrum)과 좌표계

(a) 입력 이미지, (b) 푸리에 스펙트럼, (c) shifted 스펙트럼

푸리에 스펙트럼(Fourier spectrum)을 이미지로 시각화하는 데에는 2가지 문제점이 있다. 먼저, 푸리에 스펙트럼은 저주파 영역은 매우 큰 값을 갖는 반면에 대부분의 다른 영역은 0에 가까운 값을 갖는다. 따라서 푸리에 스펙트럼을 그대로 이미지로 시각화하면 검은 바탕 위에 흰점 하나만 존재하는 형태가 된다. 이러한 문제를 해결하기 위해서 스펙트럼을 이미지로 표현할 때에는 그림 3(b)처럼 스펙트럼에 log를 취하는 것이 일반적이다. 다음으로, 원래의 스펙트럼 이미지는 그림 3(b)처럼 모서리로 갈수록 값이 높아지기 때문에 스펙트럼의 형태를 파악하기 힘들다. 따라서 이러한 문제를 해결하기 위해 그림 3(c)처럼 원점이 중심(center)에 오도록 스펙트럼의 위치를 이동시킨(shift) 형태의 이미지를 사용하는 것이 일반적이다 (아래 ☞설명 참조). 앞으로 푸리에 스펙트럼 이미지라 하면 그림 3(c)와 같은 shifted 스펙트럼 이미지를 생각하면 된다.

☞ 그림 3(c)와 같은 shift가 가능한 이유는 푸리에 스펙트럼이 원점대칭인 주기함수이기 때문이다. 사실 식 (9), (10)로 주어지는 이산 푸리에 변환(discrete Fourier transform)식은 f(x)가 주기함수일 때에만 성립하는 식이다. 원래의 입력신호 f(x)는 x = 0, 1, …, W-1의 유한 구간에서 정의된 함수이다. 우리가 관심있는 부분은 0 ~ W-1 구간에서의 특성이므로 그 외의 구간에 대해서는 함수를 어떻게 정의해도 무방하다. 따라서, 푸리에 변환 적용을 위해 이 함수를 확장하여 f(x + W) = f(x)인 주기함수(0 ~ W-1에서의 함수값이 다른 구간에서도 계속 반복)로 가정하고 식을 세운 것이 식 (9), (10)이다. 이 때, F(u) 또한 f(x)와 동일한 주기(W)의 주기함수가 된다. 즉. F(u) = F(u + W). 또한 식 (10)에서 |F(u)| = |F(-u)|임도 쉽게 알 수 있다. 즉, 이산 푸리에 스펙트럼은 원점대칭이면서 W를 주기로 하는 주기함수 형태임을 알 수 있다. 2차원의 경우도 마찬가지이며 F(u, v) = F(u + W, v) = F(u, v+ H) = F(u + W, v + h), |F(u, v)| = |F(-u, -v)|인 주기함수가 된다. 그리고 이러한 원점 대칭성과 주기성으로 인해 스펙트럼 이미지를 그림 3(c)와 같이 shift하여 표현하는 것이 가능해진다.

shifted 스펙트럼을 이해하기 위해 한 예로 아래 그림 4의 왼쪽과 같은 형태의 스펙트럼 신호를 생각해 보자. 그런데 만일 스펙트럼이 원점대칭이고 W를 주기로 반복된다면 푸리에 스펙트럼은 오른쪽과 같은 형태가 될 수밖에 없음을 알 수 있다. 원래의 푸리에 스펙트럼의 형태는 구간 0 ~ W의 형태(그림 3b)이지만 (어차피 정보가 반복되기 때문에) 이를 구간 -W/2 ~ W/2 형태(그림 3c)로 shift하여 표현한 것이 shifted 스펙트럼이다.

그림 4. 푸리에 스펙트럼의 주기 특징

B. 푸리에 스펙트럼의 해석

앞서 푸리에 스펙트럼(Fourier spectrum)은 해당되는 주파수 성분의 강도를 나타난다고 했는데, 정말 그런지 그리고 이 값이 이미지 도메인에서 어떻게 해석될 수 있는지 실제 예를 통해서 살펴보자.

아래 예는 이미지에 인위적으로 주기성분을 추가하였을 때 주파수 공간에서의 푸리에 스펙트럼이 어떻게 변하는지를 보여준다. 원본 이미지의 해상도는 205 × 205 픽셀이며(W = 205, H = 205) 따라서 스펙트럼 이미지도 205 x 205 해상도를 갖는다.

그림 5. 주기성분 추가에 따른 푸리에 스펙트럼의 변화

먼저, 그림 5(a)는 원본 이미지 및 대응되는 푸리에 스펙트럼 이미지를 보여준다. 그림의 예와 같이 일반적인 푸리에 스펙트럼 이미지는 원점 F(0, 0) 주변의 저주파 영역에서 강한 피크(peak)가 나타나고 원점에서 멀어질수록 즉, 고주파 영역으로 갈수록 값이 급격히 작아지는 형태를 갖는다.

그림 5(b)는 (a)의 이미지에 5 픽셀(pixel) 간격의 수평선을 인위적으로 추가한 경우이다. 그러면 주파수 공간에서는 그림과 같이 F(0, 41), F(0,82)에 강한 피크(peak)가 나타난다. 앞서 이산 푸리에 변환에서 F(u, v)는 x축 주기 W/u 픽셀, y축 주기 H/v 픽셀인 주기성분의 계수라 했다. 그러면, F(0, 41)은 주기가 x축 방향 205/0 = ∞, y축 방향 205/41 = 5 픽셀인 주기성분에 대응된다. 그리고 이것은 그림 5(b)를 만들 때 사용한 수평선의 주기(세로방향 5픽셀)와 정확히 일치한다.

☞ F(0, 82)에도 피크(peak)가 나타나는 것은 y축 방향으로 205/82 = 2.5 픽셀 간격의 주기 성분이 입력 이미지에 있다는 의미이다. 이는 이미지에 추가한 수평선이 정현파(sinusoidal wave)가 아니라 계단 형태이기 때문에 5 픽셀 주기의 정현파와 2.5 픽셀 주기의 정현파를 합쳐서 그러한 계단 형태를 근사했기 때문이다.

다음으로, 이번에는 그림 5(c)와 같이 대각선 방향의 정현파를 (a)의 이미지에 추가해 보자. 추가한 정현파는 x축 방향 주기 20 pixel, y축 방향 주기 10 픽셀인 2D sin 함수를 이용했다. 이 때, 푸리에 스펙트럼에는 F(10, 20.5)에 강한 피크(peak)가 생성됨을 확인할 수 있다. 즉, x축 방향으로는 W/u = 205/10 = 20.5 픽셀, y축 방향으로는 H/v = 205/20.5 = 10 픽셀의 주기 성분이 입력 이미지에 있음을 의미한다. 그리고 이는 실제 입력 이미지에 추가된 주기 성분과 정확히 일치한다 (소수점 오차는 u, v좌표를 정수로 표현함에 의한 것이다).

이상으로 주파수 공간에서의 F(u, v)가 입력 이미지 공간에서 어떻게 연관되어 해석될 수 있는지를 실제 예를 통해서 살펴보았다. 마지막으로 앞서 그림 5(b), (c)에서 스펙트럼의 피크(peak) 영역을 지운 후 푸리에 역변환(inverse Fourier transform)하면 아래와 같은 재미있는 결과를 얻을 수 있다 (지운다는 의미는 해당되는 F(u, v) 값들을 0으로 만든다는 의미이다).

그림 6. 푸리에 변환을 이용한 주기 성분 제거

☞ [개발한 것들] – FFT와 모아레 제거 프로그램을 이용하면 이미지의 푸리에 변환, 특정 스펙트럼 삭제 및 역변환을 직접 테스트해 볼 수 있다.

C. 푸리에 변환의 페이즈(phase)

푸리에 변환(Fourier transform)에서 스펙트럼(spectrum)은 잘 알려진 반면 페이즈(phase)는 상대적으로 잘 알려져 있지 않다. 하지만 페이즈(phase)에도 스펙트럼(spectrum) 못지 않은 중요한 정보가 담겨 있다고 한다.

페이즈(phase)를 우리말로 번역하면 ‘단계’가 되고 전문용어로는 ‘위상’이 된다. 위키피디아에는페이즈(phase, 위상)를 ‘반복되는 파형의 한 주기에서 첫 시작점의 각도 혹은 어느 한 순간의 위치’라고 정의한다. 즉, 파형(wave)의 시점이 어디인지가 페이즈(phase)이다. 예를 들어, sin 파와 cos 파는 90도의 페이즈(phase, 위상) 차이가 존재하는 동일한 파형으로 볼 수 있다.

푸리에 변환의 관점에서 보면 페이즈(phase)는 원본 신호를 주기 신호로 분해했을 때 각 주기성분의 시점이 어딘인지(즉, 각 주기성분들이 어떻게 줄을 맞춰서 원본 신호를 생성했는지)를 나타내는 요소가 된다.

아래 그림은 페이즈(phase)의 영향을 보여주는 예로서 파란색 주기성분 신호들을 합쳐서 빨간색 신호가 생성되는 예를 보여준다. 왼쪽, 오른쪽 경우 모두 동일한 주파수의 주기성분들을 합쳤지만 각 성분의 페이즈(phase) 차이로 인하여 전혀 다른 신호가 생성됨을 확인할 수 있다.

그림 7. 페이즈(phase) 차이에 따른 신호 생성의 차이

다음으로 푸리에 변환의 페이즈(phase)가 어떻게 수식으로 표현되는지 살펴보자. (1차원) 푸리에 변환의 계수 F(u)는 식 (12), (13) 및 오일러 공식에 의해 다음과 같이 극좌표(polar coordinate) 형태로 표현될 수 있다 (설명의 편의상 1차원의 경우를 예로 든다).

— (14)

☞ 실수축이 x축, 허수축이 y축인 복소평면에서 F(u)는 x축과 이루는 각이 Φ인 막대기의 끝점 (R, I)에 대응된다. 이 때, R = |F|cosΦ, I = |F|sinΦ이므로 F = |F|cosΦ + j|F|sinΦ = |F|ejΦ.

이제 식 (14)를 식 (1)에 대입하면,

. — (15)

와 같이 페이즈(phase) 텀이 주기함수 성분의 시점을 조절하는 텀이 된다.

즉, 푸리에 계수 F(u)에는 대응되는 주기함수 성분의 강도(amplitude)를 나타내는 스펙트럼 정보 |F(u)|와 시점을 조절하는 페이즈(phase) 정보 Φ(u)가 함께 포함되어 있음을 알 수 있다.

참고로, 푸리에 스펙트럼(spectrum)과 페이즈(phase)에 관한 재미있는 비교 결과를 하나 소개한다. 아래 그림 8에서 (a)는 원본 이미지, (b)는 푸리에 스펙트럼을 보존하고 페이즈(phase)를 랜덤(random)하게 했을 때의 역변환 결과, (c)는 페이즈(phase)를 보존하고 스펙트럼을 랜덤하게 했을 때의 역변환 결과이다. 결과를 보면 이미지의 푸리에 변환에서 스펙트럼(spectrum)보다 페이즈(phase)에 보다 더 중요한 정보가 포함되어 있음을 확인할 수 있다.

그림 8. 푸리에 스펙트럼과 페이즈의 중요도 비교

5. 푸리에 변환의 유용한 성질들

마지막으로 푸리에 변환(Fourier transform)에 대한 몇 가지 유용한 성질들을 정리하면 다음과 같다.

– 주파수 공간의 원점 F(0, 0)의 값은 이미지의 평균값과 일치

– Impulse 함수(Dirac delta 함수)에 대한 푸리에 변환/역변환은 유니폼(uniform) 함수 (아래 식에서 푸리에 변환/역변환 관계를 ⇔ 로 표기).

– 가우시언(Gaussian) 함수의 푸리에 변환/역변환은 가우시언 함수가 됨

6. 맺음말

이상으로 푸리에 변환(Fourier transform)에 대한 정리를 마칩니다. 원래는 이렇게까지 길게 쓸 생각은 아니없는데 쓰다 보니 글이 길어졌네요.. ^^

참고자료 및 유용한 관련 글 링크

푸리에 변환 by jipark

푸리에 급수의 시작 by 전파거북이

푸리에 변환 by 전파거북이

페이저(phasor) by AngeloYeo

허수의 존재 의미에 대하여 by AngeloYeo

Magnitude and Phase by Deepa Kundur (토론토 대학)

What information is contained in the phase spectrum of a signal?

by 다크 프로그래머

푸리에 트랜스폼 Fourier Transform 직관적 이해

뇌파, 또 영상처리에서 푸리에 트랜스폼을 쓰게 되서 공부한 것을 정리해 보았다. 몇 블로그 들을 참고하였고, 아래 reference로 적어놓았다.

1. 푸리에 급수

Fourier Series는 ‘적분변환’과 ‘함수의 Orthognonality를 이용한 주기 함수의 Decomposition’의 일종에 불과하다

모든 연속적인 주기함수는 사인과 코사인의 합으로 나타낼 수 있다.

따라서, 푸리에 급수는

Exponential로 표현한다면

2. Fourier transform

주기함수가 아닌 연속시간함수에 대해 사인, 코사인으로 나타낸 것 .

-> 푸리에 급수에서 주기 T를 로 보낸 것

푸리에 변환은 수식을 먼저보기 보다는 직관적인 이해를 먼저하는 것이 훨씬 쉽다. 푸리에 변환 개념이 어려운 것은 아닌데, 수식은 너무 복잡하기 때문…

– 푸리에 변환의 직관적 이해

내가 물리, 수학, 영어 세과목을 듣는데, 시간 domain에서는 그 세 과목이 다 합쳐저 있다.

시간 도메인에서는 날짜 (시간)순으로 배열한 것이다. 날짜를 기준으로 그날 무슨 수업이 있는지를 보는 것이다.

그런데 내가 듣는 과목이 몇일만의 빈도수로 다시 듣는지를 알기 위해서 푸리에 트랜스폼을 하고 주파수 domain에서 볼 수 있다.

여기서 이들의 주파수를 따지자면, 물리는 1, 수학은 1/2, 영어는 1/3 이라고 할 수 있다. 하루에 몇번 수업을 듣는지 그 빈도수를 나타낸 것.

이제, 신호로 다시 와서 직관적으로 이해해보자.

아래 그림을 보자.

왼쪽 맨 밑 같은 신호를 우리는 얻을 수 있다. 그 신호가 어떤 주파수 성분을 가지고 있는지 알고 싶다면 푸리에 변환을 하면 된다.

그림에서 설명하는 푸리에 변환은

입력주파수는 어려 주파수를 가진 sine과 cosine함수의 합으로 나타낼 수 있다.

이 파형들을 주파수 크기별로 줄세우기를 한다. 주파수가 가장 작은 (초록색) 함수가 맨 앞에 있을 테고 그 앞뒤의 위치를 주파수 (frequency)의 scale로 두는 것이다.

그다음에 오른쪽에서 본다면 그것이 푸리에 트랜스폼 한 결과가 된다.

2.1 fourier 상수항을 구하는 방법(식) 조사 (+ 유도)

동영상도 참고

2.2 왜 fourier 변환의 각 항(=함수)가 Orthogonal 한지

– 직교 집합 (orthogonal set)

벡터의 내적 대신에 함수에서는 적분에 해당함

구간 [a, b]에서 다음을 만족하나면 실수 함수 {}의 집합은 직교 집합(orthogonal set)이다.

구간 [a, b]에서 정의된 함수 y=f(x)는 같은 구간 [a,b]에서 정의된 Orthogonal set을 이용하면 상수 , n=0,1,2,…와 linearly decompose될 수 있다.

2.3 푸리에 변환의 용도

1) 신호의 주파수 성분을 알기 위해서

2) 시스템의 주파수 응답을 알기 위해서

어떤 주파수를 가진 정현파 신호가 시스템에 입력되어 다시 정현파 신호가 출력으로 나올 때에, 입력과 출력 신호의 ‘진폭의 비율'(이득)과 위상의 차이를 뜻한다. 따라서, 시스템의 주파수 응답 함수를 얻게 되면, 정현파를 시스템에 입력하였을 때에 그 출력이 입력의 몇 배가 되어 얼마만큼의 지연이 되서 나오는지를 모든 주파수에 대해 알 수 있다.

즉 전달함수를 구하는 것과 비슷

2.4 푸리에 변환 값의 의미

X(f) : 진폭을 주파수에 대해 미분한 것, 즉 진폭의 밀도함수 ,

진폭 자체를 알고 싶으면 적분해야 함.

Cf) 푸리에 급수의 계수 c(n)은 코사인 성분의 진폭의 크기를 의미

푸리에 변환 X(f)의 복소수 값의 크기는 주파수 성분의 진폭을 뜻하고 각도는 주파수 성분의 위상을 뜻한다.

– EX.

2.5 라플라스 변환과 비교

라플라스 – 미분 방정식 풀이, 전달함수 구할 때, 동적시스템 해석이나 제어에 쓰이는 ‘과도 상태 응답’(transient state response)을 알려 할 때

시간에 따라 입력이 변할 때의 응답

푸리에 – 주파수 응답과 같은 ‘정상 상태 응답’(steady state response)을 알려할 때

입력이 시간에 따라 변화하지 않을 때의 응답

뜨거운 금속을 차가운 물에 넣었을 때, 처음 몇 시간은 둘의 온도가 변한다 (동적상태 )

둘이 온도가 같아지면 상태가 변하지 않는다 (정상상태)

3. 주파수, 파장간의 관계를 알아보기 주파수(f) = 파동의 진행속도(v)/파장( ) 4. 공간상의 주파수의 의미 알아보기 (이미지의 푸리에 트랜스폼 할 때) 시간 축 하나였던 것이 공간평면 (x,y)로 확장된 것 f(t) -> f(x, y) 5. 다양한 푸리에 변환 5.1 DTFT: 시간의 연속성을 고려한 fourier 변환

5.2 FFT: Fast Fourier Transform

cos, sin 값을 매번 함수 호출을 통해 계산하면 느리다. 그래서 cos, sin값을 미리 계산해 두었다가 재활용할 수 있다. 1 Hz의 cos, sin 값만 미리 계산해서 가지고 있으면 정수배인 2Hz, 3Hz, ~ nHz의 값은 건너뛰기 방식으로 얻을 수 있다. 2Hz라면 cos, sin 데이터표에서 2칸을 건너뛰고, 3Hz라면 3칸을 건너뛴다.

5.3 푸리에 역변환

6. 매트랩 구현

Simulink 이용

단순하게, sine함수 5개를 만들어서 합치고나서 (내가 이미 주파수 성분을 아니까 결과값과 비교 가능)

FFT를 적용하여 주파수분석 결과가 내가 처음 넣은 인풋과 상등한지 확인하는 작업이다.

각각의 box들을 설명하자면,

– sine함수 선언에서 amplitude, frequency 등을 지정할 수 있다.

– zero-older hold: 아날로그 함수 (연속함수)를 디지털 함수로 바꾸어주는 과정이다. (AD converter)

* 여기서 sampling time을 설정할 때 sampling 주파수가 입력함수의 최대 주파수보다 최소 2배이상 커야 한다.

– buffer: 증폭기

– FFT: Fast Fourier Transform

– scope: 함수의 파형을 보는 것

sine parameters

sine 5개를 합치고 scope로 확인한 인풋 파형

시간 doamin 주파수 domain

이런 결과를 갖을 수 있다. 위쪽에서 sine parameter와 비교해 보면 된다.

5개의 주파수가 선명하게 나온 것을 알 수 있고, 그 크기(y축, amplitude)는 맨처음에 sine parameter로 지정한 값의 비율을 따르는 것으로 알 수 있다.

(값이 정확하게 일치하지 않는 이유는 buffer로 증폭시켰기 때문)

[ Signal ] 푸리에 변환 (Fourier Transform) – (1) 기본 유도과정

반응형

[ Signal ] 푸리에 변환 (Fourier Transform) – (1) 기본 유도과정

이전글 또한 오늘 다룰 내용과 연관되어 있다

목차

1. 푸리에 급수 (Fourier Series FS) (+ 푸리에 변환 유도과정)

2. 푸리에 변환 (Fourier Transform; FT) & 역 푸리에 변환 (Inverse Fourier Transform; IFT)

1. 푸리에 급수 (Fourier Series)

일반적으로 시간 주기(period; $\large \bf{T}$) 마다 반복하는 함수를 주기함수라고 한다. 우리는 푸리에 급수를 통해 코사인(cosine)과 사인(sine)함수로 이루어진 주기 함수를 표현할 수 있다.

하지만 세상에는 주기가 없는 또는 주기를 찾기 힘든 비주기 함수도 존재한다.

비주기 함수도 푸리에 급수를 이용하여 주파수 영역에서 분석할 수 있을까?

만약 주기함수의 시간 주기(T)가 무한히 크다면 ??

$T\rightarrow \infty$

아마 당신이 살아있는동안 그 주기함수의 반복되는 그래프는 볼 수 없을 것이다.

즉, 시간 주기(T)가 무한대로 크면 반복을 보기 어렵기 때문에 비주기함수랑 비슷하다고 여겨진다!

이 아이디어(매우 큰 T의 주기함수 $\rightarrow $ 비주기함수)를 반대로 생각해 보면” 비주기함수 = 시간주기 T가 무한히 큰 주기함수 ” 라고 가정해도 되지 않을까??!

그러면 우리는 푸리에 급수식을 비주기 함수에도 이용할 수 있게 된다. 이것이 푸리에 변환이 된다.

푸리에 변환(FT)은 푸리에 급수(FS)에서 부터 시작한다.

위에서 다룬 아이디어를 적용해보자!

$$\large f(t)\ =\ \sum\limits_{n=-\infty}^{\infty} C_{n}e^{j\frac{2\pi n}{T} t}\quad \ldots \quad (1)$$

$$C_{n}\ =\ \frac{1}{T}\int_{T/2}^{T/2}f(t)e^{-j\frac{2\pi n}{T} t}\ dt\quad for\ n\ =\ \ldots,-2,-1,0,1,2,\ldots$$

$$\large \lim\limits_{T\rightarrow \infty} f(t)\ =\ \lim\limits_{T\rightarrow \infty} \sum\limits_{n=-\infty}^{\infty} \frac{1}{T}\int_{T/2}^{T/2}f(t)e^{-j\frac{2\pi n}{T} t}dt\ e^{j\frac{2\pi n}{T} t}\quad \ldots \quad (2)$$

수식 (1) : 기본적인 푸리에 급수(Fourier Series)이다. 주기함수($f(t)$)를 대상으로 한다.

수식 (2) : 수식 (1)에 $C_n$을 대입하고 양변에 $\lim\limits_{T\rightarrow \infty}$ 극한을 취해준다. 이것이 아이디어 부분이다. T를 무한대로 보내버리자! 푸리에 급수식에서 T 가 들어간 부분을 무한대로 보내면 다음과 같이 변화한다.

$$ \lim\limits_{T\rightarrow \infty} T/2=\infty, \lim\limits_{T\rightarrow \infty} -T/2 =-\infty\ \lim\limits_{T\rightarrow \infty}\frac{1}{T}= du $$

$ \frac{1}{T} = u(frequency) $ 이기 때문에 매우 작은 값이라는 의미로 $du$라고 표기하자!

T 무한대를 생각해서 식을 정리하면 수식 (3)과 같다.

적분과정에서 무한대로 T가 확장하기 때문에 $\frac{n}{T}=u(freqeuncy)$ 로 치환해도 된다.

$$\large \lim\limits_{T\rightarrow \infty} f(t)\ =\ \int_{-\infty}^{\infty}

ormalsize \underline{\int_{-\infty}^{\infty}f(t)e^{-j2\pi ut}dt}\ \large e^{j2\pi ut}du\quad \ldots \quad (3)$$

$$\large f(t)\ =\ \int_{-\infty}^{\infty}

ormalsize \underline{\int_{-\infty}^{\infty}f(t)e^{-j2\pi ut}dt}\ \large e^{j2\pi ut}du\quad \ldots \quad (4) $$

수식 (4) : 아이디어를 통해 비주기 함수에 푸리에 급수를 적용할 수 있다. 수식 (3)의 좌변과 수식 (4)의 좌변은 결국 같은 함수를 말한다. 밑줄친 부분은 푸리에 급수에서 보았던것 처럼 계수(coefficient)의 역할을 한다. 결국 푸리에 급수의 형태와 거의 유사하다. 푸리에 급수를 잘 이해했다면 쉽게 받아들여 질 것이다.

2. 푸리에 변환 (Fourier Transform) & 역 푸리에 변환 (Inverse Fourier Transform; IFT)

fig 1. 출처 위키피디아

푸리에 변환(Fourier Transform; FT)은 임의의 입력 함수(주기, 비주기 상관없음)를 받아서 다양한 주파수를 갖는 주기함수(sin, cos)들의 합으로 분해하여 표현하는 것을 말한다. 어떠한 입력이든 주기함수들의 합으로 항상 분해할 수 있다는 것이 장점이다.

위에서 대부분 time domain t 에서 frequency domain으로의 변화라고 설명했었는데, 컴퓨터 비전(computer vision)쪽에서는 spatial domain에서 frequency domain으로의 변환이라고도 한다.

푸리에 변환은 수식 (4)의 밑줄 친 부분을 말한다. 그대로 가져와 수식 (6)로 정리해 두었다.

$$\large f(t)\ =\ \int_{-\infty}^{\infty} \mathcal{F} (u) e^{j2\pi ut}du\quad \ldots \quad (5) $$

$$\large \mathcal{F} \{f(t)\} = \int_\infty^\infty f(t)e^{-j2\pi u t}dt \quad \ldots \quad (6)$$

$$ \mathcal{F} \{f(t)\}=F(u)\ :\ 푸리에\ 변환\ 표기법$$

$$ f(t)\ :\ 변환\ 하고자하는\ 연속\ 함수$$

$$ u\ :\ 주파수(frequency)= \frac{1}{시간주기(T)} $$

수식 (5) : 역 푸리에 변환(Inverse Fourier Transform)

입력함수 $\large f(t)$가 $e^{j2\pi ut}$ 들의 합으로 표현된다는 의미이다.

수식 (6) : 푸리에 변환(Fourier Transform)

입력함수 $\large f(t)$를 주기함수 성분으로 분해했을 때의 계수(coefficient)를 의미한다. 이는 각 주기 함수의 강도(amplitude)를 나타낸다.

fig 1. 출처 위키피디아

fig 1. 에서 붉은색 선이 입력 함수이다. 그리고 뒤쪽으로 푸른색 선들이 주파수가 $ u $인 주기함수 $e^{j2\pi ut}$ 이다. 이는 오일러 공식으로 쉽게 이해된다. 오른쪽에 푸른색 막대기가 각 주기 함수의 강도(amplitude)를 나타낸다.

정리

앞의 글에서 다룬 푸리에 급수는 주기가 있는 함수에서만 적용이 가능했지만, 이를 확장하여 푸리에 변환을 만들어 냈다. 푸리에 변환은 모든 함수 또는 신호들을 입력으로 받아와 frequency domain에서 cos과 sin의 합으로 이루어진 정현파로 분해(표현)할 수 있다는 장점이 있다.

다음글

2021.07.23 – [AI/Math] – 푸리에 변환 (Fourier Transform) – (2) 다양한 함수의 푸리에 변환

참고자료

반응형

푸리에 변환 Fourier transform

푸리에 변환

정의

‘푸리에 변환'(Fourier transform)이란 ‘시간 영역'(time domain)의 함수를 ‘주파수 영역'(frequency domain)의 함수로 변환하는 것 또는 그 변환된 것을 뜻한다.

시간 t의 어떤 함수 x(t)가 있을 때 이를 주파수 영역으로 푸리에 변환한 함수 X(f)는 다음과 같다.

여기서, f는 주파수이고 j = √-1이며, x(t)의 값은 실수인데 반해 X(f)의 값은 실수와 허수를 갖는 복소수(complex number)가 된다.

이제는 반대로, 주파수 영역의 함수 X(f)를 시간 영역으로 변환하는 ‘푸리에 역 변환'(inverse Fourier transform)의 공식은 다음과 같다.

두 공식은 서로 비슷하며 지수 함수의 지수의 부호가 다른 특징을 갖는다.

용도

첫째 용도는, 신호의 주파수 성분을 알기 위해서이다.

즉, 시간에 따라 변하는 신호의 크기를 뜻하는 함수 x(t)가 있을 때, 이 신호가 수없이 많은 정현파(코사인과 사인) 성분들이 합쳐진 것이라 생각한다면, 주파수가 f인 정현파(sinusoidal) 성분의 진폭과 위상을 X(f)가 알려 준다.

둘째 용도는, 시스템의 주파수 응답을 알기 위해서다.

즉, 어떤 시스템이 있을 때에 x(t)가 시스템의 ‘임펄스 응답'(impulse response)이라면 이것의 푸리에 변환인 X(f)는 시스템의 ‘주파수 응답'(frequency response)이 된다.

여기서, 주파수 응답이란, 어떤 주파수를 가진 정현파 신호가 시스템에 입력되어 다시 정현파 신호가 출력으로 나올 때에, 입력과 출력 신호의 ‘진폭의 비율'(이득)과 위상의 차이를 뜻한다. 따라서, 시스템의 주파수 응답 X(f) 함수를 얻게 되면, 정현파를 시스템에 입력하였을 때에 그 출력이 입력의 몇 배가 되어 얼마만큼의 지연이 되서 나오는지를 모든 주파수에 대해 알 수 있다.

푸리에 변환 값의 의미

푸리에 변환된 복소수 값이 무엇을 뜻하는가?

푸리에 변환 X(f)의 복소수 값의 크기는 주파수 성분의 진폭을 뜻하고 각도는 주파수 성분의 위상을 뜻한다.

아래 식을 보면, 주파수가 f0인 성분의 푸리에 변환 값 X(f0)는 첫 줄처럼 실수부 a와 허수부 b로 이루어진 복소수인데, ‘오일러의 법칙'(Euler’s law)에 의해 둘째 줄처럼 변환되므로, 셋째 줄처럼 복소수의 크기 |X(f0)|와 각도 ∠X(f0)를 구할 수 있게 된다. 즉, 복소수의 크기 |X(f0)|는 주파수 성분의 진폭을 뜻하고, 각도 ∠X(f0)는 주파수 성분의 위상(지연)이 된다.

예를 들어, 푸리에 변환 X(f)의 f=f0를 대입하여 얻은 X(f0)가 1 – j 이었다면 다음 식의 결과처럼 이 성분은 주파수에 대한 밀도가 √2의 2배이고 위상이 -π/4인 코사인 함수가 된다.

즉, 주파수 f0를 갖는 주파수 성분은 다음과 같다. 여기서, 좌변의 미분 형태가 사용된 이유는 아래의 ‘푸리에 변환 값의 상세한 의미’를 참조.

푸리에 변환과 푸리에 급수의 형태적 비교

푸리에 변환을 ‘푸리에 급수'(Fourier series)와 비교하는 이유는, 두 방식이 서로 닮아 있기도 하지만 푸리에 변환의 물리적 의미를 이해하기 위해서이다. 푸리에 변환과 유사한 푸리에 급수는 물리적 의미가 명확하기 때문에 이로부터 푸리에 변환의 의미를 찾을 수 있다.

‘푸리에 급수’가 시간에 따라 반복되는 주기 함수를 변환하는데 비해, 푸리에 변환은 주기성이 없는 비주기 함수를 변환하는 것이 다른 점이다.

푸리에 급수의 공식은 다음의 두 공식과 같다. 푸리에 급수의 자세한 내용은 별도의 게시글을 참조.

위의 (3) 식은, 푸리에 변환식인 (1)에 해당하고, 위의 (4) 식은 푸리에 역변환식인 (2)에 해당하며 서로 형태가 비슷함을 알 수 있다. 여기서, c(n)은 X(f)에 대응한다.

X(f)식과 c(n) 식의 다른 점은, c(n) 식의 적분 기호 앞에는, X(f) 식에는 없는, 1/T이 붙었고 또, 적분 구간이 달라졌다. 그 이유는, 푸리에 급수에서는 주기 함수를 다루기 때문에 한 주기 T만 적분해도 되지만, 푸리에 변환에서는 주기가 없으므로 모든 시간에 대해 적분해야 되기 때문이다.

x(t)를 구하는 식 (2)와 식 (4)가 다른 점은, (2) 식은 적분 기호를 사용하지만 (4) 식은 합산 기호를 쓰는 점이 다르다. 그 이유는 푸리에 급수가 다루는 함수 x(t)가 주기 함수이기 때문에, 그 주파수 성분으로서, x(t)의 주파수(주기의 역수)의 정수배인 주파수를 갖는 성분들, 즉, 고조파(harmonics)들만의 합으로 이루어지기 때문에 적분이 필요하지 않기 때문이다.

정리하면, 푸리에 변환과 푸리에 급수의 차이점으로서, 푸리에 계수 c(n)의 값은, x(t) 함수의 주기성으로 인해 다른 주파수 성분은 0이기 때문에, 주파수가 f = 2πn/T인 고조파 성분만을 계산한 것인데 비해, 푸리에 변환 X(f)는, x(t) 함수가 비주기적이기 때문에 모든 주파수의 성분들을 가지므로, 모든 가능한 주파수에 대해 계산한다는 점이다.

푸리에 변환 값의 상세한 의미

푸리에 역변환식 (2)의 적분에는, 푸리에 급수 역변환식 (4)에는 없는, df(주파수의 미분)를 X(f)에 곱하기 때문에 X(f)의 값은 푸리에 계수 c(n)에 대응되는 것이 아니라 X(f)의 값은 미분함수 dc/df와 대응된다.

즉, 푸리에 급수의 계수 c(n)의 물리적 의미는, 명확히, 코사인 성분의 진폭의 크기를 뜻하는데 비해, 푸리에 변환 X(f)의 크기 값은 이 진폭을 주파수 f로 미분한 값이다. 따라서, X(f)의 정확한 물리적 의미는, 진폭의 크기가 아니라, 진폭의 주파수 미분 값이다. 즉, X(f)는 진폭의 ‘밀도 함수'(density function)이다.

다시 말해서, 특정 f에서의 X(f) 값은 그 크기의 코사인 성분의 진폭 자체를 뜻하는 것이 아니라 진폭의 밀도이다. 그러므로, 한 주파수 성분의, 진폭 밀도가 아닌, 진폭 자체를 알고 싶다면 적분을 해야 한다. 한 주파수 순간에만 적분하면 그 결과는 0이 되기 때문에, 의미 있는 값을 알고 싶다면 원하는 주파수 주위의 구간 동안 적분을 해야 진폭을 구할 수 있다. 이는 X(f)의 그래프에서 특정 주파수 구간의 면적이 그 구간의 주파수 성분의 진폭(정확히는 진폭의 절반)에 해당한다. 이렇게 구한 진폭은 한 주파수만의 값이 아니라 적분된 주파수 구간의 진폭이다. 이것은 통계에서 확률 밀도 함수를 통해 기대값을 구하는 것과 비슷하며, 양자 역학의 파동 함수와도 유사한데 실제로 관계가 있는 것으로 알려져 있다.

정리하면, 시간 영역의 함수는 푸리에 변환을 통해 코사인 밀도 함수들의 적분으로 나타낼 수 있으며, 그 성분들의 크기와 위상의 정보가 X(f)라는 사실을 알 수 있다. 이때, 복소수 X(f) 값의 크기는 코사인 성분의 크기를 주파수 f로 미분한 것(f에 대한 밀도)에 해당하고, 복소수 값의 각도는 코사인 성분의 위상과 같다.

결과적으로, 푸리에 변환을 통해 시간 영역의 한 신호 함수의 주파수 성분들의 크기 밀도와 위상을 알 수 있다.

푸리에 변환과 라플라스 변환의 관계

푸리에 변환은 ‘라플라스 변환'(Laplace transform)과도 비슷하며 라플라스 변환을 푸리에 변환으로 바꿀 수 있다.

시스템의 주파수 응답을 구할 때에는, 시스템의 미적분 방정식을 먼저 세우고 이를 라플라스 변환한 뒤에 다음의 방식으로 다시 푸리에 변환으로 바꾸어 얻는다.

라플라스 변환의 복소(complex) 주파수 s가 s = σ + jω 이고 ω = 2πf 이므로 감쇄 지수 σ가 0이라면 s = j2πf 가 되어 다음 식처럼 라플라스 변환은 푸리에 변환과 같아진다.

라플라스 변환은 미분 방정식을 풀이할 때와 ‘전달 함수'(transfer function)을 구할 때에 사용되거나 동적 시스템의 해석이나 제어에 쓰이는 등 ‘과도 상태 응답'(transient state response)을 알려 할 때에 주로 사용되는 반면에, 푸리에 변환은 ‘주파수 응답'(frequency response)처럼 ‘정상 상태 응답'(steady state response)을 알려 할 때에 주로 쓰인다.

푸리에 급수와 푸리에 변환(Fourier Transform)에 대해

안녕하세요 레몬입니다.

맨 처음으로 통신이론 과목소개 글을 작성하려 했는데, 통신이론이나 신호 및 시스템 과목을 소개하려니 푸리에 변환에 대한 언급이 없을 수가 없어서 차라리 가장 먼저 이 글을 작성하고 시작하려 한다.

맨 처음 접하고 굉장히 난처했던 개념인데, 공부를 하며 깨닫게 된 나름의 이해를 약간이나마 공유해보도록 하겠다.

푸리에 변환은 왜 필요하고 어디에 쓰일까

푸리에 변환의 가장 큰 목적은, 시간 t 축에서 존재하는 신호, 정보를 주파수 f(혹은 w) 축으로 옮겨오겠다는 것이다.

t에 대한 함수를 푸리에 변환하면 f에 대한 함수가 되고, f에 대한 함수를 푸리에 역변환하면 t에 대한 함수가 된다.

위 식이 수업중에 배웠던 푸리에 변환 식일 것이다. 좌측이 푸리에 역변환, 우측이 푸리에 변환 식이다.

간단히 살펴보면 좌측은 w에 대한 적분이니 결과가 t에대한 함수이고, 우측은 그 반대임을 알 수 있다.

배우는 입장에서 수학적으로만 따져보면 멀쩡한 함수에 왜 이런 짓을 하는지 이해가 되질 않는다. 왜 시간 함수를 주파수에 대한 함수로 변환해야 하는 것일까?

데이터의 압축

먼저, 시간축에 존재하던 신호를 주파수로 옮겨오면 전송해야할 데이터의 양이 줄어든다.

푸리에 변환에 대해 찾아보다 정말 한번에 이해가 되는 예시가 있어 나도 그렇게 설명해보려 한다.

7일간의 공부 계획을 세운 데이터가 있다고 생각해보자.

국어, 수학, 영어, 과학 네 과목을 공부해야 하고, 위와 같은 계획을 세워두었다.

1일부터 7일까지 날짜에 맞춰 해당 일차에 어떤 과목들을 공부할 지 작성해둔 일반적인 모양이다. 잘 보면 여기에 일정한 규칙이 있는데, 그에 맞게 새로운 데이터를 작성해보도록 하겠다.

모든 과목을 1~4일마다 한번씩 공부하기 때문에, 해당 규칙만 가지고 표현한 데이터이다. 딱 봐도 정보량이 줄어든 것이 보인다.

만약 계획을 세우는 날짜가 7일을 넘어 100일, 1년, 10년으로 늘어난다면? 매일매일 어떤 과목을 공부할지 적어둔 데이터는 끝도없이 늘어나지만, 지금 작성한 공부 주기에 대한 데이터는 늘어날 필요가 없다.

주기는 주파수의 역수이므로, 결국 데이터를 주파수에 대해 작성함으로써 상당한 양의 정보를 압축하여 표시할 수 있게 된 것이다.

이제 좀더 수학적으로, 주기함수의 대표격인 삼각함수에 대해 살펴보자

익숙한 cos(t) 함수이다. 현재 -20~20의 시간 t 축에 존재하는데, 이러한 신호를 t에 대해 저장하려면 시간의 구간을 촘촘하게 나누어 각 순간마다 어떤 값을 갖는지를 일일이 저장해줘야 할 것이다.

그런데 우리가 알고있듯, cos(t) 는 2π의 주기, 즉 1/2π의 주파수를 가진다.

그렇다면 위 함수는 1/2π 주파수를 가지고 크기가 1인 신호로 간단히 표현될 수 있는 것이다.

대략 이정도가 신호를 시간 축에서 주파수 축으로 옮겨가는 이유라고 할 수 있겠다.

대충 주기함수를 생성해 보았다. 파형을 살펴보면 분명 주기함수는 주기함수인데.. 대체 이걸 어떻게 식으로 표현해야할지 감도 안잡힌다.

이는 내가 간단하게 만든 신호라 눈에 보이는 주기성이라도 있는 것이지, 실제 음성 신호는 훨씬 상황이 좋지 않다.

영상 편집 프로그램에서 찾아볼 수 있는 음성 신호의 파형이다. 이걸 분석해서 주파수에 대해 나타내라니 딱봐도 무리일 수 밖에 없다.

여기서 푸리에 급수가 중요한 역할을 하게 된다.

푸리에 급수

푸리에 급수는, 존재하는 모든 주기신호를 무한개의 간단한 삼각함수의 선형결합으로 표현할 수 있도록 해주는 도구이다.

실제로 내가 위에서 만든 복잡한 주기신호는

위 세 개의 신호의 합이다.

m(t) = cos(t) + sin(3t) + cos(2t) 꼴이다.

검정색 세 신호가 합쳐져 보라색 신호 하나를 만들게 되는 것이다.

완성된 신호는 굉장히 복잡하지만, 이를 단순한 삼각함수들의 합으로 표현하면 그들을 각각 주파수에 대한 정보로 저장하는 것은 간단하다.

m(t) = cos(t) + sin(3t) + cos(2t)에서 m(t)는 주파수가 각각 1/2π, 2/2π이고 크기가 1인 cos 함수와 주파수가 3/2π 이고 크기가 1인 sin 함수의 합임을 표시해주기만 하면 된다.

이렇게 모든 주기함수를 삼각함수들의 합으로 나타낼 수 있다. (Trigonometric Form)

sin 함수는 간단히 cos 함수로 변환할 수 있으니 cos 함수만의 합으로 나타낼 수도 있다. (Compact Form)

삼각함수는 즉 지수함수이니, 지수함수들의 합으로 나타낼 수도 있다. (Exponential Form)

푸리에 변환

여기까지 시간에 대한 함수를 주파수에 대한 함수로 변환하는 이유와, 푸리에 급수를 활용한 그 과정을 정말 간단하게 설명해 보았다.

푸리에 급수는 복잡한 신호를 단순하게 분해하는 강력한 무기이지만, 주기 신호에만 사용할 수 있다는 치명적인 약점이 있다.

이를 극복하기 위해 나온 개념이 푸리에 변환이다.

주기가 없는 비주기 함수를, 그냥 주기가 무한대인 주기함수로 보고 푸리에 급수를 활용해보겠다는 아이디어라고 생각하면 된다.

거기서 나온 식이 맨 처음 글을 시작할 때 나온 아래 식이다.

푸리에 급수에서 푸리에 변환이 유도되는 과정까지 설명하진 않겠다. 우리는 공학도니까 수학적인 원리, 증명보단 이렇게 주어진 식을 어떻게 활용하느냐가 훨씬 중요하다. (변명임)

어쨌건 Time domain과 Frequency domain을 자유롭게 넘나들 수 있도록 해준 푸리에 급수와 푸리에 변환에 대해 설명해 보았다.

전자공학과 3학년의 얕은 지식으로 이해한 바를 나와 같은 이들에게 어느정도 눈높이에 맞게 설명해봤는데, 이를 읽는 사람들한테 얼마나 도움이 될런지는 잘 모르겠다..

마지막으로 조금 와닿는 설명을 위해 오케스트라 음악을 디지털 파일로 만들어 전송하는 상황을 예로 들어보자.

연주 현장에서 녹음하는 오케스트라 음악에는 엄청나게 많은 소리 신호들이 합성된 형태이다.

바이올린, 비올라, 첼로, 피아노, 플룻, 클라리넷… 다 쓰기도 힘든 각종 악기들의 소리가 한데 모여 하나의 음악을 이룬다.

그런데 오케스트라가 연주하는 악기들이 생성하는 음파 중 상당수는 인간의 귀로는 들을 수 없는 영역의 주파수를 갖는다.

이런 상황에서 연주 현장을 그대로 녹음한다면 듣지도 못하는 쓸데없는 신호들이 모두 저장되어 용량이 큰 파일을 얻게 된다. 여기서 푸리에 변환/급수를 이용해 해당 신호를 주파수에 대해 분해하고, 불필요한 주파수 대의 신호를 모두 제거한 뒤 다시 합쳐주기만 하면 간단히 데이터가 압축되는 것이다.

쓰다보니 굉장히 장황해지고 빼먹은 부분도 많은 것 같은데.. 글에서 드러나는 짧은 지식에 대한 지적은 댓글로 감사히 받고 수정하도록 하겠다.

그래도 이러한 사전 정보가 전혀 없던 과거의 나와 같은 사람이 이 글을 읽으며 조금이라도 이해에 도움이 되었으면 좋겠다는 마음으로 계속 관련 글을 작성해보도록 하겠다.

05. 푸리에 변환, 푸리에 역변환 (Fourier Transform, Inverse Fourier Transform)

반응형

이번 장에서 드디어 앞 장에서 설명했던 푸리에 급수를 이용해서 푸리에 변환식을 유도해 낼 것이다.

앞 장에서 푸리에 급수에 대해 알아봤다. 푸리에 급수의 복소지수 표현은 아래와 같았다.

$$y(t) = \sum _{n=-\infty}^{\infty}{C_n e^{in\omega _0 t}} \quad \quad (식\; 1)$$

$$C_n = \frac {1}{T} \int _{0}^{T}{y(t)e^{-in\omega _0 t} dt} \quad \quad (식\; 1-1)$$

앞 장에서는 기본 각속도를 그냥 $\omega$로 표현했으나, 이제부터는 명확하게 하기 위해서 $\omega_0$로 표기한다. 이는 이제 설명하는 비 주기 신호에 대한 $\omega$와 구분하기 위함이다.

비 주기 신호는 기본 각속도 및 기본 주파수 개념이 없기 때문이다.

기본 각속도 $\omega_0$는, 주기를 가지는 신호의 ‘가장 큰 주기’에 해당하는 각속도이다. 예를 들어, 그 가장 큰 주기가 $T_0$이면, 기본 주파수 $f_0=\frac{1}{T_0}$인 것이고, 기본 각속도 $\omega_0=2\pi f_0$이다.

위 식은 각속도 $\omega$를 이용해서 표현한 것인데, 이를 주파수로 표현하면 다음과 같다. (위에서 기본 각속도 $\omega_0$를 가지고 표기했듯이, 여기서도 기본 주파수 $f_0$를 이용해서 표현한다. 기본 주파수의 2배인 주파수는 $f_2$, 3배인 주파수는 $f_3$,…. 따라서 n배인 주파수는 $f_n$이다.)

또한 $C_n$을 계산할 때 적분의 범위를 (0~T)까지 표시했는데, 이는 편의상 가장 대표적인 하나의 주기를 나타냈을 뿐, (T~2T) 까지 등 어떤 한 주기 값에 대해서도 적분값이 동일하기에, 하나의 주기 동안 적분한다는 표시로 $$와 같이 표현하겠다.

$$y(t) = \sum _{n=-\infty}^{\infty}{C_n e^{i2\pi f_n t}} \quad \quad (식\;2) $$

$$C_n = \frac {1}{T_0} \int _{}{y(t)e^{-i2\pi f_n t} dt} \quad (식\;2-1)$$

각속도로 표현하건 주파수로 표현하건 푸리에 급수 식은 똑같다.

(여기서 주파수로 표현한 것은, 푸리에 급수를 주기성이 없는 신호에 대해서도 적용할 수 있도록 하기 위해서는, 주파수를 이용해서 표현하는 것이 이해하기 쉽기 때문이다. 주기성이 없다는 것은 주기가 무한대라는 것이고, 주파수는 $\frac{1}{주기}$이기에, 이를 이용해서 식을 유도해 나갈 것이다.)

푸리에 급수는 신호가 일정한 주기 $T_0$를 가지고 있다는 것을 전제로 한다. (기본 각속도 $\omega_0$를, 기본 주파수 $f_0$를 가지고 있다는 말과 똑같음)

그런데, 주기가 없는 경우는 어떻게 할 것인가?

주기가 없다는 것은 주기가 무한대라는 것과 동일하다. 주기가 무한대라것은 기본 주파수가 0으로 접근한다는 것이다.

아래 그림을 보고 이 의미를 생각해보자.

[그림 1]

위 그림을 보면, 제일 위 쪽에 주기 $T_0$를 가지는 신호의 주파수 스펙트럼을 보면, 각 주파수별로 어떤 값을 가지고 있고, 이는 해당 주파수에서 위 쪽으로의 ‘선’으로 나타내어진다. 이때, 각 선의 간격은 기본 주파수 $f_0$이다.

이제 한 주기의 신호는 동일하게 유지시키면서(한 주기 이후에 나타나는 파형을 동일하게 한다는 의미), 주기 $T_0$의 크기 만을 증가시키면, 주파수 프펙트럼에서의 선 간격은 점점 좁아지게 될 것이다.

이렇게 주기 $T_0$의 크기를 점점 크게해서 무한대로 접근하면, 주파수의 선 스펙트럼 간격은 $0$으로 접근하여 결국 연속 스펙트럼 형태가 된다.

이와 같은 개념에 따라, (식 2)와 (식 2-1)의 푸리에 급수식에서 주기를 무한대로 접근하도록 하면, 다음과 같이 비주기 신호에 대한 식이 나온다.

$$ y(t)=\int _{-\infty} ^{\infty} {Y(f)e^{i2\pi ft}df} \quad (식\;3)$$

$$ Y(f) = \int _{-\infty} ^{\infty} {y(t)e^{-i2\pi ft}dt} \quad (식\;3-1)$$

위 두 식이 바로 ‘푸리에 변환’ 식이다. !!!!!

(식 3-1)을 연속 시간 푸리에 변환(Continuous-Time Fourier Transform, CTFT)라 하고, (식 3)을 연속 시간 푸리에 역변환(Inverse Continuous-Time Fourier Transform, ICTFT)라고 한다.

푸리에 급수에서 푸리에 변환으로의 수학적 유도

위 쪽에 적은 푸리에 급수식인 (식 2)와 (식 2-1)을 다시 적어 보겠다.

$$y(t) = \sum _{n=-\infty}^{\infty}{C_n e^{i2\pi f_n t}} \quad \quad (식\;2) $$

$$C_n = \frac {1}{T_0} \int _{}{y(t)e^{-i2\pi f_n t} dt} \quad (식\;2-1)$$

이 푸리에 급수 식에서 주기 $T_0$를 무한대로 보내서, 주파수 스펙트럼이 연속이 되도록 한(=모든 주파수로 표현할 수 있게 한) 것이 푸리에 변환이다.

위 식에서 $T_0$가 들어 있는 (식 2-1)에서, 이 $T_0$를 무한대로 보내보자.

$$ \lim _{T_0\rightarrow \infty} {C_n} = \lim _{T_0\rightarrow \infty}{\frac{1}{T_0}\int _{-\infty}^{\infty}{y(t)e^{-i2\pi ft}}dt} \quad \quad (식\;4)$$

(식 4)에서 유의할 부분은,

적분의 범위가 $-\infty$에서 $\infty$로 변경되었다. 이는 원래 (식 2-1)에서 한 주기 동안의 적분이었는데, 주기가 무한대로 늘어남에 따라 변경된 것이다.

지수승에 있는 $f_n$이 $f$로 바뀌었다. 이는 주기가 무한대로 되면서, 이산적으로 띄엄띄엄 있었던 주파수가 연속 주파수로 바뀌었기에, 모든 주파수를 나타내는 $f$로 바뀐 것이다. 위 (그림 1)에서 주파수가 연속 주파수가 바뀌는 그림을 연상하면 이해가 될 것이다.

이제 이 (식 4)를 (식 2)에 넣어 보자. (식 2)의 $C_n$의 자리에 (식 4)를 넣는 것이다.

$$ y(t) = \sum _{n=-\infty}^{\infty}{\left \{ \lim _{T_0\rightarrow \infty}{\frac{1}{T_0}\int _{-\infty}^{\infty}{y(t)e^{-i2\pi ft}}dt} \right \} e^{i2\pi nf t}} \quad \quad (식\; 5)$$

위 식에서 $t$에 대한 적분 부분을 $Y(f)$로 놓겠다. 그러면 식이 좀 간단해지겠다. $f$에 대한 식으로 놓은 것은, 이 식이 주파수 $f$가 변수이 식이기 때문이고, 이 $f$는 모든 주파수를 의미한다. (위에서 주기를 무한대로 뒀고, 이에 따라 $f$의 간극이 좁아지면서 모든 주파수를 의미하게 되었다. 위 쪽 [그림 1]에서 이에 대해 얘기한 바 있다.)

$$ Y(f)=\int _{-\infty} ^{\infty} {y(t)e^{-i2 \pi ft} dt} \quad \quad (식\; 6)$$

이제 (식 5)에 (식 6)을 넣어서 정리해보자.

$$ y(t) = \sum _{n=-\infty}^{\infty}{\left \{ \lim _{T_0\rightarrow \infty}{\frac{1}{T_0} Y(f)} \right \} e^{i2\pi f t}} =\sum _{n=-\infty}^{\infty} \lim _{T_0\rightarrow \infty} {\left \{ {\frac{1}{T_0} Y(f)} e^{i2\pi f t} \right \}} = \lim _{T_0\rightarrow \infty} \sum _{n=-\infty} ^{\infty} \left \{ {\frac{1}{T_0} Y(f)} e^{i2\pi f t} \right \} \quad (식\;7)$$

(식 7)을 보면,

첫 번째 변환은 $\lim _{T_0 \rightarrow \infty}$안으로 지수식을 넣은 것이데, 지수식인 $e^{i2\pi f t}$에는 이미 $T_0 \rightarrow \infty$가 반영되어 있기에($f_n$이 $f$로 바뀌어 있다.) $\lim _{T_0 \rightarrow \infty}$ 안에 집어넣은 것이다.

두 번째 변환은 시그마와 리미트 식의 순서를 바꾼 것인데, 적분을 하고 나서 더하는 거나, 더한 후 적분을 한 것이나 똑같기에, 순서를 바꿔도 무방하겠다.

(식 7)에서 $T_0 \rightarrow \infty$일 때 $\frac{1}{T_0}=\Delta f$라고 할 수 있다. 그리고 $T_0 \rightarrow \infty = \Delta f \rightarrow 0$이 된다.

여기서 $\Delta f$는 주파수와 주파수 사이 간격이라고 할 수 있고 그 간격이 $0$으로 수렴하는 값이다. (여기서 $0$으로 수렴하는 $f$의 값을 굳이 $\Delta f$로 표현한 것은, 정적분에서 아주 작은 간격으로 이루어지는 사각형의 가로축 값으로 이 $\Delta f$를 사용하기 위함이다. 그렇게 하고 나면, 적분으로의 유도식이 자연스럽게 된다.)

$$ y(t)=\lim _{\Delta f \rightarrow 0} \sum _{n=-\infty} ^{\infty} \left \{ { \Delta f Y(f)} e^{i2\pi f t} \right \} \quad \quad (식\; 8)$$

(식 8)의 우측 항의 식에서 $Y(f)e^{i2\pi f t} = X(f)$로 보면, 아래식과 같은 형태이고, 이는 정적분의 형태이다.

($Y(f)$도 $f$의 함수이고, $e^{i2\pi f t}$도 $f$의 함수이기에 이 두 식을 합쳐서 어떤 함수 $X(f)$로 놓을 수 있는 것이다.)

$$\lim _{\Delta f \rightarrow 0} \sum _{n=-\infty} ^{\infty} { \Delta f \cdot X(f)} = \int _{-\infty} ^{\infty} X(f) df \quad \quad (식\; 8-1)$$

위 그림에서, 사각형의 가로는 $\Delta f$이고, 세로 값은 $X(f)$이고, 이 두 값의 곱이 한 사각형의 면적이 되고, $\Delta f \rightarrow 0$로 수렴시키면서 모든 면적을 더하는 것이 정적분이다.

이제 (식 8-1)의 정적분으로의 변형되는 원리를 이용해서 (식 8)의 $\lim _{\Delta f \rightarrow 0} \sum _{n=-\infty} ^{\infty} $를 $\int _{-\infty} ^{\infty}$로 바꿔서 표현해본다.

$$y(t)=\lim _{\Delta f \rightarrow \infty} \sum _{n=-\infty} ^{\infty} { \Delta f \cdot Y(f)} e^{i2\pi f t} = \int _{-\infty} ^{\infty} {Y(f)e^{i2\pi ft} df} \quad \quad (식\;9)$$

여기서 $Y(f)$는 위의 (식 6)에서 아래와 같이 놓은 바 있다.

$$ Y(f)=\int _{-\infty} ^{\infty} {y(t)e^{-i2 \pi ft} dt} \quad \quad (식\; 6)$$

이제 다 되었다. 푸리에 급수로부터 푸리에 변환식이 유도되었다.

위에서 (식 6)을 푸리에 변환이라 하고, (식 9)를 푸리에 역변환이라고 한다.

푸리에 변환식과 역변환식을 다시 적어보자.

$$ Y(f)=\int _{-\infty} ^{\infty} {y(t)e^{-i2 \pi ft} dt} \quad \quad (식\; 10)$$

$$y(t)=\int _{-\infty} ^{\infty} {Y(f)e^{i2\pi ft} df} \quad \quad (식\;11)$$

(식 10)이 푸리에 변환이다. 원래의 신호 $y(t)$로부터 주파수 함수 $Y(f)$로 ‘변환’했기 때문이다.

(식 11)은 푸리에 역변환이다. 주파수 함수 Y(f)로부터 원래의 시간영역으로의 함수 $y(t)$로 변환되기에 ‘역변환’이라고 부르는 것이다.

유도 과정이 끝났다. 좀, 정리해 보자.

우리의 시작은 푸리에 급수였다.

$$y(t) = \sum _{n=-\infty}^{\infty}{C_n e^{i2\pi f_n t}} \quad \quad (식\;2) $$

$$C_n = \frac {1}{T_0} \int _{}{y(t)e^{-i2\pi f_n t} dt} \quad (식\;2-1)$$

여기서 주기 $T_0$를 무한대로 보냈고, 이것은 주파수가 $0$에 수렴하는 것과 같고, 이를 위 식에 반영하면, 아래의 푸리에 변환식이 나온 것이다.

$$ Y(f)=\int _{-\infty} ^{\infty} {y(t)e^{-i2 \pi ft} dt} \quad \quad (식\; 10)$$

$$y(t)=\int _{-\infty} ^{\infty} {Y(f)e^{i2\pi ft} df} \quad \quad (식\;11)$$

푸리에 급수에 대한 식은 $y(t)$를 먼저 적었었고, 푸리에 변환식은 $Y(f)$를 먼저 적었다. 어느 것을 먼저 적느냐에 따라 그 의미가 달라지는 것은 아니다.

푸리에 급수의 경우는, 시간에 대한 값으로 표현되는 어떤 신호가 여러 주파수 신호의 합으로 표현되고(식 2), 이때 각 주파수 신호의 계수가 (식 2-1)로 계산된다는 형태의 ‘의식의 흐름’이 있기에 $y(t)$에 대한 식이 먼저 나오는 것이고,

푸리에 변환의 경우는, 어떤 시간 함수가 주파수 함수 $Y(f)$로 변환될 수 있고 (식 10), 또한 이 주파수 함수를 다시 시간 함수 y(t)로 바꾸는 역변환도 가능하다는 형태의 설명이기에(식 11), 보통 이런 순서로 표현되는 것이다.

굉장히 깔끔하면서, 뭔가 대칭성도 있어 보이는 멋진 푸리에 변환/역변환 식이 유도되었다.

이 식의 의미는 다음 챕터에서 다루겠다.

-끝-

반응형

키워드에 대한 정보 푸리에 트랜스 폼

다음은 Bing에서 푸리에 트랜스 폼 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 5분만에 이해해보는 푸리에 변환

  • 공돌이
  • 수학
  • 공업수학
  • 공수
  • 선형대수
  • math
  • linear
  • algebra
  • 수학1
  • 미적분
  • 미분
  • 적분

5분만에 #이해해보는 #푸리에 #변환


YouTube에서 푸리에 트랜스 폼 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 5분만에 이해해보는 푸리에 변환 | 푸리에 트랜스 폼, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  성형 외과 예약금 환불 | 성형수술 예약금 환불받는 방법은? 모든 답변

Leave a Reply

Your email address will not be published. Required fields are marked *