o Fourier Transform by Numerical Computation

우리가 지금까지 다룬 많은 신호들은 수학적으로 표현하기 적합했다. 하지만 직관적으로 생각했을 때 대부분의 실제 신호들은 그렇지 않을 것이다. 따라서 우리는 이러한 신호들을 푸리에변환하기 위해 sampling을 한다. 신호를 sampling한다는 것은 delta함수들로 표현 한다는 것이고, 즉 discrete한 신호를 푸리에변환하겠다는 것이다.

 

x(t)를 N개의 신호로 sampling했을 때, X[k]는 아래와 같이 수학적으로 표현할 수 있다. 이러한 DFT는 N의 개수가 커질 수록 직접 계산하기가 어려워져 tool을 사용해야 한다. 어떻게 보면 tool을 이용해 계산하기 위해 sampling을 하는 것이다. 

 

수업시간에 한 cos(2pi t)를 매틀랩을 이용하여 DFT한 것을 보자.

 

먼저 fftshift함수에 대해 알아보자면, 영주파수 성분을 배열의 가운데로 이동시켜 푸리에 변환 X를 재배열하는 것이다. 이 과정이 왜 필요한지 생각해보자. sampling을 하여 푸리에변환을 하면 spectrum은 periodic하다. sampling을 하면 discrete해지니 당연하다. 그리고 그 spectrum의 주기는 sampling을 한 interval인 Ts의 역수인 fs일 것이다. 

매틀랩은 fftshift의 과정 없이 stem(X)를 하게되면 0Hz를 시작점으로 설정한다. 따라서 spectrum은 -1, 1Hz가 아닌 1Hz와 (1+fs)=3Hz에 나타난다. 이를 방지하고자 푸리에변환 후 재배열을 해주는 것이다.

 

 

 

교수님께서 수업 이후 매틀랩에서 위에 나온 정현파 신호(cos)를 DFT을 했을 때, peak가 2개가 아니라 이상한 spectrum들이 여러개가 나오게 되는 경우가 생기는데 왜 그런지 생각해 오라고 하셨다. 

바로 생각난 것은 "sampling을 너무 적게하면 원래의 함수를 복원할 수 없지 않을까?"였다. 그래서 먼저 에일리어싱에 대해 조사를 해봤다. 빨리 달리는 자동차의 바퀴가 뒤로가는 것 처럼 보이는 것을 에일리어싱이라고 한다고 알고있었다. 에일리어싱의 대략적인 내용은 신호의 주파수보다 sampling frequency가 2배이상 크지 않을 경우 발생하는 것이라고 한다. 하지만 이러한 경우를 cos함수에 적용해서 매틀랩에서 보았을 때, 여러 개의 스팩트럼이 나타나지는 않았다. 대신 원래 나타나야 할 주파수대신 다른 주파수에서 peak가 나타났다. 이를 유령 피크 라고 한다.

 

 

o Spectral Leakage(주파수 누설)

다음으로 periodic에 집중하였다. 우리는 특정 신호 x(t)를 sampling하고  sampling한 값들만 변환한다. 그리고 이 값들이 일정한 주기를 갖고 반복한다고 가정한다. 그렇다면 이상적인 sampling은 그 간격이 촘촘하고 x(t)의 한 주기여야 할 것이라는 생각을 했다. 만약 sampling한 값들이 한 주기, 혹은 한 주기의 정수배가 아니라면 sampling한 부분의 시작과 끝이 이어지지 않는 상황이 생긴다.

위의 사진처럼 정현파의 시작과 끝점이 이어지지 않는다면 저 부분을 채울 주파수 성분들이 많이 생길 것이다. 따라서 이를 matlab을 통해 확인해 봤다. 

위의 sampling은 1/4초 간격으로 64번 sampling을 한다. 따라서 총 16초동안 sampling을 하는데, x의 경우 주기가. 1.25초로 12.8주기를 sampling하므로 sampling의 처음과 끝이 다르다. 반면에 y의 경우 주기가 1.6초로 위와같이 샘플링을 하면 딱 맞아 떨어진다. 

 

 

이러한 spectrul leakage를 해결할 수 있는 방법으로는 윈도잉 이라는 것이 있다. 샘플링 한 부분의 시작과 끝을 자연스럽게 0으로 수렴시켜 시작과 끝을 일치시켜 주는 것이다. 

 

