REMI Lab강의 노트

Signals and Systems L05

5장 푸리에 급수

복소 지수 푸리에 급수

코사인 계수와 사인 계수 두 개로 적던 한 주파수 성분을 복소수 하나로 적을 수 있을까? 그 복소수는 어떤 내적으로 구할까?

4장의 Euler 공식으로 코사인과 사인을 복소 지수로 바꾼다.

cos⁡φ=ejφ+e−jφ2,sin⁡φ=ejφ−e−jφ2j\cos\varphi=\frac{e^{j\varphi}+e^{-j\varphi}}{2},\qquad \sin\varphi=\frac{e^{j\varphi}-e^{-j\varphi}}{2j}

실수 급수에 대입하고 ejnxe^{jnx}와 e−jnxe^{-jnx}끼리 모은다(1/j=−j1/j=-j).

f(x)=a0+∑n=1∞anejnx+e−jnx2+∑n=1∞bnejnx−e−jnx2j=a0+∑n=1∞an−jbn2ejnx+∑n=1∞an+jbn2e−jnx=∑n=−∞∞cnejnx\begin{aligned} f(x)&=a_0+\sum_{n=1}^{\infty}a_n\frac{e^{jnx}+e^{-jnx}}{2}\\ &\quad+\sum_{n=1}^{\infty}b_n\frac{e^{jnx}-e^{-jnx}}{2j}\\ &=a_0+\sum_{n=1}^{\infty}\frac{a_n-jb_n}{2}e^{jnx}\\ &\quad+\sum_{n=1}^{\infty}\frac{a_n+jb_n}{2}e^{-jnx}\\ &=\sum_{n=-\infty}^{\infty}c_n e^{jnx} \end{aligned} c0=a0cn=an−jbn2,c−n=an+jbn2(n≥1)\begin{gathered} c_0=a_0\\ c_n=\frac{a_n-jb_n}{2},\quad c_{-n}=\frac{a_n+jb_n}{2}\quad(n\ge1) \end{gathered}

계수는 한 식으로 바로 구할 수 있다. 12π∫f(cos⁡nx−jsin⁡nx) dx=12(an−jbn)\frac{1}{2\pi}\int f(\cos nx-j\sin nx)\,dx=\frac12(a_n-jb_n)이므로

cn=12π∫−ππf(x)e−jnx dx,n=0,±1,±2,…c_n=\frac{1}{2\pi}\int_{-\pi}^{\pi}f(x)e^{-jnx}\,dx,\qquad n=0,\pm1,\pm2,\dots

n=0n=0이면 c0c_0는 평균, 곧 a0a_0이다. 주기 TT인 신호에서는 다음과 같다.

x(t)=∑k=−∞∞ckejkω0tck=1T∫Tx(t)e−jkω0t dt,ω0=2πT\begin{gathered} x(t)=\sum_{k=-\infty}^{\infty}c_k e^{jk\omega_0 t}\\ c_k=\frac{1}{T}\int_T x(t)e^{-jk\omega_0 t}\,dt,\qquad \omega_0=\frac{2\pi}{T} \end{gathered}

계수를 구하는 식(분석)에는 음의 지수, 신호를 다시 만드는 식(합성)에는 양의 지수가 들어간다. 음의 지수 e−jkω0te^{-jk\omega_0 t}는 기저 ejkω0te^{jk\omega_0 t}의 켤레이다. 4장에서 본 대로 복소 신호의 내적은 한쪽에 켤레를 붙여 정의한다. 그래야 같은 기저끼리의 내적이 길이 제곱(양수)이 되고 서로 다른 정수 차수끼리는 0이 된다. 한 주기 평균으로 쓰면 다음과 같다.

