REMI Lab강의 노트

Signals and Systems L03

3장 연속시간 시스템과 컨볼루션

행렬과 가역성

샘플 NN개에 작용하는 선형 시스템을 숫자 표 하나로 적을 수 있을까? 그 표를 보고 출력에서 입력을 되찾을 수 있는지도 알 수 있을까?

행렬로 쓴 시스템

이산 신호 NN개 샘플은 길이 NN인 벡터이다. 입력 샘플 NN개를 출력 샘플 MM개로 보내는 선형 시스템은 M×NM\times N 행렬 하나로 나타나며, 출력 길이도 NN이면 N×NN\times N이다. kk번째 원소만 1이고 나머지는 0인 단위벡터 eke_k로 입력을 x=∑kx[k]ekx=\sum_k x[k]e_k라 쓰면, 선형성에 따라 출력은 ∑kx[k]H{ek}\sum_k x[k]\mathcal H\{e_k\}이다. 따라서 길이 MM인 응답 H{ek}\mathcal H\{e_k\}를 열 kk에 놓은 행렬이 모든 입력의 출력을 계산한다.

현재 샘플에서 바로 전 샘플을 빼는 차분 시스템이 그 예이다.

y[n]=x[n]−x[n−1]y[n]=x[n]-x[n-1]

입력은 n=0n=0 전에는 0이라고 둔다(x[−1]=0x[-1]=0). 그러면 y[0]=x[0]y[0]=x[0], y[1]=x[1]−x[0]y[1]=x[1]-x[0], y[2]=x[2]−x[1]y[2]=x[2]-x[1], … 이고, 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}

이 행렬을 HH라고 쓰면 y=Hxy=Hx이다. 일반적인 NN에서도 대각선은 1, 바로 아래 원소는 −1, 나머지는 0이다. 벡터의 마지막 원소는 y[N−1]y[N-1], x[N−1]x[N-1]이다.

행렬은 두 방향으로 해석한다. 행 nn은 출력 y[n]y[n] 하나를 만들 때 어떤 입력에 어떤 가중치를 곱하는지 보여 준다. (n−1)(n-1)열에 −1, nn열에 1이 있다. 열 kk는 입력 샘플 x[k]x[k] 하나가 출력의 어디로 퍼지는지 보여 준다. kk행에 1, (k+1)(k+1)행에 −1이 있으므로, kk에 놓인 임펄스의 응답 [1,−1][1,-1]을 kk만큼 옮긴 것이다. 이 시스템은 시불변이므로 모든 행이 같은 무늬를 한 열씩 옮긴 모양이다. 선형이지만 시변인 시스템도 행렬로 쓸 수 있고, 그때는 행마다 무늬가 다르다. y[n]=x[n]2y[n]=x[n]^2처럼 비선형인 시스템은 행렬로 쓸 수 없다.

예를 들어 x=[1, 1.5, 1.5, 0.5]x=[1,\ 1.5,\ 1.5,\ 0.5]이면 y=[1, 0.5, 0, −1]y=[1,\ 0.5,\ 0,\ -1]이다. x[2]=x[1]x[2]=x[1]이라 입력이 변하지 않은 n=2n=2에서 출력이 0이 된다. 차분 시스템은 변화를 재는 시스템이다.

N×NN\times N 행렬은 출력의 처음 NN개만 담는다. 마지막 입력 x[N−1]x[N-1]은 샘플 하나 뒤의 y[N]=−x[N−1]y[N]=-x[N-1]에도 영향을 주므로, 출력을 끝까지 담으려면 (N+1)×N(N+1)\times N 행렬이 필요하다.

위 예를 5×45\times4 행렬로 계산하면 행 n=2n=2는 [0, −1, 1, 0][0,\,-1,\,1,\,0]이고, 그 행과 xx의 곱의 합이 y[2]=0y[2]=0이다. 열로 보면 입력 샘플 x[k]x[k] 하나가 출력에 남기는 몫(열 kk)을 모두 더한 것이 출력이고, n=2n=2 자리에서는 x[1]x[1]의 몫 −1.5-1.5와 x[2]x[2]의 몫 1.51.5가 서로 지운다. 그림의 표가 y=Hxy=Hx이고, '입력 쪽 · 열 k'의 줄들이 열마다의 몫, 그 아래 '합 y[n]'이 몫을 모두 더한 출력이다. 그림에서 nn을 옮기거나 재생을 누르면 표의 행 하나와 그 행이 만든 y[n]y[n]이 함께 강조되고, 그 행의 곱과 합이 표 아래 식에 적힌다.

차분 시스템의 y = Hx이다. 표의 칸은 원소 H[n,k]를 스템으로 그린 것으로, 위로 서면 양수, 아래로 서면 음수이고 길이가 크기이며, 값은 표 아래 식에 적힌다.

해 보기

  1. 마지막 행 n=4n=4에서 y[4]y[4]가 어느 입력에서 오는지 확인하라.
    관찰

    행 4에는 k=3k=3 열의 −1만 있어 y[4]=−x[3]=−0.5y[4]=-x[3]=-0.5이다. 4×44\times4 행렬에는 없던 출력으로, 마지막 입력이 샘플 하나 뒤까지 영향을 준다.

  2. 열 k=0k=0을 읽고, 샘플 x[0]x[0] 하나가 출력에 무엇을 남기는지 확인하라.
    관찰

    표의 열 0은 [1, −1, 0, 0, 0][1,\,-1,\,0,\,0,\,0]이고, '입력 쪽' 첫 줄에서 x[0]=1x[0]=1이 n=0n=0에 +1+1, n=1n=1에 −1-1을 남긴다. 샘플 하나의 응답 [1,−1][1,-1]이 그 자리에 놓인 것이다.

  3. 변하지 않는 입력을 넣으면 출력이 어디에서 0이 아닌지 확인하라.
    관찰

    출력이 [1, 0, 0, 0, −1][1,\,0,\,0,\,0,\,-1]이다. 입력이 그대로인 n=1,2,3n=1,2,3에서는 0이고, 입력이 시작하고 끝나는 두 곳에서만 0이 아니다.