윈도우 함수를 이용하여 x(t)를 변형시킨 후 변환한 결과이다. 조금 더 정확한 모형으로 가까워 진 것을 확인할 수 있다.

 

o Unit Impulse Response

단위 임펄스 응답은 말 그대로 어떠한 시스템에 δ(t)를 입력으로 넣었을 떄의 응답을 말한다. 이 응답은 우리는 h(t)로 표기하는데 LTI시스템에서 h(t)를 알면 모든 입력에 대한 출력을 구할 수 있어서 매우 중요하다.

 

모든 입력신호 x(t)는 이와같이 델타함수와의 convolution으로 나타낼 수 있다.

 

입력 x(t)에 대한 출력 y(t)는 아래와 같이 입력신호와 임펄스 응답의 컨볼루션으로 나타낼 수 있다.

 

ex) 만약 어떤 LTI system의 임펄스 응답이 δ(t-10)이라고 해보자. 이 시스템은 단순지연 시스템이라는 것을 알 수 있다. 

입력신호 x(t)가 rect(t)라면 응답으로는 y(t)=rect(t-10)일 것이다. 이는 rect(t) * δ(t-10)이다.

 

 

 

o causality

system이 causal이라는 것은 입력이전에 응답이 없다는 것이다. 수힉적으로는 이렇게 표현할 수 있다.

Impulse response of the system is zero for negative region in time.

 

o stability

stability에는 여러 가지 종류가 있지만 우리는 BIBO(Bounded Input Bounded Output) stability 에 대해 다룰 것이다. Bounded는 "유계(有界)"라는 뜻으로, 쉽게 말해 신호가 특정 범위를 벗어나지 않는다는 의미이다.

 

Bounded Input 정확한 정의로는 시간 t에서 입력 x(t)의 크기가 어떤 유한한 값 M보다 작다는 것이다. ∣x(t)∣≤M

system이 BIBO stable하다는 것은 입력과 응답이 모두 bounded하다는 것이고 이러한 시스템은 h(t)의 적분 유한한지를 판별해 보면 된다. 

 

ex) h(t) = rect(t-5)이면 이 시스템은 causal이고 BIBO stable하다.

 

 

o Frequency Response

 

LTI 시스템에 복소지수함수 x(t)를 입력하면, 출력은 같은 주파수의 복소지수함수가 나온다. 다만 진폭과 위상이 시스템에 의해 H(f)만큼 바뀌는 것이다. 

 

어떤 입력 신호든 복소지수함수의 합으로 표현 가능하므로, H(f)를 알면 모든 입력에 대한 출력을 계산할 수 있다.

 

LTI system의 frequncy response는 Impulse respense의 푸리에변환이다. 따라서 아래와 같은 식이 나온다.

 

 

Bandwidth

o Bandwith

:significiant spectral content of the signal for positive frequencies.

 

위와 같이 rect함수의 bandwidth를 구해보면 쉽게 이해할 수 있다.

 

 

o Null-to-Null Bandwidth

: For the signal whose spectrum is symmetric with a main lobe by well defined nulls

sinc함수와 같이 Null이 잘 정의된 경우 main lobe의 길이를 Null-to-Null Bandwidth라고 한다.

그림에서 빨간색으로 표시된 부분이 main lobe이고 positive부분만 생각하면 첫번째 Null까지의 길이인 W가 된다.

 

 

o 3-dB Bandwidth

: Low-pass type signal에 사용되며 peak의 1/sqrt(2)지점이 되는 positive 부분의 길이를 나타낸다.

 

 

 

o Energy Signal 

signal energy가 finite하면 Energy signal이라고 한다.

우리가 지금까지 다룬 많은 함수들이 대부분 energy signal이다. 

ex) rect(t), tri(t), sinc(t)...

 

o Power Signal

energy signal과 반대로 signal energy가 infinte하면 Power Signal이라고 한다.

우리가 다루는 Power Signal은 대부분 periodic signal이 될 것이다.

 

Power Signal의 스펙트럼을 분석하기 위해선 Dirac delta function에 대해 알아야 된다.

 

 

o Dirac Delta Function

t=0을 제외한 모든 구간에서는 value가 0이고 t=0에서의 value는 무한히 크다.

델타 함수를 적분하면 1이 된다.

 

delta함수의 성질에 대해 알아보자.

 

1. Sifting(Sampling) 

