[학교 수업]/[학교 수업] Signal Processing

[Signal Processing] Chapter 5: FIR Filters | Week 5

건대다니는 컴공생 2025. 4. 4. 17:41

Digital Filtering

 

아날로그의 시그널을 디지털로 변환하는 과정은 해당 시그널을 이용해 다른 연산을 수행하는 데에 있어서 매우 중요합니다. 만약 아날로그 데이터를 그대로 가져온다면 computation을 하는데 overhead가 매우 클 것입니다. digitalization하는 과정은 다음과 같습니다:

Digital Filtering

 

*일반적으로 ()를 이용하면 analog데이터를, []를 사용하면 digital데이터를 의미합니다.

 

Discrete-Time Systems

 

어떤 임의의 작업을 통해 x[n]을 입력으로 하여 y[n]를 출력하는 과정을 DSP (Digital Signal Processing)이라고 합니다. 그 예시로는 Squaring; y[n] = (x[n])^2 이나, Running Average; the output at time n is the average of three consecutive inputs values 가 있습니다.

 

Running-Average Filter

 

Discrete-Time signal은 숫자의 리스트입니다. 임의의 integer n으로 indexing되어 있으며 그림으로 나타내면 다음과 같습니다: (이는 STEM PLOT의 예시입니다)

Stem plot

 

이때 x[n]의 값이 0이 아닌 부분을 support라고 부릅니다. stem plot의 경우 support의 길이는 5; 0≤n≤4 입니다.

 

3-Point Average System

 

이를 이용해 Running average작업을 수행해보겠습니다. 이는 3개의 연속된 숫자들의 평균으로 output을 출력하는 것입니다.

3-point average system

 

*이때 n은 present; 현재이며, n+1, n+2는 future; 미래라고 합니다.

 

x[n]과 y[n]을 그림으로 그려보면 다음과 같습니다:

x[n] and y[n]

 

이를 통해 많은 정보를 얻을 수 있습니다.

  • 그래프의 모양 변형; input signal의 경우는 모양이 날카로웠다면, averaging을 거친 output signal은 부드러운 모습을 모입니다.
  • peak의 이동; input signal의 경우 peak의 n은 2인 반면, output signal의 peak는 n=1입니다.
  • support의 길이; support의 길이가 2만큼 더 늘어났습니다.
    • averaging과정에서 future와 present데이터만을 사용했기 때문에 past방향으로 support가 늘어났습니다.

 

Past, Present, Future

 

이때 과거(past)는 현재가 n일때, n-1, n-2, ... 등 n보다 작을때의 데이터를 말합니다. 또한 미래(future)는 현재가 n일때, n+1, n+2, ... 등 n보다 클때의 데이터를 말합니다.

Past, Present, Future

 

Another 3-point Average

 

그러면 오직 present와 past만을 사용해서 averaging작업을 수행하면 어떻게 될까요? 이때 present와 past만을 이용하는 경우를 causal system이라고 합니다.

another 3-point average (causal system)

 

Genral FIR Filter

 

causal filter의 정규식을 나타내면 다음과 같습니다:

General FIR Filter

 

이때 bk를 filter coefficients라고 부르며, 이전에 봤던 3-point average의 경우 bk가 1/3인 것입니다.

 

정규식에서 M을 filter order라고 부르며, filter의 길이 L은 M+1입니다.

General FIR Filter

 

이를 그림으로 나타내보면 다음과 같습니다.

Slide a window across x[n]

 

해당 filter는 causal filter이기 때문에 왼쪽으로 길게 filter가 형성되어있으며, filter가 왼쪽에서 오른쪽으로 이동하면서 x[n]을 읽어들인 후, y[n]을 생성합니다.

 

Special input signals

 

오직 하나의 non-zero값을 갖는 x[n]을 unit-impulse라고 부르며 그림으로 나타내면 다음과 같습니다.

Unit-Impulse

 

unit impulse를 이용하면 다양한 signal들을 표현할 수 있습니다. 예를 들어 n대신 n-3을 넣어주면, 이는 양의 방향으로 3만큼 이동한 unit impulse가 됩니다. 또한 상수배를 통해 signal의 크기를 조절할 수도 있습니다.

Unit Impulse signal

 

Formula for x[n]

 

그렇다면 unit impulse를 이용해 x[n]을 나타내보면 다음과 같습니다:

Formula for x[n]

 

이를 해석해보면,

2d[n]은 n=0일때의 크기가 2인 unit signal +

4d[n-1]은 n=1일때의 크기가 4인 unit signal +

6d[n-2]은 n=2일때의 크기가 6인 unit signal +

4d[n-3]은 n=3일때의 크기가 4인 unit signal +

2d[n-4]은 n=4일때의 크기가 2인 unit signal 입니다.

 

즉 다음의 식이 항상 성립하는 것입니다:

when k=-∞ to ∞