REMI Lab강의 노트

Wireless Embedded Systems E02

2장 복습: 복소수와 이산 신호

신호와 LTI 시스템

필터, 복조기처럼 표본을 받아 표본을 내놓는 처리 블록을 한 가지 방식으로 적을 수 있을까?

신호와 시스템

신호는 물리량을 시간의 함수로 적은 것이다. 연속시간 신호는 x(t)x(t), 이산시간 신호는 x[n]x[n]으로 쓴다. 흑백 영상은 두 좌표 (x,y)(x,y)마다 값이 하나 있는 신호이고, 동영상은 여기에 시간 좌표가 하나 더 붙는다. 시스템은 함수를 받아 함수를 내놓는 사상이다. 입력 sin⁡t\sin t에서 출력 sin⁡t2\sin t^2를 만드는 시스템은 y(t)=x(t2)y(t)=x(t^2)이다(신호 및 시스템 2장 신호와 시스템의 정의).

선형성과 시불변성

선형 시스템은 입력을 배율해 더한 결과가 출력을 배율해 더한 것과 같다. x1→y1x_1\to y_1, x2→y2x_2\to y_2이면 αx1+βx2→αy1+βy2\alpha x_1+\beta x_2\to\alpha y_1+\beta y_2이다. 신호가 벡터처럼 더해지고 배율된다는 뜻이다. 시불변 시스템은 입력을 t0t_0 늦추면 출력도 t0t_0 늦을 뿐이다. 늦추고 시스템을 거치든, 시스템을 거치고 늦추든 결과가 같다. 위의 y(t)=x(t2)y(t)=x(t^2)는 선형이지만 시불변이 아니다. 입력을 t0t_0 늦추면 출력은 x(t2−t0)x(t^2-t_0)인데, 출력을 t0t_0 늦춘 것은 x((t−t0)2)x((t-t_0)^2)이기 때문이다(선형성, 시불변성).

컨볼루션

선형이고 시불변인 LTI 시스템은 임펄스 응답 hh 하나로 정해진다. 입력을 늦춘 임펄스의 가중합으로 쓰면, 출력은 늦춘 임펄스 응답의 같은 가중합이다.

y(t)=(x∗h)(t)=∫−∞∞x(τ) h(t−τ) dτy(t)=(x*h)(t)=\int_{-\infty}^{\infty}x(\tau)\,h(t-\tau)\,d\tau

광자 검출기가 그 예이다. 광자 하나가 들어올 때마다 같은 모양의 펄스가 나오고, 출력은 광자가 들어온 시각마다 놓인 펄스의 합이다. 이산시간에서는 적분 대신 합 y[n]=∑kx[k] h[n−k]y[n]=\sum_k x[k]\,h[n-k]를 쓴다(신호 및 시스템 3장 임펄스 응답과 컨볼루션).

행렬로 쓴 LTI 시스템

표본 NN개는 길이 NN인 벡터이고, 선형 시스템은 N×NN\times N 행렬 HH 하나로 y=Hx\mathbf y=H\mathbf x가 된다. 현재 표본에서 바로 전 표본을 빼는 차분 시스템 y[n]=x[n]−x[n−1]y[n]=x[n]-x[n-1](x[−1]=0x[-1]=0)을 N=4N=4로 쓰면 다음과 같다.

[y[0]y[1]y[2]y[3]]=[1000−11000−11000−11][x[0]x[1]x[2]x[3]]\begin{bmatrix}y[0]\\y[1]\\y[2]\\y[3]\end{bmatrix} = \begin{bmatrix}1&0&0&0\\-1&1&0&0\\0&-1&1&0\\0&0&-1&1\end{bmatrix} \begin{bmatrix}x[0]\\x[1]\\x[2]\\x[3]\end{bmatrix}

시불변이므로 모든 행이 같은 무늬 [−1, 1][-1,\ 1]을 한 칸씩 옮긴 모양이다. y[n]=x[n]2y[n]=x[n]^2처럼 비선형인 시스템은 행렬로 쓸 수 없다. 실습 코드에서 np.convolve(x, h)로 거는 FIR 필터는 모두 이런 행렬 곱이다. np.convolve는 마지막 입력이 남기는 꼬리까지 담아 N+L−1N+L-1개(LL은 hh의 길이)를 내놓는다.

x = np.array([1, 1.5, 1.5, 0.5])
H = np.eye(4) - np.eye(4, k=-1)      # 대각선 1, 바로 아래 −1
H @ x                                # [1, 0.5, 0, -1]
np.convolve(x, [1, -1])              # [1, 0.5, 0, -1, -0.5]: 꼬리 한 칸이 더 있다

행렬 그림으로 행과 열을 따라가 보려면 신호 및 시스템 3장 행렬과 가역성을 본다.

신호 공간

벡터가 기저 벡터의 선형 결합으로 쓰이듯, 신호도 서로 직교하는 신호들의 선형 결합으로 쓸 수 있다. 기저로는 정현파와 복소 지수 말고도 [−1,1][-1,1]에서 서로 직교하는 Legendre 다항식 같은 함수가 쓰인다. 기저가 정규직교(서로 직교하고 크기가 1)이면 결합의 계수는 신호와 각 기저의 내적이다. 직교이기만 하면 그 내적을 기저의 크기 제곱으로 나눈다. DFT의 복소 지수는 크기 제곱이 NN이므로, X[k]X[k]는 신호와 기저의 내적이고 결합의 계수는 X[k]/NX[k]/N이다. 신호를 다른 기저의 계수로 바꿔 적는 것이 변환(transform)이고, DFT는 표본 NN개를 복소 지수 NN개와의 내적 NN개로 바꾸고, 여기에 1/N1/N을 곱한 값이 계수이다(신호 및 시스템 5장 직교 기저).