Shift와 헷갈릴 수 있는데 전혀 다른 개념이다. sift는 sampling과 같은 개념으로 이해할 수 있다.

즉, f(t)와 delta(t-to)의 곱을 적분하면 to에서의 합수값이다.

 

2. Replication 

g(t)와 delta(t)를 *(convolution)하면 g(t)가 나온다.

 

3. Equivaence

델타함수는 t=a에서만 값이 존재하기 때문에, t=a에서의 값f(a)로 대체할 수 있다.

 

 

 

o Fourier Transform of Complex Exponential Function

Analysis equation으로 delta function의 푸리에변환을 나타내면 위와 같다.

위에서 언급한 sifting property를 적용하면 delta funtion의 Fourier Transform은 1이라는 것을 알 수 있다.

 

이를 기하학적으로 표현하면 다음과 같다.

 

따라서 

 

 

duality property를 적용하면 1의 푸리에변환이 delta function이 된다.

 

또한 Frequency Shifting property를 적용하면 complex exponential function의 푸리에 변환도 delta function의 shifted version으로 나타낼 수 있다.

 

 

이를 이용하여 Sinusoidal functions도 푸리에변환을 할 수 있다.

 

 

o Signum Function

이전에 다음과 위와 같은 함수 g(t)를 푸리에변환하면 G(f)가 나온다는 것을 알아본 적이 있다.

g(t)에서 a를 lim a->0으로 보내면 sgn(t)가 된다. 따라서 G(f)에서 a를 lim a->0으로 보내면 sgn(t)의 푸리에변환을 구할 수 있다.

 

 

 

o Unit Step Function

 

sgn(t)의 푸리에변환을 구했으니 delta function을 이용하여 u(t)의 푸리에변환 또한 구할 수 있다.

 

 

 

o Fourier Transform of "Integration in Time Domain"

 

신호를 t까지 적분 한 값은 신호와 Unit Step Function의 곱을 적분한 값과 같다. 

이를 기하학적으로 해석하면 이해할 수 있다.

 

이는 g(t)와 u(t)의 convolution으로 나타낼 수있고, convolution property를 적용하면 y(t)의 푸리에변환도 알 수 있다.

이 식에 equivalence property를 적용한다.

 

따라서 적분 한 결과 아래와 같다.

 

저번에 다룬 fourier transform property중 Integration in the time domain과 비교를 해보자.

이는 G(0)=0 일떄만 성립을 한다. G(0)을 DC성분(Discrete current component)이라 하며 DC성분이 0인 경우는 g(t)의 시간에 대한 평균값이 0인 경우이다. 정현파가 예이다. 또한 고주파성분만 있는 경우도 DC성분이 0이된다.

 

 

 

o Fourier Transform of Periodic Signal

 

g(t)는 주기 신호인 g_To(t)의 한 주기 부분이다. g(t)를 수식으로 나타내면 아래와 같다.

g(t)가 g_To(t)의 한 주기만을 나타내고, 나머지 부분은 0이라는 뜻이다.

g_To(t)는 g(t)를 기본 주기(fundamental period) To의 정수배 만큼 이동시킨 신호드들의 합이다.

수식으로 나타내면 아래와 같다.

이 식을 푸리에급수(fourier series)를 통해 나타낼 수 있다. 먼저 푸리에급수의 계수 cn은 다음과 같다. 푸리에급수는 주기 신호를 다양한 주파수의 sinusoidal 함수의 합으로 표현할 때 사용된다. 

이 적분은 g(t)의 각 주파수 성분의 크기와 위상을 구하는 것이다. 또헌 cn은 g(t)의 푸리에변환인 G(f)를 통해서도 표현할 수 있다.

 

주기함수를 푸리에급수를 통해 표현하면 아래와 같다.

이 식을 푸리에변환에 적용해보고 델타함수로 나타내면 아래의 식이 나온다.

 

즉, 주기함수의 푸리에 변환은 한 주기 g(t)의 푸리에 변환 G(f)에 델타함수를 f0간격으로 올려놓고 그 위치에서의 spectrum value와 f0를 곱한 함수로 나타내진다. 

 

ex) Ideal Sampling function(Impulse Train function)

g(t) = ɗ(t)는 시간영역에서의 임펄스 함수다. 이 함수의 푸리에변환은 G(f) = 1 이다. 아래의 그림과 같은 Impulse Traind을 수학적으로 표현해보자.

 

