Skip to content

필사 모드: 공업수학 완전 정복 3편: 복소해석학과 Z-변환 - 제어/신호처리의 핵심

한국어
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

공업수학 완전 정복 3편: 복소해석학과 Z-변환

전자/제어 공학에서 복소수는 단순한 수학적 추상이 아닙니다. 교류 회로 분석의 페이저(phasor), 라플라스 변환의 $s = \sigma + j\omega$, Z-변환의 단위원, 보드 선도의 복소 주파수 응답 — 이 모든 것이 복소해석학에 뿌리를 두고 있습니다. 이번 글에서는 복소수 체계부터 유수 정리, Z-변환과 디지털 필터 설계까지 완전히 정복합니다.

1. 복소수 체계 완전 정복

1.1 복소수의 표현

**직교형(Rectangular Form)**:

$$z = x + iy = x + jy$$

(전기공학에서는 $i$ 대신 $j$를 사용합니다. $i$는 전류를 나타내기 때문)

- 실부: $\text{Re}(z) = x$

- 허부: $\text{Im}(z) = y$

**극형(Polar Form)**:

$$z = r e^{i\theta} = r(\cos\theta + i\sin\theta) = r\angle\theta$$

- 절댓값(크기): $r = |z| = \sqrt{x^2 + y^2}$

- 편각(위상): $\theta = \arg(z) = \arctan(y/x)$ (사분면 고려)

