신호와 시스템 - 기본적인 디지털 신호 - 디지털 신호의 표현 방법 - 기본적인 디지털 신호의 연산 - 시스템의 정의 및 성질 - 디지털 컨볼류션 - 디지털 컨볼류션의 계산 방법 - 시스템 구성의 기본소자와 시스템의 연결 방법 - 선형 차분 방정식 - 안정 시스템
그림 2-1. (a) 연속신호 (b) 샘플링에 의한 이산신호 기본적인 디지털 신호 신호는 공기나 케이블과 같은 매체를 통하여 전달되는 파형 연속신호 (continuous-time signal) : 시간 축의 모든 값에 대하여 신호 함수가 정의되는 신호 아날로그신호 : 그 중에서도 특히 신호의 값도 연속인 신호 (정의가 조금 다르긴 하나 거의 같은 의미로 사용) 이산신호 (discrete-time signal), : 연속 신호에서 샘플링을 통하여 만들어지는 신호 디지털신호 : 그 중에서도 신호 값이 양자화(quantization)된 신호(정의가 다르긴 하나 거의 같은 의미로 사용) 연속신호의 샘플링을 통한 이산신호는 그림과 같이 나타낸다. 그림 2-1. (a) 연속신호 (b) 샘플링에 의한 이산신호
기본적인 디지털 신호 이 강의에서 앞으로 다루고자 하는 것은 이산신호와 그 신호들에 대한 처리이론에 대한 것이다. 이 강의에서 앞으로 다루고자 하는 것은 이산신호와 그 신호들에 대한 처리이론에 대한 것이다. 그러나 자연에 존재하는 대부분의 신호는 연속신호이므로 이산신호와 연속신호의 관계에 대하여 정확하게 이해할 필요가 있다. 이 두 신호의 관계는 주파수 영역의 해석이 반드시 필요하므로 3장에서 주파수 영역의 신호처리를 다룬 뒤에 4장에서 논하기로 한다. 이산신호는 x(t)의 연속신호를 샘플링하여 x(nT)를 얻고 이를 다시 시간영역에서 n으로 정의하여 x[n]으로 표시한다. 이 강의에서 연속신호는 ( )의 괄호를 사용하여 표시하고, 디지털신호는 [ ]의 괄호를 사용하여 표시하기로 한다. 일반적으로 n은 여러 가지 경우가 있다. 음악과 같은 연속신호에서 샘플링을 통하여 디지털 신호를 얻는다면 이 경우에 n은 시간의 의미. 사진의 연속신호에서 샘플링을 통하여 디지털 신호를 얻는다면 이 경우에 n은 화소(pixel)의 의미 디지털 신호처리 이론을 다루기에 앞서 먼저 다음과 같은 기본적인 신호들을 알아보기로 한다.
단위 임펄스 신호 단위 임펄스 신호(unit impulse signal)는 델타신호, 또는 줄여서 임펄스 신호라고도 한다. 임펄스 신호는 디지털 신호를 수학적으로 표현하는 데에 기본적으로 사용되며 디지털 신호처리에서 가장 중요. 임펄스 신호는 눈금 n이 0일 때에만 1의 값을 갖고, 그 외의 모든 점에서 0의 값을 갖는 신호이다. 즉, 의 괄호 안이 0일 때에만 1의 값을 갖게 된다. 다음 그림도 역시 임펄스 신호로서 이 k 만큼 지연된 신호. 임펄스 신호는 디지털 신호를 표현하는데 사용되며 시스템을 해석하는 데에도 매우 중요하게 사용. 그림 2-2. 단위 임펄스 신호 그림 2-3. 다른 종류의 단위 임펄스 신호
단위 계단 신호 단위 계단 신호(unit step signal)도 신호처리에서 매우 널리 사용되는 신호이다. 단위 계단 신호는 다음과 같은 식으로 나타낼 수 있다. 단위 계단 신호는 임의의 신호의 시작점을 제한하는 용도로 많이 사용된다. 그림 2-5 (a)와 같이 잡음 신호가 계속되다가 일정한 시점에서 유효한 신호가 시작되는 경우에 그림 2-5 (b)와 같은 단위 계단 신호를 곱하면 (c)와 같은 잡음이 제거된 신호를 얻을 수 있다. 그림 2-4. 단위 계단 신호
그림 2-5. (a) 잡음이 있는 신호 x[n] (b) 단위 계단 신호 u[n] (c) x[n]u[n]의 신호 단위 계단 신호를 사용하여 다음과 같은 단위 펄스 신호(unit pulse signal)라고 하는 신호를 정의할 수 있다. 위의 단위 펄스 신호는 으로 나타낼 수 있다. 이와 같은 단위 펄스 신호는 임의의 이산신호 가운데 관심 있는 시간영역을 적절히 제한할 수 있다. 즉, 매우 긴 이산신호 x[n]에서 n=0부터 n=N까지의 신호만 관심이 있으면 [n](u[n]-u[n-N])의 과정을 통해서 그 영역의 신호만을 표현할 수 있다. 그림 2-5. (a) 잡음이 있는 신호 x[n] (b) 단위 계단 신호 u[n] (c) x[n]u[n]의 신호 그림 2-6. 단위 펄스 신호
디지털 신호의 표현 방법 그림에 의한 표현 방법 디지털 신호는 아날로그 신호의 샘플링에 의해서 얻을 수 있으므로 아날로그 신호처럼 그림으로 표현할 수 있다. 디지털 신호는 다음 그림과 같이 막대사탕의 모양으로 나타낸다. 가로축은 샘플링 시간을 정수로 표시하며 막대사탕 옆에 샘플링 된 값을 적기도 한다. 위의 그림에서 보듯이 샘플링 인덱스는 정수로 표시되므로 원 신호인 아날로그 신호의 샘플링 주기에 대한 정보는 표시되지 않는다. 그림 2-7. 디지털 신호의 그림 표현
디지털 신호의 표현 방법 임펄스 신호에 의한 표현 방법 임의의 디지털 신호를 수학적으로 표현하기 위해서 임펄스 신호가 유용하게 이용된다. 신호 x[n]은 3개의 임펄스 신호의 합으로 나타내어진다. 따라서 다음과 같이 쓸 수 있다. 임의의 신호는 임펄스 신호의 가중 합으로 표시할 수 있음을 알 수 있다. 따라서 일반적으로 임의의 디지털 신호는 다음과 같이 나타낼 수 있다. 위의 식에서 x[k]는 인덱스 n이 k일 때의 신호 값 즉 가중치임을 알 수 있다. 임의의 이산신호가 위와 같이 임펄스 신호의 가중 합으로 표시될 수 있다는 것은 시스템의 해석의 중요한 의미를 갖는다. 그림 2-8. 디지털 신호의 그림 표현
디지털 신호의 표현 방법 괄호를 사용한 표현 방법 그림이나 임펄스 신호를 사용하는 디지털 신호의 표현 방법보다 더욱 빠르게 나타낼 수 있는 방법이 괄호를 사용하여 표현하는 방법이다. 앞의 예제를 괄호를 사용하여 나타내면 다음과 같다. 신호의 값과 값 사이는 쉼표로 구분하며, 원점에서의 샘플 값은 화살표를 사용 샘플의 수가 몇 개밖에 안 되는 경우에 이 방법이 가장 빨리 신호를 나타낼 수 있다. [ 예제 2.1] 다음의 디지털 신호를 괄호를 사용하여 나타내시오. (풀이) a) 는 다음과 같이 괄호를 사용하여 쉽게 나타낼 수 있다. 그러나 b) 의 신호는 괄호를 사용하면 0의 값이 너무나 많이 들어가므로 효과적으로 표현할 수 없다. 따라서 b) 와 같은 신호는 임펄스 신호를 사용하여 표현하는 것이 효과적이다.
그림 2-9. 이산신호의 쉬프트 연산 (a) 원 신호 ,(b)우로 3 쉬프트 연산, (c) 좌로 2 쉬프트 연산 기본적인 디지털 신호의 연산 쉬프트 연산 다음 그림 2-9의 예를 사용하여 쉬프트 동작을 알아보기로 하자. 그림 2-9 (b)는 원 신호 x[n]을 오른쪽으로 3만큼 쉬프트 특히 시간 축의 경우에 오른쪽으로의 쉬프트를 지연이라고도 한다. 그림 2-9 (c)는 (a)의 원 신호를 좌로 2만큼 쉬프트 아날로그 함수 x(t)를 우로 3만큼 쉬프트시켰을 때 x(t-3)으로 표현하는 것과 마찬가지로 디지털 신호 x[n]도 우로 3만큼 쉬프트시켰을 때에 x[n-3]으로 표현한다. 그림 2-9. 이산신호의 쉬프트 연산 (a) 원 신호 ,(b)우로 3 쉬프트 연산, (c) 좌로 2 쉬프트 연산
그림 2-10. 디지털 신호의 반사 연산 a) 원 신호 b)반사 연산된 신호 기본적인 디지털 신호의 연산 반사 연산 반사 연산(reflection operation)도 신호처리에서 널리 사용되는 중요한 연산. 원 신호 x[n]의 반사 연산은 x[-n]으로 표현하며 다음 그림 2-10과 같은 연산. 아날로그 함수 x(t)에서 변수 t를 -t로 치환하면 x(-t)가 되며 이 함수는 t=0의 축으로 반사시킨 모양이 된다. 이와 마찬가지로 디지털 신호 x[n]의 반사 연산된 신호 x[-n]의 모양도 n=0의 축으로 반사시킨 모양이 된다. 그림 2-10. 디지털 신호의 반사 연산 a) 원 신호 b)반사 연산된 신호
그림 2-11. (a)원 신호 (b)반사 후 우로 쉬프트 연산 (c) 우로 쉬프트 후 반사 연산 기본적인 디지털 신호의 연산 반사 후 쉬프트 연산 반사 후 쉬프트 연산도 신호처리에서 많이 사용된다. 디지털 신호 x[n]을 먼저 반사시키면 x[-n]이 되고 이를 다시 k만큼 지연(우로 쉬프트)시키면 x[-(n-k)] = x[k-n]으로 표현할 수 있다. k=2인 경우에 그림으로 나타내면 그림 2-11 b)와 같다. 반사 후 쉬프트 연산은 교환법칙이 성립하지 않는다. 즉, 원 신호 x[n]에서 쉬프트를 먼저 연산하면 x[n-k]가 되고, 이 후에 반사 연산을 수행하면 x[-n-k]가 된다. 그림 2-11 c)의 쉬프트 후 반사 연산 결과는 반사 후 쉬프트 연산 x[k-n]의 결과인 b)와 다름을 알 수 있다.(k=2인 경우) 그림 2-11. (a)원 신호 (b)반사 후 우로 쉬프트 연산 (c) 우로 쉬프트 후 반사 연산
시스템의 정의 및 성질 디지털 신호처리 시스템의 정의 : 하나의 신호를 다른 신호로 매핑(mapping) 또는 변형(transformation)하는 규칙 앞으로 이 강의에서는 디지털 신호처리 시스템을 간단히 줄여서 “시스템“이란 용어를 사용하기로 한다. 시스템의 입력신호로서 x[n]을 사용하며 시스템의 출력신호로는 y[n]을 사용. 시스템이란 입력신호 x[n]을 출력신호 y[n]으로 변형하는 규칙이며 다음과 같은 식으로 표현. 시스템은 다음 그림과 같은 블록도로 나타낸다. 입력과 출력은 선으로 표현하며 신호처리는 네모의 상자로 표현. 그림 2-12. 디지털 신호처리 시스템의 블록도
시스템의 정의 및 성질 선형 시스템(linear systems) 어느 시스템에서 다음과 같이 의 신호가 입력될 때 의 신호가 출력 되고, 의 신호가 입력될 때 의 신호가 출력된다고 가정하자. 덧셈 성질(additivity property) : 두 개의 신호를 더해서 입력시켰을 때의 출력과, 각각의 신호를 입력시켜서 얻은 출력의 합이 같은 성질. 그림 2-13. 덧셈 성질
시스템의 정의 및 성질 스케일링 성질(scaling property) : 입력신호 x[n]에 계수 a를 곱해서 입력 시켜서 얻은 출력과, x[n]을 직접 입력시켜서 얻은 출력에 a를 곱한 신호가 같은 성질. 이와 같은 두 가지 성질을 하나의 식으로 표현하면 다음과 같다. 그림 2-14. 스케일링 성질
시스템의 정의 및 성질 시불변 시스템 의 시스템에서 다음의 성질을 만족할 때 시불변(time invariant, 또는 shift invariant)의 성질을 갖는다고 한다. 입력을 k만큼 지연시켜서 입력시켰을 때 얻은 출력과 지연시키지 않고 입력시켰을 때 얻은 출력을 직접 k만큼 지연시킨 결과가 같음을 의미. 입력을 k만큼 지연시켜서 입력시켰을 때 얻은 출력과 지연시키지 않고 입력시켰을 때 얻은 출력을 직접 k만큼 지연시킨 결과가 같지 않을 경우에 이와 같은 시스템을 시변(time varying, 또는 shift varying) 시스템이라고 부른다. 그림 2-15. 시불변 성질
그림 2-16. (a) 어느 인과 시스템의 입출력, (b) 어느 비인과 시스템의 입출력 시스템의 정의 및 성질 인과 시스템 어떤 이산시스템에서 n=k 일때의 출력 y[k]가 n이 k보다 작거나 같은 x[n]에 의해서만 결정될 때 이 시스템을 인과 시스템(causal system)이라고 한다. 물리적인 의미는 아직 시스템에 입력되지 않은 미래의 신호 값이 현재의 출력에 영향을 미칠 수 없음을 뜻한다. 만일 아직 미래의 신호 값이 현재의 시스템 출력 신호 값에 영향을 미치면 이 시스템을 비인과 시스템(non-causal system)이라고 부른다. 위의 비인과 시스템에서 보듯이 y[-1]의 출력 값이 미래 입력 신호 값 x[0]의 에 의존하므로 비인과 시스템이다. 즉, n=-1의 시점에서 보면 n=0은 미래의 시점이다. [예제 2.2] 다음 시스템은 비인과 시스템임을 보이시오. (풀이) y[n]이 x[n+1] 즉 미래의 입력 신호에 의존하므로 인과 시스템이 아니다. 그림 2-16. (a) 어느 인과 시스템의 입출력, (b) 어느 비인과 시스템의 입출력
디지털 컨볼류션(Digital convolution) 원하는 시스템을 구성한 후에는 대부분의 경우, 출력 신호를 방정식을 사용하여 구할 필요는 없다. 입력이 들어오면 원하는 출력을 바로 내보내기 때문이다. 그러나 시스템을 설계할 때에 원하는 사양으로 설계되었는지 테스트하기 위해서 출력신호를 계산하는 방법을 알아야 할 필요. 시스템의 출력을 구하는데 사용되는 방법은 디지털 컨볼류션을 이용하는 방법과 차분 방정식(difference equation)을 이용하는 두 가지 방법이 있다. 먼저 디지털 컨볼류션을 이용하는 방법을 알아보기로 한다. 임펄스 응답(impulse response) 어떤 시스템에 임펄스 신호 이 입력되었을 때의 출력신호를 임펄스 응답(impulse response)이라고 하며 h[n]으로 표기한다. 임펄스 응답에 대한 블록도는 다음 그림과 같다. 임펄스 응답의 수가 유한한 시스템을 FIR(finite impulse response) 시스템 임펄스 응답의 수가 무한한 시스템을 IIR(infinite impulse response) 시스템 어느 시스템에서 임펄스 응답이 주어지면 완벽하게 출력을 구할 수 있으므로 임펄스 응답은 시스템을 규정하는 완전한 정보. 그림 2-17. 임펄스 응답의 블럭도
디지털 컨볼류션(Digital convolution) 디지털 컨볼류션 방정식 임펄스 응답을 사용하여 시스템의 출력을 구하는 방정식을 디지털 컨볼류션이라고 한다. 임펄스 응답을 사용하여 시스템 응답을 방정식으로 나타내기 위하여 먼저 LSI 시스템(linear shift invariant system)이라는 가정 1차원 신호처리 시스템의 경우에 LSI 시스템을 LTI 시스템(linear time invariant system)이라고도 부른다. LSI시스템에서 출력이 임펄스 응답에 의해서 어떻게 표현되는지 예제를 통하여 알아보기로 한다. 출력신호 y[n]은 다음과 같이 표현된다. 선형 시스템이므로 먼저 덧셈 성질을 적용하면 다음과 같이 나타낼 수 있다. 스케일링 성질을 적용하면 다시 다음과 같이 나타낼 수 있다. 임펄스 응답의 정의와 시불변 성질을 적용하면 다음과 같이 나타낼 수 있다.
디지털 컨볼류션(Digital convolution) 이 식에서 보듯이 LSI 시스템의 출력은 임펄스 응답의 가중 합으로 나타낼 수 있다. 가중치는 바로 입력신호의 값들이 됨을 위의 식에서 알 수 있다.위의 식을 위 기호를 사용하여 표현하면 다음과 같다. 일반화하여 임의의 입력신호 x[n]에 대한 출력을 방정식으로 나타내면 다음과 같다. 출력신호는 쉬프트 된 임펄스 응답의 가중 합으로 구할 수 있다. 이 방정식을 디지털 컨볼류션이라고 한다. 이 식은 변수 치환에 의하여 또 다른 표현을 갖는다. 즉, n-k를 m으로 치환하면 다음의 식을 얻을 수 있다.
디지털 컨볼류션(Digital convolution) y[n]을 쉬프트 된 임펄스 신호들의 가중 합으로 표현하였으며 그때의 가중치는 입력신호의 값들이 된다. y[n]을 쉬프트 된 입력 신호들의 가중 합으로 표현하였으며 이때의 가중치는 임펄스신호가 된다. 시스템의 출력은 두 신호의 디지털 컨볼류션 연산일 뿐 어느 것이 입력신호이고 어느 것이 임펄스 신호인지는 연산 결과에 영향을 미치지 않음을 의미한다. 디지털 컨볼류션은 위의 식에서 보듯이 교환법칙(commutative law)이 성립한다. 좀 더 사용하기 간편한 식으로 단순화시키기 위하여 k의 범위를 생각해 보자. 신호의 샘플링을 통하여 만들어지는 입력 x[k]의 시작점은 대부분의 경우에 0에서 시작하도록 정의된다. 또한 임펄스 응답 h[k]도 대부분의 시스템이 인과 시스템이므로 0에서 시작된다. 따라서 다음과 같이 k의 범위를 축소시킬 수 있다. 디지털 컨볼류션의 용도는 시스템의 출력을 계산하는데 있으나, 위의 식에서 보듯이 임펄스 응답이 무한개인 IIR 시스템의 경우에는 실질적으로 이 식을 사용할 수 없게 된다. 임펄스 응답의 길이가 N개인 FIR 시스템의 경우 이 식이 실제로 FIR 시스템의 출력을 계산할 때에 사용하는 식이며, IIR 시스템에서는 디지털 컨볼류션을 사용하지 않고 다음 절에서 논할 차분 방정식을 사용.
디지털 컨볼류션의 계산 방법 디지털 컨볼류션의 식을 이용하여 시스템의 출력을 계산하는 두가지 방법을 알아보기로 하자. 첫 번째 방법은 를 고정시키고 를 왼쪽으로부터 슬라이딩시켜서 곱의 합을 구하는 방법. 두 번째 방법은 입력신호를 각각의 임펄스 신호 로 분해하여 임펄스 응답의 정의에 의해 를 구한 뒤에 그것들을 합하는 방법 시스템의 출력을 계산할 때, 대부분의 경우 입력의 길이가 임펄스 응답의 길이보다 훨씬 길다. 따라서 실무에서 컴퓨터 프로그램에 의해 출력을 계산하는 경우에 첫 번째 방법이 주로 사용된다. 슬라이딩(sliding)에 의한 디지털 컨볼류션의 계산 다음 그림 2-18과 같은 입력신호와 임펄스 응답의 시스템을 살펴보자. 임펄스 응답의 길이가 N=3이므로 출력신호는 구하는 식은 다음과 같이 k의 길이가 한정된다. 슬라이딩 방식은 다음과 같이 n=0부터 출력신호 y[n]을 하나씩 구한다. 그림 2-18. 어느 시스템의 입력신호와 임펄스 응답
디지털 컨볼류션의 계산 방법 i) y[0]을 구하는 방법 y[0]은 다음의 식으로 표시할 수 있다. y[0]을 구하기 위해서 h[k]와 x[0-k]의 신호가 필요하다. h[k]는 다음 그림과 같이 주어진 h[n]에서 n을 k로 변수를 치환하여 간단히 나타낼 수 있다. x[0-k]는 x[-k]이므로 우선 변수 치환으로 x[n]을 x[k]로 만든 후에 앞 절에서 논한 반사 연산. y[0]을 구하는 식은 위의 그림에서 두 신호의 곱을 구하여 합을 계산해야 함을 의미 위의 그림에서 보듯이 곱의 값이 존재하는 경우는 k=0일 때뿐이므로 다음과 같이 구할 수 있다. 그림 2-19. h[k]와 x[0-k]의 그림
디지털 컨볼류션의 계산 방법 ii) y[1]을 구하는 방법 y[1]은 다음의 식으로 표현된다. y[1]을 구하기 위해서는 새로 x[1-k]의 신호가 필요하며 이를 그림으로 나타내 보자. 변수 치환으로 x[n]을 x[k]로 만든 후에 반사 연산을 통하여 x[-k]을 만듬. 최종적으로 우측으로 1만큼 쉬프트하여 다음의 그림 2-20과 같은 x[1-k]를 얻을 수 있다. 쉬프트를 먼저 연산하고 반사 연산을 수행하면 결과가 틀려지므로 주의. 곱의 값이 존재하는 경우는 k=0과 k=1일 때뿐이므로 다음과 같이 y[1]을 구할 수 있다. 그림 2-20. h[k]와 x[1-k]의 그림
디지털 컨볼류션의 계산 방법 iii) y[2]를 구하는 방법 y[2]는 다음의 식으로 표현된다. y[2]를 구하기 위해서는 새로 x[2-k]의 신호가 필요한데 이를 그림으로 나타내 보자. x[2-k]를 만드는 방법은 x[1-k]를 만드는 방법과 같다. 곱의 값이 존재하는 경우는 k=0, 1, 2일 때이므로 다음과 같이 y[2]를 구할 수 있다. 그림 2-21. h[k]와 x[2-k]의 그림
디지털 컨볼류션의 계산 방법 iv) y[3]을 구하는 방법 y[3]은 다음의 식으로 표현된다. y[3]를 구하기 위해서는 새로 x[3-k]의 신호가 필요한데, 이를 그림으로 나타내 보자. x[3-k]를 만드는 방법은 x[1-k]를 만드는 방법과 같다. 곱의 값이 존재하는 경우는 k=0, 1, 2일 때이므로 다음과 같이 y[3]을 구할 수 있다. 그림 2-22. h[k]와 x[3-k]의 그림
디지털 컨볼류션의 계산 방법 v) y[4]을 구하는 방법 y[4]는 다음의 식으로 표현된다. y[4]를 구하기 위해서는 새로 x[4-k]의 신호가 필요한데 이를 그림으로 나타내면 다음 그림 2-23과 같다. 곱의 값이 존재하는 경우는 k=1, 2일 때이므로 다음과 같이 y[4]를 구할 수 있다. 그림 2-23. h[k]와 x[4-k]의 그림
디지털 컨볼류션의 계산 방법 vi) y[5]을 구하는 방법 y[5]는 다음의 식으로 표현된다. y[5]를 구하기 위해서는 새로 x[5-k]의 신호가 필요한데 이는 그림 2-24와 같다. 곱의 값이 존재하는 경우는 k=2일 때뿐이므로 다음과 같이 y[5]를 구할 수 있다. y[6]부터는 곱의 값이 존재하는 k의 영역이 없다. 즉 x[n-k]를 오른쪽으로 계속 슬라이딩시켰을 때 곱의 값은 모든 k의 영역에서 0이므로 y[n]의 값도 0이 된다. 그림 2-24. h[k]와 x[5-k]의 그림
그림 2-25. 슬라이딩 방법으로 구한 디지털 컨볼류션의 출력 y[n] 디지털 컨볼류션의 계산 방법 지금까지 구한 결과를 종합하여 y[n]을 나타내면 다음 그림 2-25와 같다. 출력신호의 길이는 어떻게 정의될 수 있을까? 입력신호의 길이를 M, 임펄스 응답의 길이를 N, 출력신호의 길이를 L 출력신호의 길이는 로 구할 수 있다. 위의 예제에서는 M=4이고 N=3이므로 이 경우 출력신호의 길이는 이 됨. 그림 2-25. 슬라이딩 방법으로 구한 디지털 컨볼류션의 출력 y[n]
디지털 컨볼류션의 계산 방법 슬라이딩 방법의 이해를 돕기 위하여 다음과 같은 현수교를 보자. 위의 현수교 그림에서 교량을 붙들고 있는 와이어들을 임펄스 응답으로 생각할 수 있음. 좌에서 우로 운행하고 있는 차량들은 입력 신호로 간주할 수 있다. 이 때에 차량들이 와이어들을 한 칸씩 통과할 때마다 출력이 계산된다. 그리고 차량이 완전히 와이어를 빠져나가면 더 이상의 출력은 발생하지 않는다. 그림 2-26. 슬라이딩 방법과 현수교의 비교
디지털 컨볼류션의 계산 방법 표를 사용한 슬라이딩 방법 표를 작성할 때 먼저 k의 인덱스를 적는다. h[k]를 기록한다. 오버랩이 가장 먼저 발생하는 x[n-k]를 기록하고 그때의 y[n]을 구한다. x[n-k]를 우측으로 쉬프트 시키면서 y[n]을 한 개씩 계산한다. 오버랩이 사라지면 y[n]의 계산도 끝나게 된다. │표2-1│ 표에 의한 슬라이딩 방법
디지털 컨볼류션의 계산 방법 [예제 2.3] 어느 시스템의 입력과 임펄스 응답이 다음과 같을 때, 표를 사용한 슬라이딩 방법으로 출력을 구하시오. (풀이) 슬라이딩 방식을 표로 나타내면 다음과 같다. 위의 예제에서 h[k]와 x[n-k]의 오버랩이 시작되는 인덱스 n은 -1이므로 출력도 y[-1]부터 0이 아닌 값을 갖기 시작한다. │표2-2│ 예제의 표에 의한 슬라이딩 방법
디지털 컨볼류션의 계산 방법 임펄스 응답을 사용한 디지털 컨볼류션의 계산 이 방법도 슬라이딩 방식에서 사용했던 다음의 예를 사용하여 알아보자. 디지털 컨볼류션의 식은 다음과 같다. 입력신호의 길이가 N=4이므로 출력신호를 구하는 식은 위와 같이 k의 길이가 0에서 3까지 4개로 한정된다. 위의 식과 같이 출력 y[n]은 4개의 임펄스 응답들의 가중 합으로 표현할 수 있음. 그림 2-27. 어느 시스템의 입력신호와 임펄스 응답
그림 2-28. 임펄스 응답을 사용한 디지털 컨볼류션의 계산 디지털 컨볼류션의 계산 방법 4개의 임펄스 응답과 그들의 y[n]을 그림으로 나타내면 다음 그림과 같다. 오른쪽 신호들을 모두 합하면 y[n]. 슬라이딩 방법의 결과가 같음을 알 수 있다. 표를 사용한 임펄스응답 방법 실제의 경우에는 입력 신호의 길이가 긴 경우가 대부분이므로 슬라이딩 방법으로 출력신호를 구하는 경우가 많다. 그림 2-28. 임펄스 응답을 사용한 디지털 컨볼류션의 계산 │표2-2│ 예제의 표에 의한 슬라이딩 방법
그림 2-29. (a) 덧셈기 (b) 곱셈기 (c) 지연소자 시스템 구성의 기본소자와 시스템의 연결 방법 시스템 구성의 기본소자 디지털 컨볼류션을 반도체와 같은 하드웨어로 구현하면 어떤 입력이 들어가더라도 출력이 자동으로 계산. 디지털 컨볼류션을 구현하기 위한 기본소자 임펄스 응답의 길이가 3인 디지털 컨볼류션의 방정식을 다시 보자. 지연소자(delay element) : 위의 디지털 컨볼류션을 구현하기 위해서 첫째로 입력신호 x[n]을 지연시켜서 x[n-1] 등을 만들기 위한 하드웨어. 곱셈기(multiplier) : h[0]과 같은 상수 계수와 x[n]의 신호를 곱하기 위한 소자. 덧셈기(adder) : 곱한 후의 값들을 더하기 위한 소자. 그림 2-29. (a) 덧셈기 (b) 곱셈기 (c) 지연소자
그림 2-30. 덧셈기, 곱셈기, 지연소자를 사용한 시스템의 구현 시스템 구성의 기본소자와 시스템의 연결 방법 이와 같은 3가지 소자를 사용하여 어떻게 시스템을 구현할 수 있는지를 다음의 예를 통하여 알아보자. 이 시스템의 출력은 다음과 같이 표시된다. 이 식을 3가지 소자를 사용하여 구현하면 다음 그림 2-30과 같다. 지연소자 2개를 사용하여 x[n-1]과 x[n-2]를 만든다. 0.9, 0.7, 0.3의 상수를 곱하기 위하여 3개의 곱셈기를 사용한다. 이 곱셈기들의 출력들을 더하기 위하여 2개의 덧셈기를 사용한다. 임펄스 응답은 어떤 시스템을 규정하는 완전한 정보이다. 실제로 복잡한 디지털 신호처리 시스템은 여러 개의 시스템이 종속으로 또는 병렬로 연결되어 구성되는 경우가 많다. 그림 2-30. 덧셈기, 곱셈기, 지연소자를 사용한 시스템의 구현
시스템 구성의 기본소자와 시스템의 연결 방법 직렬연결 방식 2개의 시스템이 다음의 그림 2-31과 같이 연결되었을 때, 직렬연결이라고 부른다. 위의 직렬연결에서 전체 시스템의 임펄스 응답은 다음과 같이 구할 수 있다. 정의에 의해서 일 때의 출력이 임펄스 응답이므로, 을 입력시켜 보자. 첫 번째 시스템의 출력은 이 된다. 이 이 두 번째 시스템의 입력이 되므로 두 번째 시스템의 출력은 가 된다. 이 출력이 직렬연결 시스템의 전체 임펄스 응답이 된다. 또한 디지털 컨볼류션은 교환법칙의 성질을 갖고 있으므로 으로 표현할 수도 있다. 따라서 다음의 그림 2-32는 모두 등가의 시스템. 그림 2-31. 시스템의 직렬연결 그림 2-32. 직렬연결의 등가 시스템들
시스템 구성의 기본소자와 시스템의 연결 방법 병렬연결 방식 전체 시스템의 임펄스 응답 다음의 그림 2-33과 같이 시스템이 연결되었을 때, 병렬연결이라고 부른다. 전체 시스템의 임펄스 응답 입력신호를 임펄스 신호로 가정하면 각각의 시스템 출력이 과 이 된다. 따라서 전체 시스템의 출력은 이 되며, 이것이 병렬연결의 전체 임펄스 응답이 된다. 이 결과를 이용하면 병렬연결의 시스템은 다음 그림 2-34와 같은 하나의 시스템으로 표현될 수 있다. 그림 2-33. 시스템의 병렬연결 그림 2-34. 병렬연결의 등가 시스템
시스템 구성의 기본소자와 시스템의 연결 방법 [예제 2.4] 다음의 시스템에서 전체의 임펄스 응답을 구하시오. 위의 시스템에서의 각각의 임펄스 응답은 다음과 같다. 그림 2-35. [예제 2.4]의 직/병렬연결
시스템 구성의 기본소자와 시스템의 연결 방법 (풀이) 따라서 전체의 임펄스 응답은 다음과 같이 위의 두 결과와 의 병렬로 구성될 수 있음을 알 수 있다. 복잡한 시스템을 해석할 때에, 적당히 기본소자인 덧셈기, 곱셈기, 지연소자들을 묶어서 여러 개의 시스템으로 분해하여 해석하기도 한다. 또한 시스템을 구성할 때에도 각각의 특성을 갖는 시스템을 설계한 뒤 이들을 직렬연결과 병렬연결을 사용하여 복잡한 시스템을 구성하기도 한다.
선형 차분 방정식 LSI 시스템의 입출력관계를 시간영역에서 정의하는 유용한 방법인 디지털 컨볼류션은 시스템의 출력을 구하는데 사용하기도 하고 시스템을 구현하는데 사용하기도 한다. 그러나 임펄스 응답이 무한개인 IIR 시스템에서는 이 디지털 컨볼류션을 사용하여 출력을 구하거나 구현하는 것이 불가능하다. 이와 같은 IIR 시스템에서도 효과적으로 출력을 계산하고 시스템을 구현하는 방법으로서 선형 차분 방정식(linear difference equation)이 있다. m차의 차분 방정식은 다음과 같이 나타낸다. 모든 계수가 상수계수를 사용하므로 선형 상수계수 차분 방정식(linear constant coefficient difference equation, LCCDE)이라고 한다. 차분 방정식에서 출력신호 y[n]은 알고 있는 입력신호와 초기조건으로부터 귀납적으로 구할 수 있다. 차분 방정식의 출력을 얻기 위해서는 다음과 같은 초기조건이 필요하다. 차분 방정식의 일반해는 Zero-state 응답과 Zero-input 응답으로 구성. Zero-state 응답 : 모든 초기조건을 0으로 가정하여 단지 주어진 입력신호로부터 출력신호를 구한다. Zero-input 응답 : 입력신호를 0으로 가정하고 단지 초기조건에 의한 출력신호를 구한다. 일반해는 이 두 응답을 더하면 된다. 그러나 일반적으로 디지털 신호처리 시스템을 해석할 때, Zero-state 응답만으로 시스템을 해석하게 된다. 즉, 앞으로 시스템에서 초기조건은 모두 0으로 가정하며 주어진 입력만으로 출력을 계산.
선형 차분 방정식 FIR 시스템의 차분 방정식 차분 방정식에서 좌변의 항이 한 개인 경우에 다음과 같이 나타낼 수 있다. FIR 시스템에서 임펄스 응답의 길이가 m개인 경우에 디지털 컨볼류션으로 나타내면 다음과 같다. 차분 방정식의 상수계수가 FIR 시스템의 임펄스 응답과 같으면 디지털 컨볼류션이 됨을 알 수 있다. [예제 2.4] 다음의 차분방정식으로부터 디지털 컨볼류션과 임펄스응답을 구하고 기본 소자들을 사용하 여 구현하시오. (풀이) 위의 식은 좌변의 항이 한 개인 차분 방정식이므로 그대로 디지털 컨볼류션의 식이 된다. 따라서 상수계수 2와 3이 h[0]=2, h[1]=3이 되므로 임펄스 응답은 다음과 같이 나타낼 수 있다. h[n]을 구하는 또 다른 방법은, 정의에 의해서 입력으로서 을 입력시켜서 출력을 구하는 방법이다. 그러면 쉽게 위의 임펄스 응답을 구할 수 있다. 이 차분 방정식을 기본 소자들을 사용하여 구현하면 다음 그림 2-36과 같다. 그림 2-36. [예제 2.5]의 구현
선형 차분 방정식 IIR 시스템의 차분 방정식 이제 다른 인과 시스템의 다음 차분 방정식과 비교해 보기로 하자. 위와 같은 차분 방정식의 효용성을 알아보기 위하여 먼저 다음의 차분 방정식을 살펴보기로 하자. 위의 차분 방정식은 항이 무한개이므로 기본소자들을 사용하여 구현할 수 없으며, 임펄스 응답은 다음과 같다. 위의 임펄스 응답은 0.5의 지수 함수이므로 무한개의 길이이며 0이 되지 않는 IIR 시스템이다. 이제 다른 인과 시스템의 다음 차분 방정식과 비교해 보기로 하자. 임펄스 응답을 구하기 위해서 위의 식의 x[n]에 임펄스 신호를 대입하면 y[n]은 임펄스 응답 h[n]이다. 인과 시스템이므로 n<0에 대하여는 h[n]=0이 된다. 위의 식으로부터 n=0일 때부터 h[n]을 구할 수 있다.
선형 차분 방정식 위의 임펄스 응답이 이전의 예제와 같음을 알 수 있다. 즉, 다음의 차분 방정식은 같은 시스템이다. 위의 차분 방정식들은 같은 임펄스 응답을 갖고 있는 같은 시스템인데 하드웨어로 구현할 때에 어떤 식을 사용해야 할까? 위의 식 중에서 앞의 식은 무한개의 입력이 필요하므로 무한개의 지연소자, 무한개의 곱셈기, 무한개의 덧셈기가 필요하다. 따라서 실제로는 구현이 불가능하다.
그림 2-37. 차분 방정식 y[n]-0.5y[n-1]+x[n]의 구현 선형 차분 방정식 위의 식 중에서 뒤의 식은 다음과 같이 나타낼 수 있다. 위의 두 예제를 통하여 차분 방정식이 IIR 시스템을 효과적으로 규정하는 방법임을 알 수 있다. 임펄스 응답이 유한한 FIR 시스템의 경우에는 출력을 계산하거나 구현할 때에 디지털 컨볼류션을 사용. 임펄스 응답이 무한한 IIR 시스템의 경우에는 차분 방정식을 사용하여 출력을 구하거나 시스템을 구현. 그림 2-37. 차분 방정식 y[n]-0.5y[n-1]+x[n]의 구현
안정 시스템 입력과 출력으로 나타내는 안정 시스템 어떤 시스템에서, bounded input 신호에 대하여 bounded output 신호를 출력할 때, 이를 bounded-input bounded-output(BIBO) 의미의 안정 시스템이라고 한다. 입력신호가 다음의 식 을 만족하는 고정된 양의 유한값(fixed positive finite value)이 존재하면bounded라고 한다. 안정 시스템은 모든 bounded input에 대하여 다음의 식 을 만족하는 고정된 양의 유한값이 존재하여야 한다. [예제 2.6] 다음의 시스템이 안정 시스템이 아님을 보이시오. (풀이) 이를 보이기 위해서는 어떤 bounded-input을 입력시켜서 출력이 bounded 되어있지 않음을 보이면 된다. 이를 위하여 단위 계단 신호 u[n]을 입력시켜 보자. 그러면 출력신호는 이 된다. 이 출력 n+1은 고정된 양의 유한값 B를 갖지 못하므로 불안정 시스템
안정 시스템 임펄스 응답으로 나타내는 안정 시스템 임펄스 응답을 사용하는 유용한 방법 어떤 시스템에서 안정 시스템인지를 확인하기 위하여 입력과 출력 전체를 관찰하는 것은 쉽지 않다. 또한 모든 종류의 bounded input을 입력시켜 보는 것도 실제로 불가능하다. 임펄스 응답을 사용하는 유용한 방법 먼저 다음과 같이 디지털 컨볼류션에 절대값을 붙여서 시작한다. 위의 식에서 절대 값을 의 안으로 들여보내면 등식은 다음과 같이 부등식으로 바뀐다. 위의 식에서 입력이 고정 양의 유한 값 B로 bounded 되어 있으면 다음과 같이 입력을 B로 치환할 수 있다. 위의 식에서 이면 의 안정 시스템 조건에 위반된다. 그러므로 안정 시스템의 조건으로서 을 만족하여야 한다. 따라서 안정 시스템이 되기 위한 임펄스 응답 조건은 다음과 같다. h[n]의 절대값의 합이 존재하면(absolutely summable) 안정 시스템이라고 부른다.
안정 시스템 [예제 2.7] 다음의 임펄스 응답을 보고 안정 시스템인지 아닌지를 판별하시오. (풀이) 각각의 경우에 h[n]의 절대값의 합이 존재하는지를 살펴보자. 먼저 a)의 경우에는 다음과 같다. 위와 같이 h[n]의 절대값의 합이 존재하므로 안정 시스템이다. 이번에는 b)를 살펴보자. 위와 같이 h[n]의 절대값의 합이 존재하지 않으므로 안정 시스템이 아니다.