이 함수를 푸리에변환을 해보자. 위에서 구한 식에 대입하면 아래와같은 G(f)를 구할 수 있다.

그리고 delta function의 equivalence property를 적용하면 최종적으로 다음과 같은 변환식이 나온다.

 

 

이렇게 델타함수의 푸리에변환은 상수값이므로 만약에 periodic function을 delta train으로 나타낸다면 그 푸리에변환은 더 쉽게 계산할 수 있을 것이다. 

 

g(t)=rect인 periodic function의 푸리에변환을 두가지 방법으로 구해보자.

sol1)을 보면 먼저 한주기 함수 g(t)=rect(t)의 푸리에변환 G(f)=sinc(f)를 구한 후, spectrum을 주파수가 f0인 델타함수와 f0, spectrum value의 곱을 통해 나타냈다. 하지만 sol2)의 경우 처음의 주기함수를 rect(t)와 주기가 T0인 delta train의 convolution을 통해 나타낸 후 전에 구한 delta train의 푸리에변환을 통해 구했다. 두 방법의 결과가 같은 것을 알 수 있다.

 

즉, 주기함수의 푸리에변환은 그 주기함수를 delta train function의 convolution으로 나타낸 후 delta function의 푸리에변환과 convolution property를 사용하여 쉽게 구할 수 있다. 

 

 

<요약>

주기 신호의 푸리에 변환은 연속 스펙트럼 G(f)를 "이산화"하는 과정이다. 델타함수는 f축에서 f=nf0(n은 정수)위치에 이산적인 성분을 나타낸다. 델타함수의 간격은 fundamental period(기본 주기)의 역수인 f0가 된다. 델타함수의 크기는 f0​×G(nf0​)로 조정된다.

 

위의 ex) 처럼 주기:T0인 사각파의 푸리에 변환은 f0×sinc(nf0) 크기의 델타 함수들이  간격으로 배열된다.

통신 공학의 가장 기초라고할 수 있는 “Fourier Transform”에 대해 공부해 보자.
푸리에변환은 “time domain”(시간 영역)의 신호(함수)를 ”frequency domain”(주파수 영역)으로 변환하는 수학정 도구이다. 이 공식을 통해 신호가 어떤 주파수 성분으로 이루어져 있는지 분석할 수 있다.

위의 식이 푸리에변환 공식이다. 여기서 g(t)는 시간 영역의 신호 이고, G(f)는 주파수 영역의 신호이다. 즉, 시간영역의 함수와 complex exponentioal fnction의 곱을 적분하면 주파수 영역의 함수가 나오는 것을 알 수 있다.

주파수 영역의 신호인 G(f)를 Analysis equation(분석 방정식)이라고 하고, 시간 영역의 신호 g(t)를  Synthesis equation이라고 한다.

아래의 식을 이용하여 반대로 G(f)를 통해 g(t)를구할 수 도 있다.




푸리에변환의 기본 성질을 알아보기 전에 복소수의 기본적인 형태에 대해 집고 넘어가자.

복소수(complex number, 이하 c)는 “rectangular form”(직사각형 형태)와 ”polar form”(극좌표 형태)로 표현할 수 있다.



o Continuous Spectrum


If g(t) is “real-value fuction”, then we have

 

real-value function g(t)는 모든 t에 대해 g(t)가 실수이다. 즉, 허수 부분이 없다.

* : “complex conjugate”(켤레 복소수),  Im[c]의 부호가 바뀐다.
c = a + jb,  c* = a - jb

 

따라서 g(t)가 real-value 함수라면 G(f)의 크기는 even symmetric하고, 위상은 odd symmetric하다.

즉, 실수함수의 푸리에변환은 주파수축에 대해 대칭적이다.

아래의 예제는 기본적인 삼각함수를 푸리에 변화하는 예제이다. 예제를 풀기에 앞서 오일러공식을 리마인드 해보면 좋다.

 

마지막에 사용된 diract delta function은 아래와 같이 정의된다. 이에 대해서는 뒤에서 더 자세하기 다룰 것이다.

지금까지의 내용을 그림을 통해 나타내면 아래와 같다. real-value function g(t)를 푸리에 변환하여 G(f)를 frequancy domain에 나타낸 것이다.

 

o Rectangular Pulse(사각 함수)

 

rect(t)는 아래와 같은 정의를 갖는다.

 