**오일러 공식(Euler's Formula)**:

$$e^{i\theta} = \cos\theta + i\sin\theta$$

이로부터:

$$\cos\theta = \frac{e^{i\theta} + e^{-i\theta}}{2}, \quad \sin\theta = \frac{e^{i\theta} - e^{-i\theta}}{2i}$$

수학 역사상 가장 아름다운 공식으로 꼽히는 **오일러 항등식**:

$$e^{i\pi} + 1 = 0$$

다섯 가지 가장 중요한 수($e$, $i$, $\pi$, $1$, $0$)가 하나의 식에 연결됩니다.

**드 무아브르 공식(De Moivre's Formula)**:

$$(r e^{i\theta})^n = r^n e^{in\theta} = r^n(\cos n\theta + i\sin n\theta)$$

**n제곱근**: $z^{1/n} = r^{1/n} e^{i(\theta + 2k\pi)/n}$, $k = 0, 1, \ldots, n-1$

단위원 위의 $n$등분점을 나타냅니다. (1의 n제곱근: $W_N^k = e^{j2\pi k/N}$ - FFT에서 등장!)

1.2 복소수 연산

**덧셈/뺄셈** (직교형이 편리):

$$(x_1 + iy_1) \pm (x_2 + iy_2) = (x_1 \pm x_2) + i(y_1 \pm y_2)$$

**곱셈** (극형이 편리):

$$(r_1 e^{i\theta_1})(r_2 e^{i\theta_2}) = r_1 r_2 e^{i(\theta_1 + \theta_2)}$$

크기는 곱, 위상은 합 — 전기공학에서 임피던스 곱셈의 기반입니다.

**나눗셈**:

$$\frac{r_1 e^{i\theta_1}}{r_2 e^{i\theta_2}} = \frac{r_1}{r_2} e^{i(\theta_1 - \theta_2)}$$

**켤레복소수(Complex Conjugate)**:

$$\bar{z} = x - iy = r e^{-i\theta}$$

유용한 성질:

- $z\bar{z} = x^2 + y^2 = |z|^2$

- $\text{Re}(z) = (z + \bar{z})/2$

- $\text{Im}(z) = (z - \bar{z})/(2i)$

- $|\bar{z}| = |z|$, $\arg(\bar{z}) = -\arg(z)$

1.3 공학 응용: 페이저 해석

**교류 회로 분석**에서 복소수의 위력이 발휘됩니다.

$v(t) = V_m\cos(\omega t + \phi)$를 페이저로 표현:

$$\mathbf{V} = V_m e^{j\phi} = V_m\angle\phi$$

**임피던스(Impedance)**:

$$Z_R = R \quad (\text{순저항, 위상차 없음})$$

$$Z_L = j\omega L \quad (\text{인덕터, +90도 위상 진행})$$

$$Z_C = \frac{1}{j\omega C} = \frac{-j}{\omega C} \quad (\text{캐패시터, -90도 위상 지연})$$

직렬 RLC 임피던스:

$$Z = R + j\omega L + \frac{1}{j\omega C} = R + j\left(\omega L - \frac{1}{\omega C}\right)$$

크기: $|Z| = \sqrt{R^2 + (\omega L - 1/(\omega C))^2}$

위상: $\phi = \arctan\!\left(\frac{\omega L - 1/(\omega C)}{R}\right)$

공진 조건: $\omega_0 L = 1/(\omega_0 C)$ → $\omega_0 = 1/\sqrt{LC}$, $Z = R$ (순저항)

**전달 함수(Transfer Function)**:

$$H(j\omega) = \frac{Y(j\omega)}{X(j\omega)}$$

이것이 라플라스 도메인에서 $H(s)|_{s=j\omega}$이며, 보드 선도의 기반입니다.

2. 복소함수와 해석 함수

2.1 복소함수

$$f(z) = f(x + iy) = u(x, y) + iv(x, y)$$

여기서 $u, v$는 실수 값 함수입니다.

**예시**:

$$f(z) = z^2 = (x+iy)^2 = x^2 - y^2 + i(2xy)$$

$$u(x,y) = x^2 - y^2, \quad v(x,y) = 2xy$$

$$f(z) = e^z = e^{x+iy} = e^x(\cos y + i\sin y)$$

$$u(x,y) = e^x\cos y, \quad v(x,y) = e^x\sin y$$

2.2 복소 미분과 코시-리만 방정식

$f(z)$의 복소 미분:

$$f'(z_0) = \lim_{\Delta z\to 0}\frac{f(z_0 + \Delta z) - f(z_0)}{\Delta z}$$

실수와 달리 $\Delta z$가 복소 평면에서 **어느 방향으로도** 0에 접근할 수 있어야 극한값이 같아야 합니다.

**x축 방향** ($\Delta z = \Delta x$):

$$f'(z) = \frac{\partial u}{\partial x} + i\frac{\partial v}{\partial x}$$

**y축 방향** ($\Delta z = i\Delta y$):

$$f'(z) = \frac{1}{i}\frac{\partial u}{\partial y} + \frac{\partial v}{\partial y} = -i\frac{\partial u}{\partial y} + \frac{\partial v}{\partial y}$$

두 표현이 같으려면:

$$\boxed{\frac{\partial u}{\partial x} = \frac{\partial v}{\partial y}, \quad \frac{\partial u}{\partial y} = -\frac{\partial v}{\partial x}}$$

이것이 **코시-리만 방정식(Cauchy-Riemann Equations)**입니다.

$u, v$의 편미분이 연속이고 코시-리만 방정식을 만족하면 $f(z)$는 **해석 함수(Analytic Function)**입니다.

2.3 조화 함수

해석 함수의 실부와 허부는 각각 **라플라스 방정식**을 만족합니다:

$$\nabla^2 u = \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} = 0$$

$$\nabla^2 v = \frac{\partial^2 v}{\partial x^2} + \frac{\partial^2 v}{\partial y^2} = 0$$

**증명**: 코시-리만에서 $u_{xx} = v_{yx}$, $u_{yy} = -v_{xy}$이므로 $u_{xx} + u_{yy} = v_{yx} - v_{xy} = 0$ (혼합 편미분의 순서 교환).

$u$를 알면 코시-리만으로 $v$를 구할 수 있습니다 (조화 켤레 함수).

**공학적 의미**: 포텐셜 흐름에서 속도 포텐셜과 유선 함수의 관계, 정전기학에서 전위와 전기력선의 관계.

2.4 중요한 해석 함수들

**지수 함수** $e^z = e^x(\cos y + i\sin y)$:

- 전체 복소 평면에서 해석적

- $(e^z)' = e^z$

- $|e^z| = e^x$, $\arg(e^z) = y$

**삼각 함수**:

$$\cos z = \frac{e^{iz} + e^{-iz}}{2}, \quad \sin z = \frac{e^{iz} - e^{-iz}}{2i}$$

- $\cos z$, $\sin z$는 전체 복소 평면에서 해석적

- 실수 삼각함수와 달리 크기가 무한대가 될 수 있음: $|\cos(iy)| = \cosh y \to \infty$

**쌍곡 함수**:

$$\cosh z = \frac{e^z + e^{-z}}{2}, \quad \sinh z = \frac{e^z - e^{-z}}{2}$$

$$\cos(iz) = \cosh z, \quad \sin(iz) = i\sinh z$$

**로그 함수** (다가 함수):

$$\ln z = \ln r + i(\theta + 2k\pi), \quad k \in \mathbb{Z}$$

주값(principal value): $\text{Ln}\,z = \ln r + i\theta$, $-\pi < \theta \leq \pi$

$z = 0$과 음의 실수축에서 특이성 발생 (가지 절단, branch cut).

3. 복소 적분

3.1 경로 적분 (Line Integral)

$C$: 복소 평면의 곡선 (매개변수 $z(t) = x(t) + iy(t)$, $a \leq t \leq b$)

$$\int_C f(z)\,dz = \int_a^b f(z(t))z'(t)\,dt$$

**예시**: $\int_C z^2\,dz$ ($C$: 원점에서 $1+i$까지 직선)

매개변수화: $z(t) = t + it$, $z'(t) = 1+i$, $0 \leq t \leq 1$

$$\int_0^1 (t+it)^2(1+i)\,dt = \int_0^1 t^2(2i)(1+i)\,dt = (2i)(1+i)\cdot\frac{1}{3} = \frac{2i+2i^2}{3} = \frac{-2+2i}{3}$$

3.2 코시 적분 정리 (Cauchy's Integral Theorem)

$$\oint_C f(z)\,dz = 0$$

**조건**: $f(z)$가 단순 폐곡선 $C$ 위와 그 내부에서 해석적.

**직관**: 해석 함수는 경로에 무관하게 적분됩니다.

**그린 정리와의 관계**:

$$\oint_C f(z)\,dz = \oint_C (u+iv)(dx+idy) = \oint_C (u\,dx - v\,dy) + i\oint_C (v\,dx + u\,dy)$$

그린 정리와 코시-리만 방정식을 적용하면 두 항 모두 0이 됩니다.

**경로 독립성**: 폐곡선 적분이 0 ↔ 적분이 경로에 무관

원시 함수(antiderivative): $F'(z) = f(z)$이면 $\int_a^b f(z)\,dz = F(b) - F(a)$

3.3 코시 적분 공식 (Cauchy's Integral Formula)

$$\boxed{f(a) = \frac{1}{2\pi i}\oint_C \frac{f(z)}{z-a}\,dz}$$

**조건**: $f(z)$가 $C$ 위와 내부에서 해석적, $a$는 $C$ 내부.

**해석**: $f(z)/(z-a)$는 $z = a$에서 극점을 가집니다. 코시 공식은 극점 주변의 적분이 함수값과 직접 연결됨을 보여줍니다.

**고차 미분 공식**:

$$f^{(n)}(a) = \frac{n!}{2\pi i}\oint_C \frac{f(z)}{(z-a)^{n+1}}\,dz$$

이는 해석 함수가 무한히 미분 가능함을 보여줍니다!

4. 로랑 급수와 유수 정리

4.1 테일러 급수와 로랑 급수

**테일러 급수**: $f(z)$가 $z = z_0$ 근방에서 해석적이면:

$$f(z) = \sum_{n=0}^{\infty}a_n(z-z_0)^n, \quad a_n = \frac{f^{(n)}(z_0)}{n!}$$

**로랑 급수(Laurent Series)**: $f(z)$가 고리 영역 $r_1 < |z - z_0| < r_2$에서 해석적이면:

$$f(z) = \sum_{n=-\infty}^{\infty}a_n(z-z_0)^n = \sum_{n=0}^{\infty}a_n(z-z_0)^n + \sum_{n=1}^{\infty}\frac{b_n}{(z-z_0)^n}$$

음의 거듭제곱 부분을 **주요부(principal part)**라고 합니다.

4.2 특이점 분류

$f(z)$가 $z = z_0$에서 해석적이지 않은 경우:

**제거가능 특이점(Removable Singularity)**: 로랑 급수에 음의 거듭제곱 항이 없음.

$$\frac{\sin z}{z} = 1 - \frac{z^2}{6} + \frac{z^4}{120} - \cdots \quad \text{(}z=0\text{은 제거가능)}$$

$z = 0$에 함수값 1을 부여하면 해석적이 됩니다.

**m극(Pole of Order m)**: 유한개의 음의 거듭제곱 항.

$$f(z) = \frac{1}{(z-z_0)^m}(\text{해석 함수}) \quad \text{(m극)}$$

**본질적 특이점(Essential Singularity)**: 무한히 많은 음의 거듭제곱 항.

$$e^{1/z} = 1 + \frac{1}{z} + \frac{1}{2!z^2} + \cdots \quad \text{(}z=0\text{은 본질적 특이점)}$$

피카르 정리: 본질적 특이점 근방에서 함수값이 거의 모든 복소수를 취합니다.

4.3 유수(Residue)와 유수 정리

**유수의 정의**: $f(z)$의 로랑 급수에서 $(z-z_0)^{-1}$ 항의 계수.

$$\text{Res}[f, z_0] = b_1 = \frac{1}{2\pi i}\oint_{|z-z_0|=\epsilon} f(z)\,dz$$

**유수 계산법**:

단순극 ($m=1$):

$$\text{Res}[f, z_0] = \lim_{z\to z_0}(z - z_0)f(z)$$

유리함수 $f = p/q$ (단순극):

$$\text{Res}[f, z_0] = \frac{p(z_0)}{q'(z_0)}$$

m중극:

$$\text{Res}[f, z_0] = \frac{1}{(m-1)!}\lim_{z\to z_0}\frac{d^{m-1}}{dz^{m-1}}\left[(z-z_0)^m f(z)\right]$$

**유수 정리(Residue Theorem)**:

$$\oint_C f(z)\,dz = 2\pi i \sum_k \text{Res}[f, z_k]$$

$z_k$는 $C$ 내부의 모든 특이점.

4.4 유수 정리로 실수 적분 계산

복소 해석학의 가장 강력한 응용 중 하나: 어려운 실수 적분을 쉽게 계산합니다.

**예제 1**: $\displaystyle I = \int_{-\infty}^{\infty}\frac{dx}{1+x^2}$

$f(z) = 1/(1+z^2) = 1/[(z+i)(z-i)]$

상반 평면에서 반원 경로를 사용합니다. $z = i$가 상반 평면의 단순극:

$$\text{Res}[f, i] = \lim_{z\to i}\frac{z-i}{(z+i)(z-i)} = \frac{1}{2i}$$

반원 호의 기여는 $R \to \infty$에서 0이 됩니다 (조르당 보조정리).

$$I = 2\pi i \cdot \frac{1}{2i} = \pi$$

따라서 $\displaystyle\int_{-\infty}^{\infty}\frac{dx}{1+x^2} = \pi$ (검증: $\arctan(x)\Big|_{-\infty}^{\infty} = \pi$)

**예제 2**: $\displaystyle I = \int_0^{\infty}\frac{\cos x}{x^2+a^2}dx \quad (a > 0)$

$$f(z) = \frac{e^{iz}}{z^2+a^2} = \frac{e^{iz}}{(z+ia)(z-ia)}$$

상반 평면의 극점: $z = ia$

$$\text{Res}[f, ia] = \frac{e^{i(ia)}}{2ia} = \frac{e^{-a}}{2ia}$$

$$\int_{-\infty}^{\infty}\frac{e^{ix}}{x^2+a^2}dx = 2\pi i \cdot \frac{e^{-a}}{2ia} = \frac{\pi e^{-a}}{a}$$

실부만 취하면:

$$I = \int_0^{\infty}\frac{\cos x}{x^2+a^2}dx = \frac{\pi e^{-a}}{2a}$$

**예제 3**: $\displaystyle\int_0^{2\pi}\frac{d\theta}{2+\cos\theta}$

$z = e^{i\theta}$, $dz = iz\,d\theta$, $\cos\theta = (z + z^{-1})/2$:

$$\int_0^{2\pi}\frac{d\theta}{2+\cos\theta} = \oint_{|z|=1}\frac{dz/iz}{2+(z+z^{-1})/2} = \oint\frac{2\,dz}{i(z^2+4z+1)}$$

극점: $z = -2 \pm \sqrt{3}$. 단위원 내부: $z_1 = -2 + \sqrt{3}$

$$= 2\pi i \cdot \frac{2}{i \cdot 2(z_1 - z_2)} = \frac{2\pi}{\sqrt{3}}$$

4.5 역 라플라스 변환에의 응용

**브로미치 적분(Bromwich Integral)**:

$$f(t) = \frac{1}{2\pi i}\int_{\sigma-i\infty}^{\sigma+i\infty}F(s)e^{st}\,ds$$

이는 $s$ 평면에서 수직선을 따른 경로 적분으로, 왼쪽의 모든 극점을 포함하는 반원으로 경로를 닫으면 유수 정리 적용이 가능합니다:

$$f(t) = \sum_k \text{Res}\left[F(s)e^{st}, s_k\right]$$

**예시**: $F(s) = 1/(s^2+\omega^2)$의 역 라플라스 변환

극점: $s = \pm i\omega$

$$\text{Res}\left[\frac{e^{st}}{s^2+\omega^2}, i\omega\right] = \frac{e^{i\omega t}}{2i\omega}$$

$$\text{Res}\left[\frac{e^{st}}{s^2+\omega^2}, -i\omega\right] = \frac{e^{-i\omega t}}{-2i\omega}$$

$$f(t) = \frac{e^{i\omega t} - e^{-i\omega t}}{2i\omega} = \frac{\sin\omega t}{\omega}$$

확인: $\mathcal{L}\{\sin\omega t/\omega\} = 1/(s^2+\omega^2)$ ✓

5. Z-변환

5.1 정의와 수렴 영역

이산 시간 신호 $x[n]$의 Z-변환:

$$X(z) = \mathcal{Z}\{x[n]\} = \sum_{n=-\infty}^{\infty}x[n]z^{-n}$$

$z = re^{j\Omega}$는 복소 변수. 수렴 조건: $\sum|x[n]||z|^{-n} < \infty$

**수렴 영역(ROC, Region of Convergence)**:

- 단측 인과 신호: $|z| > r_{\max}$ (극점의 밖)

- 단측 반인과 신호: $|z| < r_{\min}$ (극점의 안)

- 양측 신호: 고리 영역 $r_1 < |z| < r_2$

5.2 주요 Z-변환 쌍

**단위 임펄스**:

$$x[n] = \delta[n] \Rightarrow X(z) = 1, \quad \text{모든 } z$$

**단위 계단**:

$$x[n] = u[n] \Rightarrow X(z) = \frac{z}{z-1} = \frac{1}{1-z^{-1}}, \quad |z| > 1$$

**지수 신호**:

$$x[n] = a^n u[n] \Rightarrow X(z) = \frac{z}{z-a} = \frac{1}{1-az^{-1}}, \quad |z| > |a|$$

**정현파**:

$$x[n] = \cos\Omega_0 n \cdot u[n] \Rightarrow X(z) = \frac{z(z-\cos\Omega_0)}{z^2 - 2z\cos\Omega_0 + 1}, \quad |z| > 1$$

$$x[n] = \sin\Omega_0 n \cdot u[n] \Rightarrow X(z) = \frac{z\sin\Omega_0}{z^2 - 2z\cos\Omega_0 + 1}, \quad |z| > 1$$

**단위 램프**:

$$x[n] = nu[n] \Rightarrow X(z) = \frac{z}{(z-1)^2}, \quad |z| > 1$$

5.3 Z-변환의 성질

**선형성**:

$$\mathcal{Z}\{ax[n] + by[n]\} = aX(z) + bY(z)$$

**시간 이동**:

$$\mathcal{Z}\{x[n-k]\} = z^{-k}X(z)$$

$z^{-1}$이 단위 지연 연산자입니다. 차분 방정식을 대수 방정식으로!

**z 스케일링** (주파수 이동):

$$\mathcal{Z}\{a^n x[n]\} = X(z/a)$$

**시간 반전**:

$$\mathcal{Z}\{x[-n]\} = X(z^{-1})$$

**합성곱(Z-변환의 핵심)**:

$$\mathcal{Z}\{x[n]*h[n]\} = X(z)H(z)$$

LTI 시스템 분석의 핵심: 합성곱이 곱셈으로!

**초기값 정리**:

$$x[0] = \lim_{z\to\infty} X(z)$$

**최종값 정리**:

$$\lim_{n\to\infty} x[n] = \lim_{z\to 1}(z-1)X(z)$$

5.4 역 Z-변환

**부분 분수법**:

$$X(z) = \frac{B(z)}{A(z)} = \sum_k \frac{A_k z}{z - p_k}$$

$p_k$는 극점, $A_k = [(z-p_k)X(z)/z]_{z=p_k}$

**예제**: $X(z) = \frac{z^2}{(z-1)(z-0.5)}$

$$\frac{X(z)}{z} = \frac{z}{(z-1)(z-0.5)} = \frac{A}{z-1} + \frac{B}{z-0.5}$$

$$A = \left.\frac{z}{z-0.5}\right|_{z=1} = 2, \quad B = \left.\frac{z}{z-1}\right|_{z=0.5} = -1$$

$$X(z) = \frac{2z}{z-1} - \frac{z}{z-0.5}$$

$$x[n] = 2u[n] - (0.5)^n u[n] = [2 - (0.5)^n]u[n]$$

**멱급수 전개법** (장제법):

$$X(z) = x[0] + x[1]z^{-1} + x[2]z^{-2} + \cdots$$

$X(z)$를 $z^{-1}$의 멱급수로 전개하면 직접 $x[n]$을 읽을 수 있습니다.

5.5 Z-변환으로 차분 방정식 풀기

**예제**: $y[n] - 0.5y[n-1] = x[n]$, 초기 정지 상태, $x[n] = u[n]$

Z-변환 적용 (초기조건 0):

$$Y(z) - 0.5z^{-1}Y(z) = X(z) = \frac{z}{z-1}$$

$$Y(z)(1 - 0.5z^{-1}) = \frac{z}{z-1}$$

$$Y(z) = \frac{z/(z-1)}{1 - 0.5z^{-1}} = \frac{z^2}{(z-1)(z-0.5)}$$

부분 분수로 역변환 (위 예제와 동일):

$$y[n] = 2u[n] - (0.5)^n u[n] = [2 - (0.5)^n]u[n]$$

$n \to \infty$에서 $y[\infty] = 2$ (최종값 정리로 확인: $(z-1)\cdot z^2/[(z-1)(z-0.5)]|_{z=1} = 1/0.5 = 2$)

5.6 디지털 필터 설계

**전달 함수 H(z)**:

LTI 시스템의 출력-입력 비:

$$H(z) = \frac{Y(z)}{X(z)} = \frac{b_0 + b_1 z^{-1} + \cdots + b_M z^{-M}}{1 + a_1 z^{-1} + \cdots + a_N z^{-N}}$$

영점(zero): $H(z) = 0$인 $z$ 값

극점(pole): $H(z) = \infty$인 $z$ 값

**안정성 조건**: 모든 극점이 단위원 내부에 있어야 합니다.

$$\text{안정} \Leftrightarrow \text{모든 극점 } p_k: |p_k| < 1$$

**FIR 필터** (유한 임펄스 응답):

$$H(z) = b_0 + b_1 z^{-1} + \cdots + b_M z^{-M}$$

극점이 원점에만 있어 항상 안정. 선형 위상 특성 가능.

**IIR 필터** (무한 임펄스 응답):

$$H(z) = \frac{B(z)}{A(z)}$$

극점이 단위원 내부에 있으면 안정. 적은 계수로 날카로운 특성 구현 가능.

5.7 Python으로 디지털 필터 설계 및 분석

from scipy import signal

1. IIR 필터: 버터워스 저역통과

N_order = 4 # 필터 차수

Wn = 0.2 # 정규화 차단 주파수 (0~1, 1 = Nyquist)

b, a = signal.butter(N_order, Wn, btype='low')

print("버터워스 LPF 계수:")

print(f" b = {b}")

print(f" a = {a}")

2. 주파수 응답

w, h = signal.freqz(b, a, worN=2048)

3. 극-영점 도표

zeros, poles, gain = signal.tf2zpk(b, a)

print(f"\n영점: {zeros}")

print(f"극점: {poles}")

print(f"이득: {gain:.4f}")

print(f"극점 크기: {np.abs(poles)}")

fig, axes = plt.subplots(2, 2, figsize=(14, 10))

주파수 응답 (크기)

axes[0, 0].plot(w/np.pi, 20*np.log10(abs(h) + 1e-15), 'b-', linewidth=2)

axes[0, 0].axhline(y=-3, color='r', linestyle='--', label='-3dB')

axes[0, 0].set_xlabel('정규화 주파수 (x pi rad/샘플)')

axes[0, 0].set_ylabel('크기 (dB)')

axes[0, 0].set_title('버터워스 LPF 주파수 응답 (크기)')

axes[0, 0].set_xlim([0, 1])

axes[0, 0].set_ylim([-80, 5])

axes[0, 0].legend()

axes[0, 0].grid(True, alpha=0.3)

위상 응답

angles = np.unwrap(np.angle(h))

axes[0, 1].plot(w/np.pi, angles*180/np.pi, 'g-', linewidth=2)

axes[0, 1].set_xlabel('정규화 주파수 (x pi rad/샘플)')

axes[0, 1].set_ylabel('위상 (도)')

axes[0, 1].set_title('버터워스 LPF 위상 응답')

axes[0, 1].set_xlim([0, 1])

axes[0, 1].grid(True, alpha=0.3)

극-영점 도표

unit_circle = np.exp(1j * np.linspace(0, 2*np.pi, 200))

axes[1, 0].plot(unit_circle.real, unit_circle.imag, 'k--', alpha=0.5)

axes[1, 0].scatter(zeros.real, zeros.imag, s=100, marker='o',

color='blue', zorder=5, label='영점')

axes[1, 0].scatter(poles.real, poles.imag, s=100, marker='x',

color='red', linewidths=2, zorder=5, label='극점')

axes[1, 0].axhline(0, color='gray', alpha=0.3)

axes[1, 0].axvline(0, color='gray', alpha=0.3)

axes[1, 0].set_xlabel('실수부')

axes[1, 0].set_ylabel('허수부')

axes[1, 0].set_title('극-영점 도표 (z 평면)')

axes[1, 0].legend()

axes[1, 0].grid(True, alpha=0.3)

axes[1, 0].set_aspect('equal')

임펄스 응답

imp = np.zeros(50)

imp[0] = 1.0

h_imp = signal.lfilter(b, a, imp)

axes[1, 1].stem(h_imp, markerfmt='bo', linefmt='b-', basefmt='k-')

axes[1, 1].set_xlabel('샘플 n')

axes[1, 1].set_ylabel('h[n]')

axes[1, 1].set_title('임펄스 응답 (IIR 무한)')

axes[1, 1].grid(True, alpha=0.3)

plt.tight_layout()

plt.savefig('digital_filter_analysis.png', dpi=150)

plt.show()

5.8 FIR vs IIR 필터 비교

from scipy import signal

FIR 필터 (윈도우 방법)

N_fir = 50

Wn = 0.2

h_fir = signal.firwin(N_fir + 1, Wn, window='hamming')

IIR 필터 (버터워스)

b_iir, a_iir = signal.butter(6, Wn, btype='low')

주파수 응답 비교

w_fir, H_fir = signal.freqz(h_fir, [1], worN=2048)

w_iir, H_iir = signal.freqz(b_iir, a_iir, worN=2048)

fig, axes = plt.subplots(1, 2, figsize=(14, 5))

axes[0].plot(w_fir/np.pi, 20*np.log10(abs(H_fir)+1e-15),

'b-', linewidth=2, label=f'FIR (N={N_fir})')

axes[0].plot(w_iir/np.pi, 20*np.log10(abs(H_iir)+1e-15),

'r-', linewidth=2, label='IIR 버터워스 6차')

axes[0].set_xlabel('정규화 주파수')

axes[0].set_ylabel('크기 (dB)')

axes[0].set_title('FIR vs IIR 주파수 응답')

axes[0].set_xlim([0, 1])

axes[0].set_ylim([-80, 5])

axes[0].legend()

axes[0].grid(True, alpha=0.3)

위상 응답 비교 (FIR의 선형 위상 특성)

ph_fir = np.unwrap(np.angle(H_fir))

ph_iir = np.unwrap(np.angle(H_iir))

axes[1].plot(w_fir/np.pi, ph_fir*180/np.pi,

'b-', linewidth=2, label='FIR (선형 위상)')

axes[1].plot(w_iir/np.pi, ph_iir*180/np.pi,

'r-', linewidth=2, label='IIR (비선형 위상)')

axes[1].set_xlabel('정규화 주파수')

axes[1].set_ylabel('위상 (도)')

axes[1].set_title('FIR vs IIR 위상 응답')

axes[1].set_xlim([0, 0.5])

axes[1].legend()

axes[1].grid(True, alpha=0.3)

plt.tight_layout()

plt.savefig('fir_vs_iir.png', dpi=150)

plt.show()

print("계수 개수 비교:")

print(f" FIR: {len(h_fir)} 계수")

print(f" IIR: b={len(b_iir)}, a={len(a_iir)} 계수 합계 {len(b_iir)+len(a_iir)}")

6. 라플라스 변환과 Z-변환의 대응

6.1 s 평면과 z 평면의 관계

$$z = e^{sT_s}, \quad s = \frac{1}{T_s}\ln z$$

$s = \sigma + j\omega$에서:

$$z = e^{\sigma T_s}e^{j\omega T_s} = e^{\sigma T_s}\angle(\omega T_s)$$

| s 평면 특성 | z 평면 특성 |

| -------------------------------------- | ------------- | --- | ---- |

| $j\omega$ 축 ($\sigma = 0$) | 단위원 $ | z | = 1$ |

| 좌반평면 ($\sigma < 0$) | 단위원 내부 $ | z | < 1$ |

| 우반평면 ($\sigma > 0$) | 단위원 외부 $ | z | > 1$ |

| DC ($s = 0$) | $z = 1$ |

| 나이퀴스트 주파수 ($\omega = \pi/T_s$) | $z = -1$ |

**안정성 대응**:

- 연속: 모든 극점이 좌반평면 → 이산: 모든 극점이 단위원 내부

6.2 쌍일차 변환 (Bilinear Transform)

아날로그 필터를 디지털 필터로 변환하는 방법:

$$s = \frac{2}{T_s}\cdot\frac{z-1}{z+1}$$

주파수 워핑(frequency warping) 발생: $\omega_{analog} = \frac{2}{T_s}\tan\!\left(\frac{\Omega_{digital}}{2}\right)$

사전 워핑으로 보정 후 설계합니다.

from scipy import signal

아날로그 버터워스 프로토타입

N = 4 # 필터 차수

Wn_analog = 2 * np.pi * 1000 # 1000 Hz 아날로그 차단 주파수

z_a, p_a, k_a = signal.buttap(N)

b_analog, a_analog = signal.zpk2tf(z_a, p_a, k_a)

b_analog, a_analog = signal.lp2lp(b_analog, a_analog, Wn_analog)

쌍일차 변환으로 디지털 필터 변환

fs = 8000 # 샘플링 주파수

b_digital, a_digital = signal.bilinear(b_analog, a_analog, fs)

print("아날로그 필터 극점:", np.roots(a_analog))

print("디지털 필터 극점:", np.roots(a_digital))

print("디지털 극점 크기:", np.abs(np.roots(a_digital)))

7. 제어 시스템에서의 응용

7.1 전달 함수와 안정성 분석

연속 시스템 전달 함수:

$$G(s) = \frac{K(s+z_1)(s+z_2)\cdots}{(s+p_1)(s+p_2)\cdots}$$

**루스-허르비츠 판별법(Routh-Hurwitz Criterion)**:

특성 다항식 $a_n s^n + a_{n-1}s^{n-1} + \cdots + a_0$의 루스 배열을 이용해 우반 평면의 극점 수를 판별합니다.

**나이퀴스트 판별법**:

$G(j\omega)$의 나이퀴스트 선도에서 $(-1, 0)$ 점의 감싸기 횟수로 안정성 판별.

7.2 이산 제어 시스템

디지털 제어기의 전달 함수 $C(z)$:

**PID 디지털 구현 (후방 오일러 근사)**:

$$C(z) = K_p + K_i\frac{T_s z}{z-1} + K_d\frac{z-1}{T_s z}$$

정리 및 다음 단계

이번 글에서 다룬 내용:

1. **복소수 체계**: 직교형, 극형, 오일러 공식, 드 무아브르, 페이저 해석, 임피던스

2. **복소함수와 해석 함수**: 복소 미분, 코시-리만 방정식, 조화 함수

3. **복소 적분**: 경로 적분, 코시 정리, 코시 공식

4. **로랑 급수와 유수 정리**: 특이점 분류, 유수 계산, 실수 적분 응용, 역 라플라스

5. **Z-변환**: 정의, 수렴 영역, 주요 변환쌍, 차분 방정식 풀기

6. **디지털 필터 설계**: FIR/IIR, 극-영점 도표, 안정성, 쌍일차 변환

7. **s 평면 vs z 평면**: 안정성 조건 대응

다음 편에서는 **수치해석(Numerical Methods)**을 다룹니다. 방정식 풀기, 수치 미분/적분, ODE 수치 풀이, 선형 시스템, 보간까지 Python으로 완전 구현합니다.

참고 자료

- Churchill, R. & Brown, J. "Complex Variables and Applications", 9th Edition

- Oppenheim, A. & Schafer, R. "Discrete-Time Signal Processing", 3rd Edition

- Proakis, J. & Manolakis, D. "Digital Signal Processing", 4th Edition

- Ogata, K. "Modern Control Engineering", 5th Edition

- [SciPy 신호처리 공식 문서](https://docs.scipy.org/doc/scipy/reference/signal.html)

현재 단락 (1/372)

전자/제어 공학에서 복소수는 단순한 수학적 추상이 아닙니다. 교류 회로 분석의 페이저(phasor), 라플라스 변환의 $s = \sigma + j\omega$, Z-변환의 단위원,...

작성 글자: 0원문 글자: 15,541작성 단락: 0/372