Impulse Response(복습)
LTI System의 특성을 우리에게 전달해 주는 가장 중요한 정보 중 하나이다. 이는 정의하기를,
$$h(n) \triangleq T \left (\delta (n) \right )$$
로 정의된다. 예를들어, <$y(n) = {1 \over 2}y(n-1) + {1 \over 3}(x(n) + x(n-1)))$> 인 시스템이 있을 때, 이 시스템의 impulse response를 구해야 하는 경우가 있을 것이다. 이는 Impulse Response의 정의에 따라 초기조건이 <$y(-1)= 0$>이 된다. 그리고 <$x(n) = \delta (n)$>으로 주어졌을 때, 이 값에 대응하는 출력신호 <$y(n)$>이 Impulse response가 된다는 것을 알 수 있다.
이렇게 LTI System에서의 Impulse를 구할 수 있다면, Impulse Response를 가지고, 아래와 같은 Convolution 연산을 통해 System에서 임의의 입력에 대한 출력을 구할 수 있다. (세 가지 방법이 존재한다)
$$y(n) = h(n) * x(n) \\ = \sum_{k=- \infty }^{\infty } x(k)h(n-k)$$
- 그림에 의한 방법
- 테이블에 의한 방법
- <$\delta$> - function에 의한 방법
Convolution(합성곱) 연산의 특징
Convolution은 연산이기 때문에 두개의 sequence 사이에서 어떤 계산을 하는 것이다. 이 계산 과정에서 몇 가지 원칙이 존재한다.
- <$h(n) * \delta (n) = h(n)$>
Impulse신호로 <$h(n)$>이 주어진다는 것은, 입력신호가 <$\delta(n)$>일 때 출력신호가 <$h(n)$>이 된다는 것과 마찬가지이다.
위 내용을 일반화 한다면, <$x(n) * \delta (n) = x(n)$> 이 된다.
이를 조금 더 확대해 생각해 본다면, <$x(n) * \delta (n-k) = x(n-k)$>가 된다. - <$x(n) * h(n) = h(n) * x(n)$> (교환법칙)
Convolution 연산은 연산의 순서를 바꾸어도 상관없다.
<$\qquad = \left ( h_1 (n) * h_2 (n) \right ) * x(n)$> - 결합법칙
위 그림에서 <$h_1$>과 <$h_2$>로 표현되는 두 개의 LPI System이 직렬연결 된 상황에서 직렬연결 된 시스템에 대한 등가시스템(equivalent system)을 구하고자 했을 때, 그 값은 각각의 impulse response를 convolution 시켜준 결과와 마찬가지이다.
<$y(n) = \left ( x(n) * h_1 (n) \right ) * h_2 (n)$>
<$\qquad = \left ( h_1 (n) * h_2 (n) \right ) * x(n)$> - 분배법칙
분배법칙은 병렬연결에서의 <$y(n)$>과 관련이 있다.
<$y(n) = h_1 * x + h_2 x$> 인데, Convlution 연산의 선형성을 이용하면 아래와 같이 표현할 수 있다.
<$\qquad = (h_1 + h_2) * x$>
이렇듯, 두 LTI System의 병렬연결 관계에서는 분배법칙이 성립된다.
Impuse Response의 형태
Causal LTI
$$y(n) \sum_{k = - \infty}^{infty}h(k) x(n-k)$$
<$n = n_0$>라는 기준시간이 있을 때, <$n_0$>기준시점에 대한 출력신호가 <$n \le n_0$>인 시점에서의 입력에 대해서만 영향을 받을 때, 우리는 이 System을 Causal System이라 부른다.
<$= \sum_{k = - \infty}^{-1}h(k)x(n_0 -k + \sum_{k = 0}^{infty}h(k)x(n_0 -k)$>
<$= h(-1)x(n_0 +1) + h(-2)x(n_0 +2) + \cdots$>
<$\quad +h(0)x(n_0) + h(1)x(n_0 -1) + \cdots$>
Causal System이기 위해서는 미래시점의 입력에 대해 영향을 받으면 안 된다. 따라서 이를 만족하기 위한 유일한 방법은 미래 입력들이 모두 0이 되어야 한다.
이를 바탕으로 아래 명제를 얻을 수 있다.
An LTI System is Causal if <$h(n) = 0, \ \forall n < 0$> 즉, causal system에 대응하는 impulse response는 <$n < 0$>인 모든 경우에, <$h(n) = 0$>이 된다. <$n \ge 0$>인 경우에만 <$h(n) \ne 0$>인 결과가 나온다. |
Stable LTI
LTI System은 아래와 같이 정의된다.
$$y(n) = \sum_{k=-\infty}^{\infty}h(k)x(n-k)$$
학부과정에서 다루는 Stable LTI System은 BIBO(Bounded Input Bounded Output) System이다.
BIBO(Bounded Input Bounded Output) 유한한 입력이 들어갔을 때, 출력 또한 유한하다! $$if\ |x(n)| < B_x, \ \forall n, \ then\ |y(n)| < B_y < \infty$$ |
BIBO안정성의 원리에 따라 위 LTI 정의에 절대값을 취해보면 (<$|A+B| \le |A| + |B|> 원리 사용)
$$|y(n)| = |\sum_{k=-\infty}^{\infty}h(k)x(n-k)| \le \sum_{k=-\infty}^{\infty}|h(k) \cdot |x(n-k)| < B_x \sum_{k}|h(k)| < \infty$$
위 결과는 유한해야 하기때문에, <$B_x$>의 값은 상수가 되기 때문에 양쪽을 나누어도 무한대는 그대로 무한대 이므로, 어떤 Stable System이 Stable 하기 위해서는 <$|h(n)|$>이라는 Impulse Response를 모두 절대값을 취하고 더라더라도 그 결과값이 유한해야 한다.
LTI System에 대한 두 가지 조건을 종합하면 다음과 같다.
|
Implementation of LTI System
이산시간(디지털) 시스템의 가장 큰 장점은 입출력 방정식이 주어졌을 때, 그것을 그대로 회로로 구현할 수 있다는 점이다. 아래와 같은 입출력 방정식을 갖는 LTI System이 있다고 하자.
$$y(n) = -a_1 y(n-1) + b_0 x(n) + b_1 x(n-1)$$
이를 구한한다고 하였을 때, 그 의미는 입출력 방정식을 대응하는 Block Diagram(혹은 Sugnal Flow Graph)을 그리라는 것을 뜻한다. 이산시간 시스템을 구현할 때 기본적으로 아래와 같은 세 개의 소자를 사용한다.
그림을 그리는 원칙: 좌측이 입력이고 출력은 우측이다.
이 원칙을 바탕으로 위 LTI System을 구현해보자. 대략 아래와 같이 표현될 수 있을 것이다.
Direct Form 1
위 다이어그램에서, Adder 연산자를 분리해 보자. 아래와 같이 표현될 수 있을 것이다. 이렇게 분리하게 되면, feed forward part(좌측)와 feed back part(우측)로 분리할 수 있다.
이때, feed forward의 결과(중간 신호)를 <$v(n)$>이라 할 때, 아래와 같이 두 개의 시스템으로 구분할 수 있다. 이렇게 두개의 LTI System의 직렬연결(feed forward and feed back 순서)로 구현할 수 있을 때, 이 구현을 Direct Form I 이라 부른다.
$$v(n) = b_0 x(n) + b_1 x(n-1) \\ y(n) = v(n) - a_1y(n-1)$$
Direct Form 2
이번에는 Direct Form 1에서 Feed forward와 feed back 부분의 위치를 서로 바꿔보자. 이 형태를 Direct Form II 라 부른다.
위 Direct Form II 그림에서, 중간지점의 신호를 <$w(n)$>이라 했을 때, 좌우 <$\xi ^{-1}$>은 모두 <$w(n)$>으로 동일하다. 따라서, 아래 그림으로 단순화 할 수 있다.
구현 종합
회로를 구현한다고 했을 때, Direct Form I과 Direct Form II의 소자 개수 등을 비교하여 최저비용으로 회로를 구현할 수 있을 것이다.
Corelation(상관도)
군사용 레이더 장비가 있다고 하자, 만약 레이더에서 임의의 송신신호<$T(t)$>를 발송한 뒤 타겟에 반사 후 되돌아 오는 경우 delay와 함께 회신신호 <$R(t)$>를 받게 되는데, delay를 분석하면 타겟의 거리를 감지할 수 있을 것이다. 그런데, <$R(t)$>의 경우, 물체에 반사되어 돌아오면서 왜곡된 신호이기 때문에 이 신호가 타겟에 의한 신호인지 아닌지 판단하기 어렵다. 이때 타겟의 존재여부를 판단하기 위해 <$T(t)$>와 <$R(t)$>간의 Corelation을 계산한다.
Corelation 의 예
사과의 당도 / 가을 날씨
Corelation의 정의
Cross-corelation
<$x(n), \ y(n)$>이 있을 때, Cross-corelation은
$$r_{xy}(l) \triangleq \sum_{k= -\infty}^{\infty}x(k)y(k-l) \cdots ①$$
의 형태로 표현할 수 있다. 그리고 위 정의에 사용된 <$l$>은 Lag 값이라 부르며 일종의 Delay 이다. (convolution과 비슷하지 않은가?)
Convolution 연산 식에 <$l$>을 대입해 보면,
$$x(l)*y(l) = \sum_{k=-\infty}^{\infty}x(k)y(l-k) \cdots ②$$
와 같이 표현될 수 있는데, Cross-corelation의 ���의인 ①은 아래와 같이 <$y(l)$>을 folding한 결과를 convolution한 결과와 같음을 알 수 있다.
$$r_{xy}(l) \triangleq \sum_{k= -\infty}^{\infty}x(k)y(k-l) \cdots ① \\ = x(l) * y(-l)$$
Cross-corelation은 두 개의 상이한 신호의 상관도를 측정하는 하나의 연산기법이다.
Auto-corelation
예를 들어, <$r_{xx}$>의 cross-corelation을 구해보면 아래와 같다.
$$r_{xx}(l) = \sum_{k} x(k)x(k-l)$$
이와 같은 경우를 Auto-corelation이라 부른다.
신호처리 학문에서는 auto-corelation과 cross-corelation은 자주 언급되는 개념이므로 꼭 알아두자
Corelation
그렇다면, ①에서, <$k$>대신 <$k+l$>을 대입해 보자
$$r_{xy}(l) \triangleq \sum_{k= -\infty}^{\infty}x(k+l)y(k) \cdots ③$$
③을 우리는 <$x$>와 <$y$>의 Corelation이라 한다.
<$r_{xy}(l)$>이 아니라 <$r_{yx}(l)$>인 경우는 어떨까? <$r_{xy}(l)$>를 folding 한 것과 같다.
$$r_{yx}(l) = \sum_{k= -\infty}^{\infty}x(k-l)y(k) \\ = r_{xy}(-l)$$
z-transform
FT(아날로그 영역에서의 FT) $$X(\Omega ) \triangleq \int_{-\infty}^{\infty}x(t)e^{-j\Omega t}dt$$ <$\Omega$>: 아날로그 영역에서의 주파수 |
LT |
DTFT(이산시간 영역에서의 FT) $$X(\omega) = \sum_{n=-\infty}^{\infty}x(n)e^{-j\omega n}$$ <$\omega$>: 이산시간영역에서의 주파수 |
z-transform $$X(\xi ) = \sum_{n=-\infty}^{\infty}x(n)\xi ^{-n}$$ <$\xi = re^{j\omega}$>이고, <$r=1$>이면, $$x(\xi)|_{\xi = e^{j\omega}} = X(\omega)$$ 가 된다. 이는 <$\xi$>-plane 에서 반지름이 1인 원이 된다. |
FT와 LT, DTFT와 z-transform을 별개의 것으로 보지 말고 하나로 연결해 보는 것을 권한다.