가역성

어떤 시스템은 뒤에 다른 시스템을 붙여 입력을 되돌릴 수 있고, 어떤 시스템은 그럴 수 없다. 둘은 무엇이 다를까?

가역 시스템은 출력에서 입력을 되찾을 수 있다. 시스템 H\mathcal H 뒤에 H−1\mathcal H^{-1}을 이어 붙였을 때 입력이 그대로 나오면 H−1\mathcal H^{-1}을 H\mathcal H의 역시스템이라고 한다. H−1H\mathcal H^{-1}\mathcal H가 항등 시스템(y=xy=x)이 된다.

x → H  H{x} → H−1  xx\ \xrightarrow{\ \mathcal H\ }\ \mathcal H\{x\}\ \xrightarrow{\ \mathcal H^{-1}\ }\ x

역시스템이 있으려면 서로 다른 입력이 늘 서로 다른 출력을 내야 한다. y(t)=2x(t)y(t)=2x(t)는 x(t)=y(t)/2x(t)=y(t)/2로 되돌릴 수 있다. y(t)=x(t)2y(t)=x(t)^2는 xx와 −x-x가 같은 출력을 내므로 되돌릴 수 없다.

행렬로 쓴 시스템에서는 역행렬이 곧 역시스템이다. 정사각 행렬 AA의 역행렬은 det⁡A≠0\det A\neq0일 때 있다. 차분 시스템의 행렬 HH는 대각선과 그 아래만 채워진 삼각 행렬이라 행렬식이 대각 원소의 곱 11이다. 따라서 가역이고, 역시스템은 누적 합이다.

x[n]=y[0]+y[1]+⋯+y[n]x[n]=y[0]+y[1]+\cdots+y[n]

직접 확인해 보기. N=4N=4 차분 행렬의 역행렬을 구하고, 곱하면 단위행렬이 되는지 확인하라.

풀이

역행렬은 대각선과 그 아래가 모두 1인 행렬이다.

H−1=[1000110011101111]H^{-1}=\begin{bmatrix}1&0&0&0\\1&1&0&0\\1&1&1&0\\1&1&1&1\end{bmatrix}

H−1H^{-1}의 행 nn과 HH의 열 kk를 곱해 보면, k<nk<n이면 1−1=01-1=0, k=nk=n이면 11, k>nk>n이면 00이다. 따라서 H−1HH^{-1}H는 단위행렬이다.

누적 합으로 보면 y[0]+⋯+y[n]=x[0]+(x[1]−x[0])+⋯+(x[n]−x[n−1])=x[n]y[0]+\cdots+y[n]=x[0]+(x[1]-x[0])+\cdots+(x[n]-x[n-1])=x[n]이다. 이웃한 항이 서로 지워진다.

행렬 [123456789]\begin{bmatrix}1&2&3\\4&5&6\\7&8&9\end{bmatrix}는 역행렬이 없다. 행렬식을 계산하면 1(45−48)−2(36−42)+3(32−35)=−3+12−9=01(45-48)-2(36-42)+3(32-35)=-3+12-9=0이다. 실제로 입력 [1,−2,1][1,-2,1]을 넣으면 출력이 [0,0,0][0,0,0]이어서, 0을 넣었을 때와 구별할 수 없다.

차분 행렬 HH의 열 kk가 나타내는 것을 고르라.

  1. (가) 출력 y[k]y[k] 하나를 만들 때 입력마다 곱하는 가중치
  2. (나) 입력 x[k]x[k]에서 바로 전 입력을 뺀 값
  3. (다) 입력 샘플 x[k]x[k] 하나가 출력의 어느 자리에 얼마만큼 남는지
풀이

답 (다) 입력 샘플 x[k]x[k] 하나가 출력의 어느 자리에 얼마만큼 남는지

  • (가) 그것은 행 kk이다.
  • (나) 그것은 출력 y[k]y[k] 하나의 값이다.

열 kk는 kk행에 1, (k+1)(k+1)행에 −1을 가진다. x[k]x[k]만 1이고 나머지가 0인 입력을 넣으면 출력이 바로 이 열이다. 곧 열 kk는 kk에 놓인 임펄스의 응답이다.

차분 시스템 y[n]=x[n]−x[n−1]y[n]=x[n]-x[n-1](x[−1]=0x[-1]=0)의 출력이 y=[2, −1, 0, 3]y=[2,\ -1,\ 0,\ 3]이었다. 입력 x[3]x[3]을 구하라.

풀이

답 4

역시스템은 누적 합이므로 x[3]=y[0]+y[1]+y[2]+y[3]=2−1+0+3=4x[3]=y[0]+y[1]+y[2]+y[3]=2-1+0+3=4이다. 입력 전체는 x=[2, 1, 1, 4]x=[2,\ 1,\ 1,\ 4]이고, 이것을 차분하면 [2, −1, 0, 3][2,\ -1,\ 0,\ 3]으로 돌아온다.