이 rect(t) 함수를 푸리에 변환하면 아래와 갔다.

 

rect함수는 푸리에변환에서 적분 범위를 정해주는 역할(target function)을 한다고 볼 수 있다. 

sinc(f)함수의 frequancy domain에서의 그래프는 위와 같다.

sinc함수에서 f축과의 교점(zero crossing point)을 "NULL"이라고 표현하며 양의 부분의 첫 번째 NULL은 1/T이다.(그림의 경우 T=1) 따라서 null to null interval 은 1/T이 된다.

 

rect함수의 푸리에 변환은 앞으로도 많이 사용되므로 매번 적분하기 보다는 암기하는 것이 좋다.

 

rect함수에서 T는 pulse duration(폭)을 의미한다. T가 감소하면 rect의 폭은 줄어들고 sinc함수에서 null to null interval은 증가한다. 

 

 

아래의 signal을 푸리에변환 해보자.

g(t)에서 사용된 u(t)는 아래와 같다.

여기서 unit step함수 역시 target function으로 작용한다.

 

G(f)의 magnitude와 phase를 구해보면 다음과 같다.

1의 위상을 구하는 과정을 살펴보자. real number을 극좌표계에 나타내면 Re축 위에 놓이게 된다. 따라서 real positive number이면 phase는 '0', real neegative number이면 'ㅠ' 라는 것을 알 수 있다.

 

 

o Properties of Fourier Transform

 

푸리에변환의 14가지 기본 성질에 대해 알아보자.

 

1. Linearity(Superposition)

 

 

 

 

2. Dilation

 

time domain scaling

 

 

 

3. Conjugation Rule 

 

 

4. Duality

inverse Fourier Transform의 형태에서 t와 f를 바꿔주면 duality가 성립함을 알 수 있다.

 

이와 같은 상황에서 duality 성질을 사용하면 쉽게 구할 수 있다. rect(t)는 푸리에변환을 하기 쉬운 꼴(적분 하기 쉬운 꼴)이지만 sinc(t)를 푸리에변환하기에는 매우 복잡하다. 따라서 이와 같은 경우엔 duality성질을 이용해 구하자. 또한 rect함수는 even symmetric하므로 rect(-f) = rect(f)이다.

 

5. 6. Time and Frequency Shifting

 

 

 

7. 8. Area under g(t) and G(f)

Area under in one domain = Function value at "Zero" in another domain.

시간 도메인에서의 적분값은 주파수 도메인에서의 f=0에서의 값과 같다

 

 

이 성질을 다음과 같은 예제를 풀 때 아주 유용하게 사용할 수 있다.

문제에서 tri(t)함수의 푸리에변환이 sinc^2(t)라는 것을 알려 주었다. 

sinc^2(t)의 t에 대한 적분을 구하라고 하면 우리는 당황스러울 수 있다. 

 

먼저 duality성질을 이용해서 sinc^2(t)의 푸리에변환이 tri(t)라는 것을 구할 수 있다.

그 후 시간도메인에서의 적분값은 주파수도메인에서의 f=0값과 같다는 성질을 이용하면 된다.

 

 

9. 10. Differentiation and Integration in the Time-domain

이 특징을 이용하면 tri(t)와 같은 함수의 푸리에변환을 금방 구할 수 있다.

위 그래프g1(t)는 rect함수 2개(g11(t), g12(t))를 합친 것으로 볼 수 있다.

아래의 그래프 g2(t)는 일반적인 tri함수로 g2(t)=ATtri(t/T)로 표현한다.

두 그래프의 관계를 살펴보면 위그래프를 적분하면 아래의 그래프가 나온다는 것을 확인할 수 있다.

 

따라서 g1(t)의 푸리에변환 G1(f)을 구할 수 있다면, g1(t)를 적분한 g2(t)의 푸리에 변환은 G1(f)(1/j2ㅠf)로 구할 수 있다.

 

 

 

11. 12. 13. Modulation, Convolution, Correlation Theorem

 

multiplication in one domain = convlution in another domain

 

 

convolution과정을 잘 익혀두자.

 

14. Rayleigh's Energy Theorem 

 

g(t)의 signal energy를 푸리에변환한 값은 g(t)의 푸리에변환의 energy와 같다는 특징이있다.

 

이와 같이 sinc함수의 에너지를 구할 때 rect함수의 에너지로 쉽게 구할 수 있다.

 

+ Recent posts