1T∫Tejkω0t ejmω0t‾ dt=1T∫Tej(k−m)ω0t dt={1,k=m0,k≠m\begin{aligned} \frac{1}{T}\int_T e^{jk\omega_0 t}\,\overline{e^{jm\omega_0 t}}\,dt&=\frac{1}{T}\int_T e^{j(k-m)\omega_0 t}\,dt\\ &=\begin{cases}1, & k=m\\ 0, & k\ne m\end{cases} \end{aligned}

여기서 k,mk,m은 정수이다. 4장에서 본 것처럼 켤레 없이 곱하면 ej2ω0t⋅e−j2ω0t=1e^{j2\omega_0 t}\cdot e^{-j2\omega_0 t}=1처럼 서로 다른 두 기저에서도 적분이 TT가 된다. 계수를 구할 때 켤레가 빠지면 ckc_k 자리에 c−kc_{-k}가 나온다.

실수 신호 x(t)x(t)에서는 x(t)‾=x(t)\overline{x(t)}=x(t)이므로 계수 적분에 켤레를 취하면

ck‾=1T∫Tx(t)‾ejkω0t dt=1T∫Tx(t)e−j(−k)ω0t dt=c−k\overline{c_k}=\frac1T\int_T\overline{x(t)}e^{jk\omega_0t}\,dt =\frac1T\int_Tx(t)e^{-j(-k)\omega_0t}\,dt=c_{-k}

이다. ±k\pm k 두 항을 더하면 허수부가 상쇄되어 진폭 2∣ck∣2\lvert c_k\rvert, 위상 ∠ck\angle c_k인 실수 정현파 하나가 된다.

ckejkω0t+c−ke−jkω0t=2Re⁡{ckejkω0t}=2∣ck∣cos⁡(kω0t+∠ck)\begin{aligned} c_k e^{jk\omega_0 t}+c_{-k}e^{-jk\omega_0 t}&=2\operatorname{Re}\{c_k e^{jk\omega_0 t}\}\\ &=2\lvert c_k\rvert\cos(k\omega_0 t+\angle c_k) \end{aligned}

복소 신호는 이 대칭을 가질 필요가 없고, 그때 ckc_k와 c−kc_{-k}는 서로 관계없는 값이다.

앞의 사각파에서는 an=0a_n=0이므로 cn=−jbn/2c_n=-jb_n/2이다. 홀수 nn에서 cn=−j 2A/(nπ)c_n=-j\,2A/(n\pi), c−n=+j 2A/(nπ)c_{-n}=+j\,2A/(n\pi)이고 짝수 nn과 n=0n=0에서는 0이다. 계수가 모두 순허수인 것은 사각파가 실수 홀함수이기 때문이다(성질 절의 대칭 참고).

실수 신호 x(t)x(t)에서 ckc_k의 실수부와 허수부는 각각 코사인, −-사인과의 내적이다.

ck=1T∫Tx(t)cos⁡kω0t dt⏟Re⁡ck+j 1T∫Tx(t)(−sin⁡kω0t)dt⏟Im⁡ck\begin{aligned} c_k&=\underbrace{\frac{1}{T}\int_T x(t)\cos k\omega_0 t\,dt}_{\operatorname{Re}c_k}\\ &\quad+j\,\underbrace{\frac{1}{T}\int_T x(t)\left(-\sin k\omega_0 t\right)dt}_{\operatorname{Im}c_k} \end{aligned}

복소 신호에서는 두 내적 자체가 복소수이므로 이렇게 나눌 수 없다. 두 내적 가운데 하나가 0이라고 그 주파수 성분이 없다는 뜻은 아니다.

입력이 cos⁡(2πt+φ)\cos(2\pi t+\varphi)(1 Hz)이고 기준이 k=1k=1 Hz이면, φ=0∘\varphi=0^\circ에서는 cos 곱의 면적만 남아 c1=0.5c_1=0.5이고, φ\varphi가 바뀌면 점 cc가 반지름 0.5인 원 위를 돈다. φ=90∘\varphi=90^\circ이면 입력은 −sin⁡2πt-\sin 2\pi t가 된다. 코사인과의 내적은 0이지만 −-사인과의 내적은 0.5가 남아서 c1=j0.5c_1=j0.5이다. 곱 아래의 성분 줄에서 면적을 남기는 것은 f−k=0f-k=0 Hz 성분뿐이다. 이 성분은 cos 곱에서 상수 12cos⁡φ\tfrac12\cos\varphi, −sin⁡-\sin 곱에서 상수 12sin⁡φ\tfrac12\sin\varphi이고, f+k=2f+k=2 Hz 성분은 1 s 동안 두 번 돌아 면적이 0이다.

입력 cos(2πt + φ)(1 Hz)를 기준 k = 1 Hz의 코사인·(−사인)과 한 주기 L = 1 s 동안 곱해 평균한 두 내적을 복소평면의 한 점 c로 모으며, 처음 상태 φ = 0°에서는 c = 0.5이다. 점선 원의 반지름은 입력 진폭의 절반 A/2이고, 성분 줄의 f − k = 0 Hz 성분은 그 곱의 평균과 같은 높이의 상수이다.

해 보기

  1. φ=90∘\varphi=90^\circ이면 두 곱의 평균과 c1c_1이 어떻게 되는지 확인하라.
    관찰

    입력이 −sin⁡2πt-\sin2\pi t이다. cos 곱의 평균은 0이고 −sin⁡-\sin 곱의 평균 0.5만 남아 c1=j0.5c_1=j0.5이다. 0 Hz 성분이 cos 곱에서는 0, −sin⁡-\sin 곱에서는 높이 0.5인 상수이다.

  2. φ=45∘\varphi=45^\circ이면 c1c_1의 크기와 각도를 확인하라.
    관찰

    두 평균이 모두 0.354로, c1=0.354+j0.354c_1=0.354+j0.354이다. 크기 ∣c1∣=0.5\lvert c_1\rvert=0.5는 그대로이고 각도가 45°이다.

  3. φ=180∘\varphi=180^\circ이면 c1c_1이 얼마인지 확인하라.
    관찰

    c1=−0.5c_1=-0.5이다. 입력이 −cos⁡2πt-\cos2\pi t라 cos 곱의 면적이 모두 음수이다.

회전 벡터로 보기

급수의 한 항 ckejkω0tc_k e^{jk\omega_0 t}는 복소평면에서 도는 벡터이다. 길이는 ∣ck∣\lvert c_k\rvert, t=0t=0에서의 각도는 ∠ck\angle c_k이고, 한 주기 TT 동안 kk바퀴 돈다. k>0k>0이면 반시계 방향, k<0k<0이면 시계 방향으로 돌고, k=0k=0인 벡터는 멈춰 있다.

어느 시각 tt에서 모든 벡터를 머리와 꼬리를 이어 더하면 마지막 끝점이 x(t)x(t)이다. 입력 tt 하나에 복소평면의 점 하나가 대응하고, tt가 0에서 TT까지 가는 동안 끝점은 닫힌 곡선을 그린다. 차수를 많이 쓸수록 더 복잡한 곡선을 그릴 수 있다. 3Blue1Brown의 푸리에 급수 영상은 차수 −3…3을 비롯한 여러 회전 벡터를 이어 붙여 끝점이 π 모양 곡선을 따라가게 한다. 그 영상은 주기를 1로 두고 각 항을 cnen⋅2πitc_n e^{n\cdot 2\pi i t}로 쓰는데, 이 장의 식에서 T=1T=1, i=ji=j로 둔 것과 같다.

실수 신호는 c−k=ck‾c_{-k}=\overline{c_k}이므로 kk차 벡터와 −k-k차 벡터가 실수축을 기준으로 거울처럼 움직인다. 두 벡터의 허수 성분이 상쇄되어 끝점은 실수축 위에서만 오간다. 그 위치가 x(t)x(t)이다.

그림은 진폭 1인 사각파(T=1T=1 s)의 5차 부분합을 회전 벡터로 만든다. ck=−j 2/(kπ)c_k=-j\,2/(k\pi)이므로 ∣c1∣=0.64\lvert c_1\rvert=0.64, ∣c3∣=0.21\lvert c_3\rvert=0.21, ∣c5∣=0.13\lvert c_5\rvert=0.13이고, 짝수 차수는 계수가 0이라 벡터가 없다. 벡터는 k=1,−1,3,−3,5,−5k=1,-1,3,-3,5,-5 순서로 붙는다. 벡터 하나는 원점에서 그은 계수 ckc_k의 화살표를 2πkt2\pi kt만큼 돌려 ckej2πktc_k e^{j2\pi kt}로 만들고, 앞 벡터들의 끝에 이어 붙인다. 계산 표에는 벡터마다 ckc_k, 돌린 각 2πkt2\pi kt, 돌린 벡터, 끝점이 한 줄씩 남는다. 11차와 −1-1차 벡터를 이으면 끝점이 실수축으로 돌아오고, 초록 파형은 진폭 4/π≈1.274/\pi\approx1.27인 사인이 된다. 벡터를 더 이을수록 초록 파형이 점선의 사각파에 다가간다. tt가 한 주기 동안 흐르면 페이저 합 전체가 돌며 끝점이 닫힌 곡선을 그리고, 그 실수부가 오른쪽의 파형이 된다. 왼쪽의 초록 길과 오른쪽의 초록 파형은 지금까지 이은 벡터들의 끝점이 한 주기 동안 그리는 것이라, 벡터가 하나 이어질 때마다 바뀐다.

t = 0.125 s에서 계산하며, 주황 화살표가 지금 만드는 벡터, 흐린 화살표가 이은 벡터, 속이 빈 점이 목표 사각파의 값 x(t), 보라 점선이 Im z(t)이다. 계수(회색), 돌린 벡터(주황), 끝점(초록)은 그림, 표, 식에서 같은 색이고, 값은 반올림한 수로 이어서 계산하므로 정확한 값과 끝자리가 조금 다를 수 있다.

해 보기

  1. t=0.25t=0.25에서 돌린 벡터를 모두 이은 끝점이 어디에 있는지 확인하라.
    관찰

    돌린 벡터가 0.6370.637, 0.6370.637, −0.212-0.212, −0.212-0.212, 0.1270.127, 0.1270.127로 모두 실수이고, 끝점이 실수축 위에 있다. 세 자리로 반올림한 여섯 값을 이어 더한 끝점은 1.104이고, 그림은 정확한 값 4π(1−13+15)=1.103\frac4\pi\left(1-\frac13+\frac15\right)=1.103을 옆에 적는다. 차이는 반올림한 수를 이어 더해서 생긴다.

  2. t=0.5t=0.5에서 돌린 벡터를 모두 이은 끝점이 어디에 있는지 보고, 그 자리가 사각파의 어디인지 생각해 보라.
    관찰

    켤레 쌍마다 돌린 벡터가 j0.637j0.637과 −j0.637-j0.637처럼 서로 지워 끝점이 원점에 있다. 사각파가 −1로 뛰는 점프 위치이고, 부분합은 좌우 값의 평균 0을 지난다.

  3. 켤레 쌍 없이 t=0.125t=0.125에서 벡터를 모두 이으면 끝점이 어디에 있는지, 실수부가 켤레 쌍이 있을 때와 어떻게 다른지 확인하라.
    관찰

    −k-k차 벡터가 빠져 벡터가 세 개 남고, 끝점이 실수축을 벗어나 z=0.51−j0.21z=0.51-j0.21에 있다. 실수부는 켤레 쌍이 있을 때의 1.02의 절반이다.

톱니파도 같은 방식으로 만든다. 주기 2π2\pi마다 −2에서 2로 올라가는 톱니파는 다음과 같다.

x(θ)=2π(θ−π)(0<θ<2π)x(θ)=−4π∑n=1∞sin⁡nθn\begin{gathered} x(\theta)=\frac{2}{\pi}(\theta-\pi)\quad(0<\theta<2\pi)\\ x(\theta)=-\frac{4}{\pi}\sum_{n=1}^{\infty}\frac{\sin n\theta}{n} \end{gathered}

한 주기 평균이 0이고 주기적으로 연장한 신호가 홀함수이므로 a0=an=0a_0=a_n=0이다. 사인 계수는 부분적분으로 구한다.

bn=2π2∫02π(θ−π)sin⁡nθ dθ=2π2[−(θ−π)cos⁡nθn+sin⁡nθn2]02π=−4nπ(n≥1)\begin{aligned} b_n&=\frac{2}{\pi^2}\int_0^{2\pi}(\theta-\pi)\sin n\theta\,d\theta\\ &=\frac{2}{\pi^2}\left[-\frac{(\theta-\pi)\cos n\theta}{n}+\frac{\sin n\theta}{n^2}\right]_0^{2\pi} =-\frac{4}{n\pi}\quad(n\ge1) \end{aligned}

처음 다섯 고조파만 더해도 모양이 드러나고, 불연속 옆에서 부분합은 약 ±2.02까지 간다. 복소 계수는 cn=j 2/(nπ)c_n=j\,2/(n\pi)이고, 5차까지의 크기는 0.64, 0.32, 0.21, 0.16, 0.13, 위상은 모두 90°이다. 원 하나에 벡터 하나만 두고 그 세로 성분을 보는 그림(harmonic circles)도 자주 쓰인다. 그때 원의 반지름은 실수 정현파의 진폭 2∣cn∣=4/(nπ)≈1.27, 0.64, 0.42, 0.32, 0.252\lvert c_n\rvert=4/(n\pi)\approx1.27,\ 0.64,\ 0.42,\ 0.32,\ 0.25이다. 켤레 쌍 두 벡터로 만든 결과와 같다. 원을 따라 도는 과정은 jezzamon의 대화형 설명과 MATLAB File Exchange의 harmonic circles 애니메이션에서도 볼 수 있다.

뒤의 Gibbs 현상 절 그림에서 파형을 톱니파로 바꾸면, 이 톱니파를 세로로 절반 줄인 신호(주기 1 s마다 −1에서 1로 올라가는 톱니파)의 부분합을 차수 NN을 늘려 가며 볼 수 있다.

같은 방법으로 파형이 아닌 닫힌 곡선도 그린다. 평면의 곡선을 한 바퀴 도는 점 z(t)z(t)는 주기 TT인 복소 신호이므로 계수 ckc_k가 있고, 벡터 ckejkω0tc_k e^{jk\omega_0 t}를 이어 붙인 끝점이 그 곡선을 따라간다. 그림은 글자 ㄹ의 윤곽을 목표로 두고 벡터를 긴 것부터 하나씩 붙인다. 벡터가 늘수록 초록 곡선이 점선에 다가간다.

정사각형처럼 90° 돌릴 때마다 제 모양이 되는 곡선을 원점 중심에서 일정한 빠르기로 반시계 방향으로 돌면 z(t+T/4)=jz(t)z(t+T/4)=jz(t)(90° 회전)이다. 시간을 T/4T/4 옮기면 계수에 ejkπ/2e^{jk\pi/2}가 곱해지므로(아래 '푸리에 급수의 성질'의 시간 이동) 계수는 ejkπ/2ck=jcke^{jk\pi/2}c_k=jc_k를 만족해야 하고, k=4m+1k=4m+1(mm은 정수)인 차수만 남을 수 있다.

목표 곡선은 가로세로 2인 상자 안의 다각형이고, 그 위의 점이 둘레를 같은 빠르기로 한 바퀴 도는 데 T = 1 s가 걸리며, 계수는 ck = ∫01 z(t)e−j2πktdt로 구했다. 점선 위의 속이 빈 회색 점은 페이저 합의 지금 시각 t에 목표 곡선 위의 점이 있는 자리(끝점이 가까이 와야 할 곳), 빨간 점선은 같은 시각 t에서 끝점과 목표 곡선 위의 점이 가장 멀리 떨어진 곳, 회색 곡선은 벡터를 하나 덜 쓴 곡선이다.

해 보기

  1. 벡터 하나만으로 그린 끝점의 궤적을 목표 곡선과 비교하라.
    관찰

    가장 긴 벡터는 k=1k=1, ∣c1∣=0.673\lvert c_1\rvert=0.673이다. 끝점은 반지름 0.673인 원을 반시계 방향으로 한 번 돌 뿐이다. 같은 시각 tt의 끝점과 목표 곡선 위의 점 사이 거리는 가장 클 때 1.213이고, 그림의 빨간 점선이 그 두 점을 잇는다.

  2. 벡터 네 개로 그린 궤적이 목표 곡선에 얼마나 가까워지는지 확인하라.
    관찰

    k=1,3,−3,−1k=1,3,-3,-1 네 벡터만으로 ㄹ처럼 위아래로 두 번 꺾인 모양이 드러나고, 같은 시각의 두 점 사이 거리는 가장 클 때도 0.282로 준다. 페이저 합 끝의 짧은 벡터일수록 모서리 같은 작은 모양을 맡는다.

  3. 목표 곡선이 네모일 때 벡터 네 개가 쓰는 차수를 확인하고, 그 차수만 남는 까닭을 생각해 보라.
    관찰

    쓰는 차수가 1,−3,5,−71,-3,5,-7이다. 네모는 90° 돌려도 같은 모양이라 4로 나눈 나머지가 1인 차수의 계수만 0이 아니고, 계수 그림에도 그 밖의 kk에는 스템이 없다.

급수와 변환

급수는 주기 신호를 이산 주파수 kω0k\omega_0의 복소 지수로 나눈다.

x(t)=∑k=−∞∞ckejkω0tx(t)=\sum_{k=-\infty}^{\infty}c_k e^{jk\omega_0 t}

변환은 주기가 없는 신호를 연속 주파수 ω\omega의 복소 지수로 나눈다.

X(ω)=∫−∞∞x(t)e−jωt dtx(t)=12π∫−∞∞X(ω)ejωt dω\begin{aligned} X(\omega)&=\int_{-\infty}^{\infty}x(t)e^{-j\omega t}\,dt\\ x(t)&=\frac{1}{2\pi}\int_{-\infty}^{\infty}X(\omega)e^{j\omega t}\,d\omega \end{aligned}

주기 TT를 한없이 늘리면 주파수 간격 ω0=2π/T\omega_0=2\pi/T가 0으로 좁아지고, 계수의 합이 주파수에 대한 적분으로 바뀐다. 6장에서 이 극한을 따라간다. 위 정의에서 순변환에는 상수가 붙지 않고 역변환에만 1/(2π)1/(2\pi)가 붙는다. 수학 교재에서는 두 식 앞에 1/2π1/\sqrt{2\pi}를 하나씩 나눠 붙인 대칭형도 쓴다.

실수 주기 신호의 계수가 c2=0.3−j0.4c_2=0.3-j0.4이다. c−2c_{-2}를 고르라.

  1. (가) 0.3+j0.40.3+j0.4
  2. (나) 0.3−j0.40.3-j0.4
  3. (다) −0.3+j0.4-0.3+j0.4
  4. (라) 00
풀이

답 (가) 0.3+j0.40.3+j0.4

  • (나) 두 계수가 같으면 ±2\pm2차 두 항의 허수부가 상쇄되지 않아 신호가 복소수가 된다.
  • (다) 이것은 −c2-c_2이다. 실수 신호에서 c−kc_{-k}는 ckc_k의 켤레이다.
  • (라) 실수 신호의 kk차 성분에는 늘 −k-k차 짝이 있다.

실수 신호는 c−k=ck‾c_{-k}=\overline{c_k}이므로 c−2=0.3+j0.4c_{-2}=0.3+j0.4이다. 두 항을 더하면 2∣c2∣cos⁡(2ω0t+∠c2)=cos⁡(2ω0t−53.1∘)2\lvert c_2\rvert\cos(2\omega_0t+\angle c_2)=\cos(2\omega_0t-53.1^\circ)이다.

x(t)=3sin⁡2ω0tx(t)=3\sin 2\omega_0 t의 복소 계수 c2c_2를 고르라.

  1. (가) −j3-j3
  2. (나) j1.5j1.5
  3. (다) 1.51.5
  4. (라) −j1.5-j1.5
풀이

답 (라) −j1.5-j1.5

  • (가) 진폭 3은 c2c_2와 c−2c_{-2} 두 계수에 반씩 나뉜다.
  • (나) sin⁡φ=(ejφ−e−jφ)/(2j)\sin\varphi=(e^{j\varphi}-e^{-j\varphi})/(2j)이고 1/j=−j1/j=-j이다. j1.5j1.5는 c−2c_{-2}이다.
  • (다) 실수 계수는 코사인 성분이다. 사인은 코사인과의 내적이 0이라 계수가 순허수이다.

3sin⁡2ω0t=32jej2ω0t−32je−j2ω0t3\sin2\omega_0t=\frac{3}{2j}e^{j2\omega_0t}-\frac{3}{2j}e^{-j2\omega_0t}이므로 c2=32j=−j1.5c_2=\frac{3}{2j}=-j1.5, c−2=j1.5c_{-2}=j1.5이다. 실수 급수로는 b2=3b_2=3이고 c2=−jb2/2c_2=-jb_2/2와 같다.