# 신호처리와 필터 이론 개요

#### 신호의 정의와 분류

신호는 시간 또는 공간에 따른 물리적 양의 변화를 나타내는 함수로서 센서 퓨전 과정에서 가장 기초적인 분석 대상이다. 크게 아날로그 신호와 디지털 신호로 구분할 수 있는데, 아날로그 신호는 연속적인 시간축을 갖고 디지털 신호는 이산적인 시간축을 갖는다. 또한 통계적 성격에 따라 결정적 신호와 확률적(랜덤) 신호로 나눌 수 있다. 센서에서 측정되는 물리량은 대부분 연속 신호 형태로 존재하나, 디지털 장치로 처리하기 위해서는 샘플링 과정을 거쳐 이산 신호로 변환한다. 이때 필요한 개념이 신호처리와 필터 이론이며, 센서 퓨전에서는 여러 센서 신호를 적절히 결합해 유의미한 결과를 얻는 데 사용한다.

#### 선형 시불변 시스템

신호처리에서 가장 중요한 가정 중 하나는 시스템이 선형(Linear)이고 시불변(Time-Invariant)이라는 것이다. 선형이란 입력이 합과 스칼라 배수로 구성될 때, 출력이 그 합과 배수로 선형적으로 반응한다는 것을 의미한다. 시불변성은 시스템의 거동이 시간에 따라 변하지 않는다는 성질을 말한다. 예를 들어 임펄스 응답이 $h(t)$인 선형 시불변 시스템에 입력 $x(t)$가 주어지면 출력 $y(t)$는 컨볼루션(Convolution)으로 표현된다.

$$
\begin{align} y(t) &= x(t) \* h(t) \nonumber  \\
&= \int\_{-\infty}^{\infty} x(\tau),h(t-\tau),d\tau \nonumber  \end{align}
$$

컨볼루션은 시간영역에서 신호처리를 이해하는 핵심이 된다. 임펄스 응답 $h(t)$만 정확히 알면 어떤 입력 신호에 대해서도 컨볼루션 계산으로 출력을 예측할 수 있기 때문이다. 센서 퓨전에서도 여러 센서 출력이 시스템으로 들어갈 때, 그 시스템이 LTI 성질을 갖는지 여부에 따라 해석 방식이 크게 달라진다.

#### 시간영역 해석

시간영역에서 신호처리는 주로 상관함수나 자기상관함수 등을 통해 해석한다. 자기상관함수는 신호가 얼마나 일정 주기를 가지고 있는지, 혹은 통계적으로 어떤 특성을 갖고 있는지 파악하는 데 유용하다. 예를 들어 실측 센서 신호가 $x(t)$일 때, 자기상관함수 $R\_{xx}(\tau)$는

$$
\begin{align} R\_{xx}(\tau) &= E\[x(t),x(t+\tau)] \nonumber  \end{align}
$$

의 형태로 정의되며, 여기서 $E\[\cdot]$는 기대값을 의미한다. 이는 랜덤신호를 기반으로 한 처리에서 잡음 특성이나 시스템 식별 등에 활용된다. 일반적으로 LTI 시스템에서 잡음이 포함된 입력 신호의 시간영역 해석은 정확한 잡음 모델링과 함께 컨볼루션 및 상관 함수 분석으로 수행된다.

#### 주파수영역 해석

시스템 거동을 이해하는 또 다른 주요 관점은 주파수영역이다. 시간영역에서 복잡해 보이는 현상이 주파수영역에서 단순 명료하게 표현되는 경우가 많기 때문이다. 선형 시불변 시스템에서는 컨볼루션이 주파수영역에서 곱셈으로 변환된다. 이를 위해 사용하는 대표적 도구가 푸리에 변환이다.

$$
\begin{align} X(\omega) &= \int\_{-\infty}^{\infty} x(t) e^{-j\omega t} dt \nonumber  \end{align}
$$

시간영역에서 $y(t)=x(t)\*h(t)$라면 주파수영역에서는 $Y(\omega) = X(\omega)H(\omega)$가 되므로 필터 설계나 시스템 해석에 매우 유리하다. 실제 센서 신호에 잡음이 포함되어 있을 때, 불필요한 주파수 성분을 제거하거나 강화하는 데 사용되는 것이 필터이며, 이 필터 특성을 주파수응답(주파수영역에서의 전달함수)으로 확인할 수 있다.

#### 필터의 기본 구조

필터는 신호처리에서 특정 주파수 대역을 통과시키거나 차단하여 원하는 특성을 얻는 장치 혹은 알고리즘이다. 아날로그 필터에서 임피던스와 회로 소자를 활용해 구현하는 방법이 전통적으로 사용되었지만, 현대에는 디지털 신호처리 기법이 발달하면서 디지털 필터가 훨씬 융통성 있게 설계 가능해졌다. 센서 퓨전에서는 디지털 필터로 센서데이터를 전처리하거나 특정 대역의 노이즈를 제거하는 용도로 많이 활용한다.

시간영역에서 LTI 디지털 필터의 출력 $y\[n]$을 차분방정식(difference equation)으로 표현할 수 있다. 예를 들어 1차 IIR 필터의 구조는 다음과 같이 표현된다.

$$
\begin{align} y\[n] &= a,y\[n-1] + b,x\[n] \nonumber  \end{align}
$$

이 식에서 $a$, $b$는 필터 계수이다. 더 높은 차수로 확장할 경우

$$
\begin{align} y\[n] &= \sum\_{k=1}^{M} a\_k,y\[n-k] + \sum\_{l=0}^{N} b\_l,x\[n-l] \nonumber  \end{align}
$$

형태를 갖게 된다. 이때 $a\_k$, $b\_l$ 계수를 어떻게 설정하느냐에 따라 원하는 주파수 특성을 가지는 디지털 필터를 설계할 수 있다. 구현 시 유한 정밀도 문제와 고속 연산 문제 등을 고려해야 하며, 특히 센서 퓨전에서는 실시간 성능도 중요한 이슈가 된다.

#### FIR 필터와 IIR 필터

디지털 필터를 크게 FIR(Finite Impulse Response) 필터와 IIR(Infinite Impulse Response) 필터로 나눈다. FIR 필터는 임펄스 응답이 유한한 길이를 갖고, 구조상 내부 피드백이 없으므로 안정성이 좋다는 장점을 가진다. 다만 원하는 필터 특성을 만족하려면 차수가 커질 수 있어 연산량이 많아질 수 있다. 반면 IIR 필터는 내부 피드백 구조로 인해 임펄스 응답이 무한히 이어질 수 있으며, 상대적으로 같은 필터 특성을 FIR보다 적은 차수로 달성할 수 있다. 단, 시스템이 불안정해질 위험도 존재하므로 안정성을 보장하기 위한 설계가 필수적이다.

#### 아날로그 필터와 디지털 필터

아날로그 도메인에서 필터는 커패시터, 인덕터, 저항 등 수동소자나 연산증폭기 같은 능동소자를 기반으로 설계된다. 버터워스(Butterworth), 첼비셰프(Chebyshev), 베셀(Bessel) 등의 고전적 필터가 대표적 예시이다. 해당 필터들은 전달함수 $H(s)$로 표현되는 랩라스 변환 영역에서 설계된다. 디지털 필터는 주파수영역에서 $H(z)$로 표현되는 Z-변환을 활용한다. 설계 공정에서 아날로그 필터 설계를 바탕으로 표본화 주파수와 양자화를 고려해 디지털 도메인으로 변환하기도 한다(예: Bilinear transform 등).

#### 변환 기법

시스템 해석과 필터 설계를 위해 다양한 변환 도구가 활용된다. 가장 기본적인 것은 푸리에 변환이지만, 임시적으로 안정적이지 않을 수도 있는 신호나 비선형적 구조까지 포괄하기 위해서는 라플라스 변환이나 Z-변환이 자주 쓰인다. 센서 퓨전에서 동특성이 시간 혹은 주파수 축에서 복합적으로 나타날 때, 변환 기법을 적절히 사용해 시스템 해석 및 설계 편의를 얻는다.

라플라스 변환은 아날로그 시스템 해석에, Z-변환은 디지털 시스템 해석에 각각 자주 적용된다. 예를 들어 아날로그 필터의 전달함수는 라플라스 변환으로 얻을 수 있고, 이를 주파수영역으로 해석할 때는 $s=j\omega$를 대입해 보드선도(Bode plot)나 나이퀴스트 플롯 등을 확인한다. 디지털 필터 해석 시에는 Z-영역에서 영점과 극점의 위치를 분석해 필터 안정성을 평가하고 주파수응답을 얻는다.

#### 필터 이론의 확장

필터 설계는 단순한 저역통과, 고역통과, 대역통과, 대역저지 등 기본 구조를 넘어, 임의의 응답 특성에 근접하는 다양한 기법이 고안되어 왔다. 윈도우 함수를 이용해 FIR 필터를 설계하거나, 특수 다항식을 이용해 IIR 필터를 설계하기도 한다. 특히 센서 퓨전에서 측정 데이터의 품질이 좋지 않은 경우, 적응형 필터(Adaptive Filter) 기법이 유용하다. 적응형 필터는 입력 데이터 통계특성에 맞추어 필터 계수를 실시간으로 조정하므로, 고정 계수 필터에 비해 변동성이 큰 측정 환경에서 더 나은 성능을 낼 수 있다.

#### 잡음과 랜덤신호의 처리

센서 퓨전 환경에서는 필연적으로 잡음이 포함되어 있으며, 이 잡음을 보다 정확하게 해석하고 억제하기 위해서는 확률적 신호 모델과 스펙트럼 분석이 중요하다. 랜덤신호 $\mathbf{x}(t)$가 단순한 백색가우시안 잡음일 때는 파워 스펙트럼 밀도(PSD)가 모든 주파수 대역에서 균일하다고 가정하지만, 실제 센서 데이터 잡음은 주파수대역에 따라 달라지는 경우가 흔하다. 따라서 잡음 성분을 모델링하고, 이에 맞는 적절한 필터(예: 밴드패스 필터, 위상 정렬 필터 등)를 설계해 데이터 품질을 개선한다.

여기서 언급되는 랜덤신호 이론에는 확률분포, 확률밀도함수, 순간값 및 교차상관 등이 포함되며, 센서 퓨전 시스템에서 다중 센서 간 상관관계 역시 중요한 요소가 된다. 이 상관성은 다중 채널을 동시에 처리할 때 특정 주파수나 시간 영역에서 필터 구조를 최적화하는 근거가 된다.

#### 최적 필터 이론의 기초

랜덤신호 처리를 위해 필터계수를 최적화하는 접근법에는 위너(Wiener) 필터나 칼만(Kalman) 필터가 대표적이다. 위너 필터는 평균제곱오차 관점에서 최적해를 구하며, 입력 신호와 잡음에 대한 통계적 정보를 알고 있을 때, 오류를 최소화하는 필터 계수를 계산해낸다. 칼만 필터는 동적 시스템 모델을 바탕으로 상태추정 문제를 해결하는 방법이다. 이는 잡음이 포함된 측정값에서 시스템 상태를 재귀적으로 추정하기 때문에 센서 퓨전에서 핵심 역할을 한다. 다음 단계에서 칼만 필터와 그 변형들에 대해 더욱 자세히 살펴볼 것이다.

#### 위너 필터(Wiener Filter)

랜덤신호 처리를 위한 고전적이면서도 강력한 방법으로 위너 필터가 있다. 위너 필터는 평균제곱오차(Mean Squared Error)를 최소화하는 기준에서 최적의 필터 계수를 찾는다. 입력 신호를 $x\[n]$, 출력(또는 추정하려는) 신호를 $d\[n]$라 하고, 필터 출력은 $y\[n]$이라 하자. 필터는 선형 FIR 구조로 가정하여 다음과 같이 표현할 수 있다.

$$
\begin{align} y\[n] &= \sum\_{k=0}^{M-1} w\_k,x\[n-k] \nonumber  \end{align}
$$

여기서 $w\_k$는 필터 계수이고, $M$은 필터 차수이다. 우리가 최소화하고자 하는 목표함수는 오차 $e\[n] = d\[n] - y\[n]$의 제곱에 대한 기대값이다.

$$
\begin{align} J &= E\[e^2\[n]] \nonumber \\
&= E\bigl\[(d\[n] - y\[n])^2\bigr] \nonumber  \end{align}
$$

$w\_k$에 대해 편미분하여 $J$를 최소화하는 조건을 구하면 정상방정식(Normal Equation)을 얻게 된다. 벡터 $\mathbf{w} = \[w\_0\ w\_1\ \dots\ w\_{M-1}]^T$, 입력 샘플 벡터 $\mathbf{x}\[n] = \[x\[n]\ x\[n-1]\ \dots\ x\[n-M+1]]^T$, 자기상관행렬 $\mathbf{R} = E\[\mathbf{x}\[n]\mathbf{x}^T\[n]]$, 교차상관벡터 $\mathbf{p} = E\[d\[n]\mathbf{x}\[n]]$를 정의하면 최적 위너 계수는

$$
\begin{align} \mathbf{w}\_{opt} &= \mathbf{R}^{-1},\mathbf{p} \nonumber  \end{align}
$$

형태를 갖는다. 이는 $J$에 대한 $\mathbf{w}$의 그래디언트가 0이 되는 지점에서 얻는 해이며, 해당 해는 위너-홉프(Wiener-Hopf) 방정식으로도 알려져 있다.

#### 적응형 필터(Adaptive Filter)

위너 필터는 입력과 잡음의 통계적 특성이 사전에 정확히 주어졌을 때 최적 솔루션을 구할 수 있으나, 실제 센서 퓨전 환경에서는 잡음 특성이 동적으로 변하거나 정확히 알기 어려운 경우가 많다. 이때 사용하는 것이 적응형 필터다. 적응형 필터는 입력 신호와 참조 신호를 바탕으로 실시간으로 필터 계수를 갱신한다.

**LMS 알고리즘**

가장 간단하고 널리 쓰이는 방법은 LMS(Least Mean Squares) 알고리즘이다. 목표함수(평균제곱오차)를 경사하강(Gradient Descent) 방법으로 근사 업데이트한다. 오차 $e\[n] = d\[n] - y\[n]$, 필터 계수 벡터 $\mathbf{w}\[n]$에 대해 다음과 같은 재귀식을 갖는다.

$$
\begin{align} \mathbf{w}\[n+1] &= \mathbf{w}\[n] + \mu,e\[n],\mathbf{x}\[n] \nonumber  \end{align}
$$

여기서 $\mu$는 스텝 사이즈(step size)로 학습률에 해당한다. $\mu$가 너무 크면 발산할 수 있고, 너무 작으면 수렴 속도가 느려지므로 $\mu$ 선택이 중요하다. 센서 퓨전에서는 다양한 센서 데이터가 들어오므로 $\mu$를 각 채널별로 다르게 설정하거나, 센서 특성에 맞춰 동적으로 조정하는 기법도 연구된다.

**RLS 알고리즘**

LMS 알고리즘은 단순 구현이 장점이지만, 성능 측면에서 RLS(Recursive Least Squares) 알고리즘이 더 빠르고 정밀하게 수렴한다. RLS에서는 최근 입력 샘플 전체에 대한 오차를 제곱합 형태로 최소화하며, 지수 가중을 적용해 오래된 데이터의 영향력을 줄일 수 있다. RLS 필터 계수는 다음과 같은 재귀식으로 구한다.

$$
\begin{align}\\
\mathbf{K}\[n] &= \frac{\mathbf{P}\[n-1]\mathbf{x}\[n]}{\lambda + \mathbf{x}^T\[n]\mathbf{P}\[n-1]\mathbf{x}\[n]} \nonumber \ e\[n] &= d\[n] - \mathbf{w}^T\[n-1]\mathbf{x}\[n] \nonumber \\
\mathbf{w}\[n] &= \mathbf{w}\[n-1] + \mathbf{K}\[n],e\[n] \nonumber \\
\mathbf{P}\[n] &= \frac{1}{\lambda}\Bigl\[\mathbf{P}\[n-1] - \mathbf{K}\[n]\mathbf{x}^T\[n]\mathbf{P}\[n-1]\Bigr] \nonumber
\end{align}
$$

여기서 $\lambda$는 망각계수(forgetting factor)로 1에 가까울수록 과거 데이터를 많이 반영한다. $\mathbf{P}\[n]$는 공분산 행렬의 추정치 역행렬로서, 매 샘플마다 업데이트되며 수렴 속도에 큰 영향을 미친다.

**구조적 이해**

아래는 적응형 필터 구조를 단순화한 흐름도 예시다.

{% @mermaid/diagram content="flowchart LR
A(("입력 x\[n]")) --> B\["적응형 필터(계수 w\[n])"]
B --> C(("출력 y\[n]"))
D(("목표 d\[n]")) --> E\["오차 계산 e\[n] = d\[n] - y\[n]"]
C --> E
E --> F\["계수 업데이트 (LMS, RLS 등)"]
F --> B" %}

오차 $e\[n]$를 계산하여 계수를 갱신하고, 갱신된 계수로 새로운 출력 $y\[n+1]$을 구하는 과정을 반복한다.

#### 다변량 필터(MIMO 구조)

센서 퓨전에서는 하나의 센서보다 여러 센서를 동시에 사용하는 경우가 대부분이므로, 다수의 입력과 다수의 출력(MIMO, Multi-Input Multi-Output) 구조를 고려해야 할 때가 많다. 예를 들어 $\mathbf{x}(n)$이 $p$차원의 벡터, $\mathbf{d}(n)$이 $q$차원의 벡터라면 필터 계수도 행렬 구조를 갖게 된다. 즉

$$
\begin{align} \mathbf{y}(n) &= \mathbf{W},\mathbf{x}(n) \nonumber  \end{align}
$$

여기서 $\mathbf{W}$는 $q \times p$ 차원을 갖는 행렬 계수다. 오차 역시 벡터 형태가 되므로, 오차 행렬 기반으로 MSE를 정의하고 이를 최소화하는 방향으로 해석할 수 있다. 적응형 알고리즘 또한 같은 원리로 확장할 수 있으나, 차원이 늘어남에 따라 계산 복잡도와 수렴 안정성 측면에서 주의가 필요하다.

#### 비선형 필터

앞서 다룬 이론은 대부분 선형 시스템을 전제로 한다. 그러나 실제 센서 출력 신호에 비선형 요소가 강하게 섞여 있거나, 센서 측정 범위가 제한되는 경우(예: 포화현상, 클리핑)가 있으면 비선형 필터가 필요할 수 있다. 가장 간단한 예시로서 메디안(Median) 필터나 모폴로지(Morphology) 필터 등이 영상처리나 잡음 억제에 활용된다. 또한 머신러닝 기법이 접목되면, 인공신경망 기반 필터나 커널 방법론을 적용한 적응형 필터가 등장한다. 이런 기법은 다소 계산량이 크지만, 복잡한 잡음 구조를 해석하고 제거하는 데 우수한 성능을 낼 수 있다.

#### 파라메트릭과 논파라메트릭 방식

필터 설계에서 시스템 모델을 파라메트릭하게 가정할 수도 있고(예: 특정 차수의 선형 시스템), 그렇지 않을 수도 있다. 파라메트릭 접근은 설계에 유연성을 부여하기 어렵지만, 시스템 해석이 간단하고 계산이 빠르다. 반면 논파라메트릭 접근은 임의의 형태를 가정해두고 데이터를 통해 직접 학습하는 방식으로, 머신러닝과 결합되면 대단히 강력해진다. 센서 퓨전에서 다중 센서의 입력-출력 관계를 단순 선형 모델로 파악하기 어려운 상황이라면, 비선형 논파라메트릭 방법을 적용해 더 정밀한 추정을 시도할 수도 있다.

#### 필터 설계 시 주의사항

센서 퓨전 과정에서 필터를 설계할 때는 다음과 같은 요소가 복합적으로 고려된다.

* 필터 오차 특성과 응답 속도, 잡음 특성의 주파수 대역, 센서 응답 지연(time delay), 실시간 구현 제약, 연산 자원 한계(하드웨어 리소스), 데이터 샘플링 주파수 범위, 상호간섭 현상 등.
* 특히 의료 분야처럼 신호 왜곡이 치명적인 경우에는 위상 변형(phase distortion)이 작은 필터를 선택해야 하며, 무인 이동체 분야에서는 실시간 요구 사항과 오차 특성 간 절충점을 찾아야 한다.

#### 다중레이트(Multirate) 신호처리

센서 퓨전에서 각 센서마다 샘플링 속도가 다를 수 있으므로, 다중레이트 신호처리를 적용할 필요가 생긴다. 다중레이트 시스템은 샘플링 속도를 변환(Decimation, Interpolation)하거나 필터뱅크(Filter Bank)를 사용해 여러 서브밴드(subband)로 신호를 분해·합성하는 기법을 말한다. 이를 통해 계산 자원을 효율적으로 사용하거나, 관심 대역별 처리를 분리하여 해석 정확도를 높일 수 있다.

**Decimation과 Interpolation**

Decimation은 기존 샘플링 주파수보다 낮은 샘플링 주파수로 줄이는 작업이고, Interpolation은 그 반대다. 센서 데이터가 매우 높은 샘플링 레이트를 가지면 필요한 주파수 대역에 맞추어 Decimation을 적용해 데이터를 압축할 수 있다. 반면 특정 대역 해석을 위해 샘플링 레이트를 올려야 할 때 Interpolation을 적용한다. 이 과정에서 필수적으로 고품질의 필터(안티에일리어싱 필터 및 이미징 억제 필터)가 사용된다.

다중레이트 필터는 폴리페이즈(Polyphase) 구조로 구현하면 연산 효율이 크게 개선된다. 예를 들어 Decimation 필터를 설계할 때, 대역제한 저역통과 FIR 필터가 필요한데, 필터를 직접 적용 후 샘플을 버리는 대신 폴리페이즈 구조를 활용하면 중복 계산이 줄어든다. 센서 퓨전에서는 배터리나 마이크로프로세서 성능이 제한적일 수 있으므로, 이 같은 최적화 기법이 중요하다.

#### 고급 필터 설계 기법

**FIR 필터의 윈도우(Window) 기법**

FIR 필터 설계에서 이상적인 주파수 응답에 근사하기 위해 윈도우 함수를 곱하는 전통적 방법이 있다. 대표적으로 해밍(Hamming), 해닝(Hanning), 블랙맨(Blackman) 윈도우 등을 사용한다. 설계 절차는 다음과 같이 요약될 수 있다.

이상적인 필터의 임펄스 응답을 구한 뒤($h\_{ideal}\[n]$), 유한 길이로 자른 후 원하는 윈도우 함수를 곱한다($w\[n]$). 결과적으로

$$
\begin{align} h\_{FIR}\[n] &= h\_{ideal}\[n]\ w\[n] \nonumber  \end{align}
$$

형태를 얻는다. 윈도우에 따라 통과대역 리플 정도와 스톱밴드 감쇠 능력이 달라진다.

**체비셰프(Chebyshev)와 엘립틱(Elliptic) 필터**

IIR 필터 설계에서는 전통적으로 버터워스(Butterworth), 체비셰프(Chebyshev), 베셀(Bessel), 엘립틱(Elliptic) 필터가 쓰인다. 각 필터는 통과대역 리플과 스톱밴드 감쇠 성능, 위상 특성 등이 달라서 용도에 따라 선택한다.

체비셰프는 주파수 응답의 일부 구간에서 리플이 있지만, 짧은 차수로도 강력한 감쇠 성능을 얻는다. 엘립틱 필터는 통과대역과 스톱밴드 양쪽에서 리플이 있지만, 가장 빠른 롤오프(roll-off)를 갖는다. 센서 퓨전에서는 크기 응답보다 위상 응답이 중요한 경우도 있으므로, 설계 초기부터 위상 왜곡을 고려해야 한다.

**최적 등리플(Equiripple) 설계**

FIR 필터에서 등리플(equiripple) 접근은 통과대역과 저지대역에서의 최대 오차를 동일하게 만들면서 최소화하는 기법이다. 일반적으로 파크스-맥클렐란(Parks-McClellan) 알고리즘이 널리 사용된다. 이는 첼비셰프 근사를 FIR 영역에서 실현한 것으로, 동일 차수에서 매우 우수한 주파수 응답을 얻는 장점이 있다.

#### 스펙트럼 추정과 파라메트릭 방법

센서 데이터에 포함된 잡음이나 유효신호 특성을 주파수영역에서 해석하려면 파워 스펙트럼 밀도(PSD) 추정이 필요하다. 고전적 방법으로는 윈도우 FFT 또는 Welch 기법을 쓸 수 있으나, 파라메트릭 스펙트럼 추정(AR, MA, ARMA 모델 등)을 적용하면 더 높은 주파수 해상도와 노이즈 억제 효과를 기대할 수 있다.

예를 들어 AR(Auto-Regressive) 모델에서 신호 $\mathbf{x}\[n]$는 다음과 같이 표현된다.

$$
\begin{align} x\[n] &= -\sum\_{k=1}^{p} a\_k,x\[n-k] + u\[n] \nonumber  \end{align}
$$

여기서 $u\[n]$는 화이트 잡음이고, $p$는 모델 차수다. 이때 계수 $a\_k$를 추정하면 간접적으로 신호의 PSD를 얻을 수 있다. 센서 퓨전에서는 특정 공진 주파수나 잡음 특성이 AR(또는 ARMA) 모델로 표현될 때, 이를 이용해 필터 설계 혹은 예측을 수행하기도 한다.

#### 웨이블릿(Wavelet) 분석과 비정상 신호 처리

센서 데이터가 국소적 이벤트나 비정상(non-stationary) 특성을 지닐 때는 푸리에 변환만으로 진단이 어렵다. 이 경우 시간-주파수 해석 능력을 갖는 웨이블릿 변환이 각광받는다. 웨이블릿 변환은 신호를 스케일(scale)과 시프트(shift) 관점에서 분해하여, 특정 구간에서 발생하는 이상 패턴이나 순간적 변화를 효과적으로 포착한다.

웨이블릿 필터뱅크를 구성하여 노이즈 제거나 특징 추출을 수행할 수 있으며, 특히 센서 퓨전에서 고장 탐지, 이벤트 검출 등에 활용할 수 있다. 디스크리트 웨이블릿 변환(DWT)은 필터 계수가 고정된 두 개의 필터(저역통과, 고역통과)로 신호를 분해하는 과정을 반복 구현하며, 이를 다중해상도(multiresolution) 분석이라 한다.

#### 잡음 특성이 복잡한 경우의 필터링

센서 퓨전에서 마주치는 잡음은 백색가우시안 잡음(WGN) 외에도 저주파 드리프트, 컬러 잡음(colored noise), 비정상 잡음, 간섭신호(interference) 등이 있다.

저주파 드리프트의 경우 하이패스 필터나 트렌드 제거 기법을 적용한다. 컬러 잡음은 ARMA 등 파라메트릭 모델링을 통해 필터 계수를 최적화하거나, 주파수 도메인에서 능동적으로 적응형 필터를 설계해야 한다.

또한 특정 주파수 대역에서 강한 간섭이 존재하면 노치(Notch) 필터나 적응형 잡음 상쇄(ANC, Active Noise Cancellation) 기법을 사용할 수 있다. 적응형 잡음 상쇄 기법은 마이크로폰이나 다른 보조 센서 신호를 참조로 삼아 간섭 성분을 학습하고 제거하는 방식이다.

#### 고차 통계량과 선형성 가정의 이탈

보통 필터 설계를 할 때, 2차 통계량(분산, 공분산, 상관함수)에 기초한다. 하지만 센서 데이터가 왜도(skewness)나 첨도(kurtosis) 등 고차 통계량을 지닐 경우(비정규 분포), 단순 선형 필터로는 한계가 발생한다. 예를 들어 이상치가 섞여 있는 분포에서는 평균제곱오차 관점보다 강인(Robust)한 기준이 필요하다. 이런 맥락에서 중위값 중심의 비용함수나, M-추정 이론 등을 적용한 강인 필터가 등장한다.

특히 산업현장 센서 데이터를 다룰 때 측정오차나 이상치가 빈번히 발생하므로, 고차 통계량 기반의 잡음 모델링이 필수적일 수 있다.

#### 확장 칼만 필터(Extended Kalman Filter)와 비선형 칼만 필터

센서 퓨전에는 칼만 필터가 널리 쓰이지만, 시스템이 비선형 형태로 표현될 때는 확장 칼만 필터(Extended Kalman Filter, EKF), 무허용량 칼만 필터(Unscented Kalman Filter, UKF) 등이 사용된다. 이는 고전적 선형 필터 이론을 테일러 전개나 시변 가우시안 근사 등을 통해 확장한 것이며, 신호처리 및 필터 이론의 또 다른 발전된 모습이다.

비선형 센서 모델이나 복잡한 관측 함수를 갖는 경우, EKF나 UKF의 적용이 필수적이다. 이때도 기본적인 신호처리와 랜덤 프로세스 이론이 기반이 되므로, 필터 설계를 위해서는 앞서 다룬 선형 필터 이론을 충분히 이해해야 한다.

#### 필터뱅크와 다채널 분해

서로 다른 주파수 대역의 정보를 분리·추출하기 위해 필터뱅크를 쓴다. 다중 채널 센서를 하나의 뱅크 구조로 다룰 수도 있고, 단일 센서의 신호를 다중 대역으로 나누어서 세밀하게 분석할 수도 있다. 예를 들어 음성·진동 센서의 진동신호를 저주파, 중주파, 고주파 대역으로 분해해 각각의 에너지를 측정하고, 이를 통해 고장 징후를 진단한다.

이처럼 센서 퓨전에서 주파수 선택적 처리는 매우 중요한 역할을 하며, 모듈화된 필터뱅크 구조는 병렬처리를 쉽게 할 수 있다는 장점도 있다.

#### 실제 구현 시 고려사항

실제 하드웨어 및 임베디드 시스템에 필터를 구현하려면 고정소수점 연산이나 부동소수점 연산에 따른 정밀도 차이, 계산속도, 메모리 사용량 등을 감안해야 한다. 필터 차수가 높아질수록 처리량이 급증하므로, FPGA나 DSP 칩 등 전용 하드웨어가 필요한 경우도 있다. 센서 퓨전은 여러 신호를 동시에 처리하므로 실시간성을 만족하기 위해서는 최적화가 필수적이다.

예시로 고정소수점 DSP에서 IIR 필터를 구현할 때, 내부 연산에서 오버플로 방지나 스케일링 이슈가 발생할 수 있다. 또한 필터 계수의 양자화로 인한 주파수 응답 열화도 생긴다. 설계자는 이 모든 요소를 종합적으로 고려해야 한다.

#### 신호 동기화와 정렬 기법

센서 퓨전은 여러 신호를 종합해야 하므로, 각각의 센서 신호가 시간축에서 정확히 정렬되어 있는지가 중요하다. 샘플링 레이트가 다르거나 측정 시점에 지연이 있는 경우, 신호를 동기화하고 보정해야 제대로 된 필터링과 통합 해석이 가능하다. 이를 위해 상호상관 기반 정렬(cross-correlation alignment) 기법이나 정밀 타임스탬프 기반의 보간(interpolation) 기법을 적용하기도 한다.

예를 들어 센서 A와 센서 B가 동시에 같은 물리 현상을 측정하지만 내부적으로 1ms 정도 위상이 어긋나 있다면, 교차상관 함수를 계산해 최대값이 나타나는 지연 시간을 찾을 수 있다. 그 지연 시간만큼 신호를 보정하여 완전히 겹치도록 맞춘 뒤에 필터링이나 퓨전을 진행하면 보다 정확한 결과를 얻는다.

#### 커스텀 위상 특성 설계

어떤 센서응용은 진폭응답보다 위상응답이 더 중요하다. 예를 들어 진동 분석에서, 특정 주파수 성분의 위상 변화를 면밀히 추적해야 고장 징후를 알 수 있는 경우가 있다. 이때는 위상 왜곡이 거의 없는 선형위상(linear phase) FIR 필터를 쓰거나, 위상 왜곡을 최소화하는 IIR 필터 설계를 고려해야 한다.

선형위상 FIR 필터는 계수의 시간적 대칭을 유지하면 실현 가능하다. 필터 차수가 길어질 수 있으나, 시간영역과 주파수영역에서 왜곡이 적어 분석 정밀도가 높아진다. IIR 필터로는 완전 선형위상이 불가능하므로, 보정 필터(all-pass filter) 등을 추가로 구성해 위상을 맞추기도 한다.

#### 공간 도메인 필터링

센서가 물리적 공간 분포에 따라 배치되어 측정하는 경우(예: 마이크 어레이, 안테나 어레이, 영상센서 등), 공간 도메인에서도 필터링이 필요하다. 이를 빔포밍(Beamforming) 또는 공간 필터링이라고 부르며, 원하는 방향의 신호만 통과시키고 다른 방향은 억제하는 역할을 한다.

예를 들어 안테나 배열에서 특정 방위각(direction)으로부터 도달하는 신호를 극대화하고, 다른 방향 잡음을 최소화하려면 위너 최적화나 적응형 알고리즘(LMS, RLS 등)을 공간축으로 적용한다. 신호가 시간축뿐 아니라 공간축에서도 합성(convolution) 형태로 중첩되므로, 필터 구조가 다차원화된다. 센서 퓨전에서는 공간 필터링으로부터 도출된 결과를 다른 센서 데이터와 통합하여 더욱 정밀하게 목표를 추정한다.

#### 상태 추정과 필터 이론의 접목

실제 센서 퓨전 과정에서, 단순히 주파수대역 잡음을 제거하는 것을 넘어 동적 시스템의 내부 상태(예: 위치, 속도, 가속도, 온도 등)를 추정할 때가 많다. 이 경우 칼만 필터류가 핵심 도구로 활용된다.

선형 가우시안 시스템이라면 고전 칼만 필터를 적용하고, 모델이 비선형이면 EKF나 UKF 등을 적용한다. 신호처리와 필터 이론에서 배운 주파수 도메인, 시불변 가정 등을 적절히 활용해 모델링을 수행하며, 측정 잡음 공분산행렬과 시스템 노이즈 공분산행렬을 설계 변수로 삼는다. 이때 잡음 특성을 제대로 파악하지 못하면 추정 성능이 크게 저하된다.

#### 분산 및 병렬처리 구조

고차원의 센서 데이터가 실시간으로 들어올 때, 하나의 프로세서가 모든 필터링을 담당하기는 쉽지 않다. 병렬처리나 분산처리를 통해 연산부하를 효율적으로 분산해야 한다. 필터뱅크(필터 묶음) 구조나 다중 코어 시스템에서의 파이프라인(Pipeline)을 잘 설계하면, 각 센서 채널별 신호처리와 퓨전 연산을 병행할 수 있다.

FPGA나 GPU 같은 하드웨어 가속기를 사용하면, FIR 또는 IIR 연산에 대한 대규모 병렬화가 가능하다. 센서 퓨전 시스템 설계 시에는 알고리즘 복잡도, 소프트웨어 파이프라인 전략, 하드웨어 한계 등을 종합적으로 고려해 최적 아키텍처를 결정한다.

#### Python 예제: 간단한 FIR 필터 구현

아래는 Python 코드로 간단한 FIR 필터를 직접 구현해보는 예시다. 오프라인 방식이지만, 센서 데이터가 배열 형태로 주어졌을 때 적용 가능하다.

```python
import numpy as np
import matplotlib.pyplot as plt

# 샘플 수
N = 500
t = np.linspace(0, 1, N, endpoint=False)
# 합성 신호 (예: 50Hz + 120Hz + 잡음)
x = np.sin(2*np.pi*50*t) + 0.5*np.sin(2*np.pi*120*t) + 0.2*np.random.randn(N)

# 간단한 저역통과 FIR 계수 (예: 창문함수를 사용하여 설계)
# 계수 길이 M
M = 31
# 이상적인 sinc 필터
fc = 0.2  # 정규화 차단주파수 (Nyquist=0.5로 가정)
n = np.arange(M) - (M-1)/2
h_ideal = np.sinc(2*fc*(n))
# 해밍 윈도우 적용
w = 0.54 - 0.46*np.cos(2*np.pi*n/(M-1))
h = h_ideal * w
h = h / np.sum(h)  # DC 이득 1로 정규화

# 필터링
y = np.convolve(x, h, mode='same')

# 결과 시각화
plt.figure(figsize=(10,6))
plt.subplot(2,1,1)
plt.plot(t, x, label="입력 신호")
plt.title("입력 신호")
plt.subplot(2,1,2)
plt.plot(t, y, label="필터 출력", color='red')
plt.title("FIR 필터 출력")
plt.tight_layout()
plt.show()
```

위 코드에서는 간단한 저역통과 FIR 필터를 설계하고, 이를 통해 합성된 잡음 신호를 필터링한다. 실제 센서 퓨전 상황에서는 여러 센서 데이터를 각각 필터링한 뒤, 필요한 동작(예: 합성, 가중 평균, 모델 추정)을 수행한다.

#### 필터 알고리즘 선택 가이드

문제마다 요구되는 사양이 다르므로, 필터 알고리즘을 결정할 때는 다음과 같은 요소를 살핀다(단, 아래는 요약적 언급이다).

잡음 스펙트럼 형태(백색, 컬러, 비정상), 실시간성 여부, 연산 자원, 위상 왜곡 허용범위, 출력 신호의 민감도, 차단 주파수 및 대역폭, 시스템 동적 모델(선형/비선형), 다중 센서 상호 상관관계 등.

이를 종합해 FIR, IIR, 적응형 필터, 칼만 필터, 비선형 칼만 필터, 웨이블릿 기반 분석 등의 기법 중 하나 혹은 복합 방식을 선정한다.

#### 추가적 필터링 기법과 응용

센서 퓨전에서는 여러 종류의 센서 신호가 섞여 들어오므로, 상황에 맞춰 다양한 필터링 기법을 적용할 수 있다. 이미 언급한 전통적 FIR/IIR 필터, 적응형 필터, 칼만 필터 외에도 다음과 같은 기법이 자주 응용된다.

#### α-β 필터와 Complementary Filter

상대적으로 간단한 구현을 요구하는 응용에서 각광받는 필터로서, 항공우주·모바일 로봇 등의 관성센서 처리에 자주 쓰인다.

α-β 필터는 측정 데이터와 예측값 간의 보정을 위해 두 개(또는 세 개)의 파라미터(α, β, 필요 시 γ)를 사용하여, 속도·가속도 등의 추정값을 재귀 갱신한다. 칼만 필터에 비해 수학적 모델이 단순하고, 연산량이 작아 임베디드 환경에 적합하다.

Complementary Filter는 서로 상반된 주파수 대역에서 신뢰도가 높은 두 개의 센서(예: 자이로스코프와 가속도계) 신호를 저역 통과분과 고역 통과분으로 각각 분리하고, 이를 합성하여 추정값을 얻는다. 센서마다 장단점이 다를 때, 서로 보완적으로 결합해 안정적 추정이 가능해진다.

#### 강인(Robust) 필터

센서 데이터를 실제로 다루다 보면, 일부 구간에서 갑작스럽게 큰 잡음이나 이상치(Outlier)가 발생할 수 있다. 전통적 2차 통계량 기반 필터는 이상치에 민감할 수 있으므로, 고차 통계량 또는 강인 통계(Robust Statistics)를 활용하는 필터가 제안된다. 예를 들어 M-추정(M-estimation) 기반으로 오차함수를 단순 제곱이 아니라 허버(Huber) 함수, 튜키(Tukey) 함수 등으로 정의하여, 일정 범위를 벗어나는 큰 오차값에 대한 민감도를 줄인다.

이렇게 하면 오차가 큰 센서 계측치가 필터 결과에 치명적으로 영향을 주지 않으므로, 전체적으로 더 안정적인 추정값을 얻을 수 있다. 센서 퓨전에서 특정 센서가 순간적으로 이상 동작하는 경우, 강인 필터가 유용하다.

#### 시스템 식별과 모델 기반 필터링

필터 설계에서 모델이 매우 중요하다. 모델에 따라 잡음 특성, 시스템 다이내믹스가 달라지므로, 먼저 센서 데이터를 토대로 시스템 모델을 식별(Identification)하는 절차가 필요할 수 있다.

시스템 식별 기법에는 ARX, ARMAX, OE(Output Error), Box-Jenkins 모델 등 다양한 형태가 있다. 데이터를 충분히 모아서 주어진 차수 범위 안에서 파라메터를 추정하고, 그 모델에 근거해 필터를 설계하면, 관측 잡음과 시스템 노이즈를 보다 정확하게 반영할 수 있다.

센서 퓨전에서는 여러 센서의 동적모델을 동시에 식별하거나, 각 센서별 모델을 식별한 뒤 전역 모델을 구성하기도 한다. 이 과정에서 기존의 신호처리·필터 이론이 식별 단계와 긴밀히 결합한다.

#### 안정성과 극점(Pole) 해석

디지털 IIR 필터나 연속시간 아날로그 필터 모두, 전달함수의 극점(pole)이 시스템 안정성에 핵심 영향을 준다. Z-변환 영역에서 극점이 단위원 내(in the unit circle)에 있어야 디지털 필터가 안정적이고, 라플라스 변환 영역에서 극점의 실수부가 음수(Left-half plane)에 위치해야 아날로그 필터가 안정적이다.

특히 센서 퓨전에서 내부 피드백 구조가 있는 적응형 필터 또는 칼만 필터류를 쓸 때, 매트릭스 형태의 극점(행렬 고유값)이 안정 영역에 있는지 검사해야 한다. 예를 들어 칼만 이득(Kalman gain)의 수렴 여부와 상태추정 공분산의 양의 정부성(Positive definiteness)을 모니터링하는 것이 대표적이다.

#### 위상선도와 주파수 응답 분석

IIR 필터를 설계했거나, 회로 기반 아날로그 필터를 구현했을 때, 나이퀴스트 선도(Nyquist plot), 보드선도(Bode plot)를 통해 시스템 거동을 파악할 수 있다. 보드선도를 보면, 진폭응답(magnitude response)과 위상응답(phase response)을 한눈에 파악하여, 차단 주파수나 위상 마진, 이득 마진 등을 확인한다.

센서 퓨전에서는 필터가 측정 데이터의 파워 분포를 어떻게 바꾸는지, 특정 주파수 대역에서 위상 지연이 어떻게 발생하는지 등을 고려해 종합적인 동작 검증을 수행한다. 특히, 위상 지연이 크게 발생하면 센서 동기화나 실시간 제어에 문제가 생길 수 있으므로, 필터 설계 시 주의가 필요하다.

#### 스펙트럼 해석과 윈도우(신호 분석)

실제 센서 신호의 주파수 스펙트럼을 알아야 필터 차단 주파수나 대역폭을 결정할 수 있으므로, 단순 FFT만이 아니라 적절한 윈도우를 적용한 스펙트럼 추정기법을 사용한다. 가령 센서 데이터가 유한 길이로 주어지면, 사각 윈도우(rectangular window)만 사용하면 스펙트럼 누출(leakage)이 심해 정확도가 떨어질 수 있다. 해밍(Hamming)·블랙맨(Blackman) 등의 윈도우를 사용하거나, 웰치(Welch) 기법처럼 구간분할 후 평균을 내는 방식도 활용된다.

#### 짧은 구간 푸리에 변환(STFT)

센서 신호가 비정상(non-stationary) 특성을 보일 경우, 전체 구간에서 FFT를 취해버리면 시간축 변화 정보를 잃어버릴 수 있다. 이를 보완하기 위해 짧은 구간 푸리에 변환(STFT, Short-Time Fourier Transform)을 사용한다. 센서 신호를 짧은 프레임(window)으로 나눈 뒤 각 프레임마다 FFT를 구해 스펙트로그램(spectrogram)을 얻는다.

진동이나 음향, 생체신호 등에서 특정 시간 구간에만 발생하는 이벤트나 잡음 패턴을 찾을 때 효과적이다. 센서 퓨전에서는 다중 채널 데이터를 시간-주파수 영역으로 분석하여, 어느 시점에 어떤 주파수 대역에서 이상 신호가 나타나는지 파악할 수 있다.

#### 커널 기반 비선형 필터

머신러닝 기법과 결합하여, 비선형 입력-출력 관계를 커널(Kernel) 트릭으로 선형공간에서 풀어내는 커널 적응형 필터도 연구된다. LMS나 RLS 알고리즘을 커널 공간에서 확장하면, 측정 신호의 비선형성을 일정 부분 커버할 수 있다. 예를 들어, $\phi(\mathbf{x})$로 매핑된 고차원 공간에서 최적의 선형 필터를 찾으면, 원 신호공간에서는 비선형 필터를 적용한 것과 동일한 효과를 낸다.

이는 계산량이 많아질 수 있으나, 상황에 따라서는 전통적 비선형 필터보다 더 단순한 구조로 구현 가능하기 때문에, 센서 데이터의 특징이 복잡할 때 고려해볼 만하다.

#### 모폴로지 필터와 영상·이미지 센서

영상센서나 2D/3D 배열 센서를 활용할 때는 공간 도메인의 필터링 기법도 중요하다. 모폴로지(Morphology) 필터는 영상에서 객체의 형태 정보(침식, 팽창, 열림, 닫힘)를 통해 잡음을 제거하거나 특징을 추출한다. 예컨대 Lidar 신호나 레이더 신호를 2D 맵 형태로 표현하고 모폴로지 연산을 하면, 장애물 형상을 보다 정확히 파악할 수 있다.

센서 퓨전에서는 1D 신호와 2D/3D 영상 신호를 함께 처리해 종합적 판단을 해야 하는 경우도 많으므로, 모폴로지 필터, 적응형 스무딩 등 영상처리 측면의 필터 이론도 알아두어야 한다.

#### 실험적 튜닝과 실시간 모니터링

아무리 이론적으로 뛰어난 필터를 설계해도, 실제 환경의 불확실성이나 변동에 의해 기대만큼의 성능이 나오지 않을 수 있다. 따라서 실제 시스템에서 실험 데이터(offline data)를 모아서 반복 튜닝을 수행해야 한다. 필터 계수나 알고리즘 파라메터(학습률, 망각계수, 차단주파수 등)를 실제 측정 결과에 맞추어 재조정하면서, 목표 성능을 달성하는지 확인한다.

실시간 시스템이라면 필터 출력을 모니터링해, 특정 임계값을 벗어나거나 수렴 특성이 나빠질 때 자동으로 파라메터를 변경하거나 백업 알고리즘으로 전환하는 예외 처리도 필요하다.

#### 분산 센서 네트워크의 필터링

센서가 지리적으로 분산되어 네트워크를 통해 연결되는 상황(예: IoT, 무선 센서 네트워크)에서는 중앙집중 방식으로 모든 데이터 처리를 하기 어려울 수 있다. 이때는 각 노드에서 부분적 필터링이나 전처리를 수행하고, 중요한 정보만 전송하도록 설계한다.

이를 위해 분산형 칼만 필터(Distributed Kalman Filter), 협력적 빔포밍(Cooperative Beamforming) 같은 기법이 활용된다. 각 센서 노드는 지역적으로 상태추정을 하면서, 네트워크를 통해 이웃 노드나 중앙 서버와 정보를 교환하여 전체 시스템의 글로벌 추정을 이루어낸다.

이처럼 네트워크 레벨에서의 신호처리를 고려하면, 단순 필터 설계 이상의 알고리즘 통합이 필요하다.

#### 정리

지금까지 센서 퓨전에서 중요한 신호처리와 필터 이론을 기초부터 고급 개념까지 광범위하게 살펴보았다. 앞선 내용은 칼만 필터와 비선형 필터, 적응형 기법, 웨이블릿, 다중레이트, MIMO 구조 등 실제 센서 퓨전 상황에서 흔히 마주치는 문제를 해결하기 위한 이론적 토대를 제공한다. 이러한 이론들이 어떻게 구체적인 센서 퓨전 시스템에 적용되는지는 후속 장(또는 사례 연구)에서 좀 더 심층적으로 다룰 것이다.

#### H∞ 필터(H-infinity Filtering)

센서 퓨전에서 시변적인 외란(disturbance)이나 모델링 오차에 대해 더욱 보수적인 관점으로 안정적 추정을 원할 때, H∞ 필터가 사용된다. 기존 칼만 필터가 가우시안 잡음을 전제로 평균제곱오차(MSE)를 최소화하는 확률적 접근이라면, H∞ 필터는 최소화하려는 지표가 확률적이지 않고 “최악의 경우(worst-case)” 시나리오에 대한 에너지를 억제하는 방식이다.

문제 설정은 시스템이 아래 형태의 유한차원 선형 상태공간 표현을 가진다고 하자.

$$
\begin{align} \mathbf{x}\_{k+1} &= \mathbf{A},\mathbf{x}\_k + \mathbf{B},\mathbf{u}\_k + \mathbf{w}\_k \nonumber  \\
\mathbf{z}\_k &= \mathbf{C},\mathbf{x}\_k + \mathbf{D},\mathbf{u}\_k + \mathbf{v}\_k \nonumber  \end{align}
$$

여기서 $\mathbf{x}\_k$는 상태(state), $\mathbf{z}\_k$는 관측값이다. 잡음(외란) 항 $\mathbf{w}\_k, \mathbf{v}\_k$에 대한 특정 확률적 가정 없이, 시스템 반응 $\mathbf{x}\_k$와 $\mathbf{z}\_k$의 L2 또는 H∞ 노름을 제어하는 관점이다. 설계자가 원하는 것은 $\mathbf{x}\_k$ 추정 오차의 H∞ 노름을 특정 한계 이하로 유지하는 추정기(필터) 설계이다.

H∞ 필터는 레귤레이터 이론과 비슷한 수학적 해법(리카티 방정식 형태 등)을 통해 설계되며, “가장 나쁜 잡음”이 들어와도 오차가 일정 범위로 억제되도록 한다. 이는 시스템 모델링이 부정확하거나, 잡음 특성에 대한 통계정보가 명확치 않을 때 유리하나, 보수적으로 설계되므로 칼만 필터에 비해 실제 평균적 성능은 다소 떨어질 수도 있다.

#### 배치(Batch) 추정과 순차(Sequential) 추정

센서 퓨전에서 필터링을 수행할 때, 크게 두 가지 접근이 있다.

배치 추정: 모든 시점의 데이터를 한꺼번에 모아서 처리하는 방식이다. 최소제곱추정(LS), 배치 형태의 MLE(Maximum Likelihood Estimation), SVD 기반 해석 등이 이에 해당한다. 전체 데이터를 대상으로 최적화하므로 전역적 최적해를 찾기 쉽지만, 실시간 처리에는 부적합할 수 있다.

순차 추정: 칼만 필터처럼 새로운 측정이 들어올 때마다 추정값을 업데이트한다. 실시간성을 지원하지만, 과거 데이터 전체를 동시에 재처리하지 않으므로 전역 최적해와는 약간 차이가 있을 수 있다. 센서 퓨전에서는 실시간 요구사항이 많으므로 순차 추정 알고리즘이 매우 중요하다.

#### 파티클 필터(Particle Filter)

비선형·비가우시안 센서 모델을 다룰 때 자주 쓰이는 강력한 방법론이 파티클 필터(입자 필터)다. 샘플링 기반 방법으로, 상태공간에 대한 확률밀도를 다수의 파티클(표본)로 근사하고, 관측값이 들어올 때 베이즈 정리를 적용해 파티클의 가중치(weight)를 갱신한다.

파티클 필터의 핵심 단계는 다음과 같이 요약될 수 있다.

1. 예측 단계: 각 파티클의 상태를 동적 모델에 따라 진전(propagation)
2. 측정 업데이트 단계: 실제 센서 관측에 기반해 파티클별 가중치 조정
3. 리샘플링(Resampling) 단계: 가중치가 큰 파티클을 복제하고, 가중치가 낮은 파티클은 제거해 파티클 집단의 표현력을 유지

이는 순차 몬테카를로(Sequential Monte Carlo) 기법의 대표적 사례이며, 센서 퓨전에서 고차원 상태나 비정규 잡음을 다룰 때 유리하다. 다만 파티클 수가 많아지면 연산량이 크게 증가하므로, 효율적 샘플링 기법과 병렬처리를 병행해야 한다.

#### 불확실성 전파와 베이즈 필터 구조

센서 퓨전에서 상태 $\mathbf{x}\_k$를 추정하고자 할 때, 베이즈 필터 구조는 다음 확률밀도 함수를 재귀적으로 갱신하는 과정을 말한다.

사전 확률(예측 단계):

$$
p(\mathbf{x}*k | \mathbf{z}*{1:k-1}) = \int p(\mathbf{x}*k | \mathbf{x}*{k-1}) ,p(\mathbf{x}*{k-1} | \mathbf{z}*{1:k-1}),d\mathbf{x}\_{k-1}
$$

측정 업데이트(사후 확률):

$$
p(\mathbf{x}*k | \mathbf{z}*{1:k}) = \frac{p(\mathbf{z}\_k | \mathbf{x}\_k),p(\mathbf{x}*k | \mathbf{z}*{1:k-1})}{p(\mathbf{z}*k | \mathbf{z}*{1:k-1})}
$$

여기서 $\mathbf{z}\_{1:k}$는 시점 1부터 k까지의 모든 관측이다. 칼만 필터는 위 적분과정을 가우시안 가정 하에 선형화해 해석적으로 풀어낸 것이고, 파티클 필터는 몬테카를로 표본화로 근사해 푸는 방법이다. EKF, UKF는 측정 및 상태 방정식이 비선형이더라도 (부분) 가우시안 근사를 유지하는 방식으로 접근한다.

#### 엔트로피와 정보 이론적 관점

센서 퓨전에서 신호처리와 필터 이론을 정보 이론적 관점에서 해석하기도 한다. 예를 들어 필터링 과정을 통해 “노이즈를 제거한다”는 것은 실제 유용한 정보대역을 보전하면서 불필요한 무질서(엔트로피)를 줄이는 작업으로 볼 수 있다. 상호 정보(Mutual Information)나 크로스 엔트로피 등을 활용해 센서들 간의 정보적 상보성(complementarity)을 측정하고, 필터 설계 또는 센서 배치 최적화를 수행하는 연구도 이루어진다.

#### 세트 멤버십(Set Membership) 필터

잡음이 확률 분포 대신 구간(error bound) 정보로만 주어져 있을 때, 즉 “오차가 최대 ±ε 범위를 넘지 않는다” 같은 형태라면 세트 멤버십 추정(Set Membership Estimation) 기법이 유용하다. 이 접근은 가능한 상태값의 집합을 단계별로 업데이트하며, 모든 시점에서 측정 조건을 만족하는 상태의 영역을 축소해 나간다. 확률적 가정이 없으므로 보수적이지만, 모델링이 간단한 경우 실시간 구현이 가능하다.

센서 퓨전에서는 안전성 검증 등이 중요한 응용(예: 드론 충돌 방지)에 이 기법을 적용해, “상태가 반드시 이 영역 안에 있다”고 보증할 수 있다. 다만 구간이 커지면 실제로는 아주 드문 상태까지 가능하다고 포함하기 때문에, 필터 해석이 상당히 보수적으로 나올 수 있다.

#### 머신러닝과 필터 결합

최근에는 회귀(Regression)나 시계열 예측 모델(예: LSTM, GRU) 같은 딥러닝 기법을 센서 데이터에 적용한 뒤, 그 출력을 다시 전통적 필터 이론과 결합하는 방향의 연구도 활발하다. 예컨대

1. 딥러닝 모델이 비선형 잡음 구조를 학습해서 잔차(residual)를 출력한다.
2. 잔차를 전통적 필터(예: 칼만 필터)에서 잡음 항으로 간주하고, 상태 추정을 수행한다.

이때 딥러닝 모델이 측정 데이터에 대한 사전(先) 왜곡 보정(pre-filter) 역할을 할 수도 있고, 또는 추정 결과를 보완(후처리)하기도 한다.

하이브리드 구조이므로, 충분한 학습 데이터와 모델 검증이 필요하며, 필터 파라메터 조정도 복잡해질 수 있다. 그러나 센서 특성이 비정형적이거나 잡음 환경이 복잡할 때는 유망한 접근이다.

#### 센서 특성 기반 필터 파라메터 조정

각 센서별 특성이 다를 경우, 예를 들어 가속도계는 저주파 영역에서 드리프트가 심하고 자이로스코프는 고주파 잡음이 강하다면, 필터 내부에서 센서별 가중치나 잡음 공분산 행렬을 달리 설정해야 한다. 이는 칼만 필터의 경우 측정 잡음 공분산($\mathbf{R}$), 시스템 노이즈 공분산($\mathbf{Q}$)에 센서별 특성을 반영하는 것으로 나타난다. 적응형 필터인 경우, 채널별로 스텝 사이즈나 망각계수를 다르게 둘 수도 있다.

센서 퓨전 시스템에서 파라메터를 합리적으로 조정하려면, 사전에 센서 동작 실험을 통해 잡음 스펙트럼이나 편차를 파악하고, 이 값을 초기 설정으로 반영한 뒤 온라인에서 미세조정한다. 이때 필터 오차나 추정 정확도를 계량화할 수 있는 지표(RMSE, MAE, NRMSE 등)를 모니터링해야 한다.

#### 예측-보정(Predict-Update) 구조의 일반성

적응형 필터, 칼만 필터, 파티클 필터 모두 “예측(Predict) → 측정 업데이트(Update)” 단계를 반복하는 순환 구조를 가진다. 이는 동적 시스템 상태 추정에 대한 일반적 형태이며, 센서 퓨전에서 어떤 특정 필터를 쓰든 간에 동일한 틀로 해석할 수 있다.

* 예측 단계: 이전 추정 결과에 시스템 모델을 적용해 다음 시점의 상태를 추론
* 업데이트 단계: 새 관측(센서 측정) 정보를 수용해 예측값을 보정

이 구조를 좀 더 세분하면, 시스템 공정 잡음에 의한 오차 공분산 갱신, 센서 측정 노이즈에 따른 보정, 상호 상관성 해소 등이 포함된다.

#### 대규모 센서 네트워크와 분산 칼만 필터

센서 노드가 매우 많아 고차원 상태를 추정해야 하는 경우, 중앙 집중식 칼만 필터는 계산 복잡도와 데이터 전송 부담이 커진다. 이를 해결하려고 각 노드에서 부분적으로 상태를 추정하고, 상호 통신을 통해 추정치를 합성(Consensus)하는 분산 칼만 필터(Distributed Kalman Filter, DKF) 기법이 고안되었다.

네트워크 토폴로지(Topology)에 따라, 센서 노드 간에 특정 그래프 구조로 데이터를 공유할 수 있는데, DKF는 로컬 업데이트와 정보 교환 단계를 재귀적으로 수행하며 전체 시스템 상태를 근사 추정한다. 이를 최적화, 합의(Consensus) 알고리즘, 그래프 이론 등과 결합해 효율적으로 설계할 수 있다.

#### 예제: C++로 IIR 필터 구현

아래 간단한 예제 코드는 C++로 2차 IIR 필터를 실시간에 적용하는 방식을 시뮬레이션한다. 실제 임베디드 시스템에도 응용할 수 있다.

```cpp
#include <iostream>
#include <vector>
#include <cmath>
#include <cstdlib>

int main() {
    const int N = 500;
    double fs = 1000.0; // 샘플링 주파수
    std::vector<double> x(N), y(N, 0.0);

    // 예: 50Hz + 120Hz + 잡음
    for (int n = 0; n < N; ++n) {
        double t = n / fs;
        x[n] = std::sin(2.0 * M_PI * 50.0 * t)
             + 0.5 * std::sin(2.0 * M_PI * 120.0 * t)
             + 0.2 * ((double)std::rand() / RAND_MAX - 0.5);
    }

    // 예시 IIR 필터 계수(임의로 설정: 2차 저역통과)
    // y[n] = b0*x[n] + b1*x[n-1] + b2*x[n-2] - a1*y[n-1] - a2*y[n-2]
    double b0 = 0.0675, b1 = 0.1349, b2 = 0.0675;
    double a1 = -1.1430, a2 = 0.4128;

    // 필터링
    for (int n = 2; n < N; ++n) {
        y[n] = b0*x[n] + b1*x[n-1] + b2*x[n-2]
               - a1*y[n-1] - a2*y[n-2];
    }

    // 결과 출력(간단히 콘솔에)
    for (int n = 0; n < N; ++n) {
        std::cout << n << "\t" << x[n] << "\t" << y[n] << std::endl;
    }
    return 0;
}
```

이 코드는 매우 기초적 구조로, $b\_0, b\_1, b\_2, a\_1, a\_2$ 계수가 이미 주어진 상황에서 신호를 여과한다. 실제 설계에서는 필터 차단주파수, 감쇠특성, 위상특성을 만족하도록 계수를 산출한 뒤 적용한다.

#### 혼합 잡음 처리와 마스크(Masking) 기법

실제 센서 신호에는 여러 종류의 잡음이 중첩될 수 있다. 예를 들어, 전력선 60Hz 간섭이 존재하면서도 저주파 드리프트가 있고, 특정 순간에는 충격성 노이즈(Impulse Noise)가 들어오는 경우가 있다.

이럴 때는 단일 필터로 모든 잡음을 제거하기 어려우므로 주파수 대역별 혹은 신호 이벤트별로 마스크를 설정하거나, 단계적 필터링(예: 선형 필터 → 메디안 필터 → 적응형 필터)을 적용하기도 한다. 영상·음향 분석에서 흔히 쓰이는 “스펙트럼 마스킹” 기법을 1D 센서신호로 확장하는 사례도 있다.

#### 융합 전·후 신호품질 측정

센서 퓨전은 필연적으로 다중 신호를 결합하여 새로운 정보 혹은 추정값을 만든다. 이때 필터를 거치기 전과 후의 신호품질을 평가해, 필터 설계가 올바른지 점검해야 한다. 대표적으로 RMSE(Root Mean Square Error), 신호 대비 잡음비(SNR), 피크 대비 잡음비(Peak SNR), 상관도(Correlation), 스펙트럼 왜곡 정도 등이 사용된다.

특히 실험환경에서 실제 “정답(Reference)”을 알 수 있다면 RMSE를 직접 측정하여 필터 성능을 정량화할 수 있다. 정답을 모를 때는 교차검증이나 통계적 분석 방법(잉여도, 잔차검정 등)을 쓴다.

\--- 및 다음 주제

여기까지 센서 퓨전의 신호처리와 필터 이론 개요를 토대로, 고급 필터(파티클 필터, H∞ 필터 등), 분산 필터링, 머신러닝 결합 방식 등 다양한 확장 기법을 다루었다. 실제 응용에서는 각 센서 특성과 환경 잡음을 분석하고, 목적에 맞는 필터를 선택·설계해야 한다. 이후에는 센서 퓨전 전반에서 핵심 역할을 맡는 칼만 필터 계열과 비선형 변형 기법(EKF, UKF, Particle Filter 등)을 좀 더 깊이 있게 살펴볼 것이다.

#### 그래프 기반 센서 퓨전과 Factor Graph

센서 퓨전 문제를 그래프 이론 관점에서 접근하는 방식도 주목받고 있다. 예를 들어 SLAM(Simultaneous Localization and Mapping) 문제에서, 로봇이나 차량의 위치(state)와 센서 측정값 사이의 관계를 그래프 노드와 엣지로 표현하고, 이 그래프 전체에 대한 최적화를 수행한다. 이를 Factor Graph라고 부르며, 각 측정식은 펙터(Factor)로 추가된다.

칼만 필터나 적응형 필터는 시계열 순차처리 방식을 취하지만, Factor Graph는 문제 전체를 하나의 대규모 최적화 문제로 본다. 알고리즘으로는 Levenberg-Marquardt, 가우스-뉴턴, Dogleg, iSAM2(incremental Smoothing And Mapping) 등이 사용된다. 센서 퓨전에서 위치추정, 맵 구성, 관성·GPS·카메라 데이터 통합 등에 특히 유용하다.

Factor Graph 관점에서, 상태 변수(예: 위치, 자세, 환경 특징 등)들이 노드가 되고, 센서 측정식이 이 노드들을 연결하는 펙터로 표현된다. 각 펙터는 오차함수를 정의하며, 그래프 상의 모든 오차함수를 동시에 최소화하는 것이 전체 추정 문제의 해가 된다. 이때 일반적인 필터 이론에서 다루는 공분산, 잡음 모델이 펙터 형태로 들어가며, 고차원 문제나 비선형 문제도 통합적으로 다룰 수 있다.

#### 고차원 상태공간과 희소성(Sparsity)

센서 수가 많아지고 추정해야 할 상태 변수가 늘어나면, 상태공간의 차원이 매우 커진다. 이때 직접 칼만 필터를 적용하면 공분산 행렬 크기가 커져 연산량이 폭발적으로 증가한다. Factor Graph나 분산 칼만 필터 접근은 이러한 고차원 문제에서 희소성(sparsity)을 활용하여 연산을 최적화한다.

센서 간 상호 관계나 인접 시점 사이에만 의미 있는 연결(Edge)이 있다면, 전체 그래프는 희소 행렬 구조를 띠게 된다. 선형 대수학적 연산에서 희소 행렬 기법을 활용하면 대규모 문제도 실시간에 가깝게 풀 수 있다.

#### ICA(Independent Component Analysis)와 소스 분리

여러 센서가 서로 다른 방식으로 공통 현상을 측정했을 때, 그 안에 섞여 있는 독립 신호(Independent Components)를 분리하기 위해 ICA(Independent Component Analysis)를 적용할 수 있다. 이는 통계적 독립성을 최대로 하는 회전·변환을 찾아, 원래의 개별 신호(소스)를 복원하는 기술이다.

예를 들어 두 마이크가 동시에 서로 다른 음원을 섞어서 기록했다면, BSS(Blind Source Separation) 문제로 접근해서 ICA로 분리한다. 센서 퓨전에서도 비슷하게, 다중 신호에 공통으로 나타나는 요인(예: 환경 잡음, 공정 잡음)을 구분할 수 있다면, 목표 신호만 잘 추출해낼 수 있다. 필터 이론과 결합하여, 선형 필터가 제거하기 어려운 특정 잡음 패턴을 ICA로 구분해내거나, 이후 칼만 필터에 더 깨끗한 관측값을 제공할 수도 있다.

#### 차원 축소(Dimensionality Reduction)와 Subspace Methods

센서 데이터가 고차원(많은 채널 또는 긴 시계열)을 이룰 때, PCA(Principal Component Analysis) 같은 차원 축소 기법을 적용해 의미 있는 소수의 주성분만 추출하는 방법이 있다. 신호처리에서 PCA는 공분산 행렬의 고유분해를 통해 분산이 큰 축부터 정렬하므로, 잡음이 주로 퍼져 있는 저분산 축을 제거할 수 있다.

Subspace Identification 기법은 시스템 식별과 신호처리를 결합하여, 높은 차원의 입력·출력 데이터에서 동적 시스템을 부분공간(subspace)으로 표현한다. 센서 퓨전에서는 다양한 채널의 입력 데이터를 부분공간으로 묶어서 상태공간 모델을 추정하고, 필터 설계를 간소화한다.

#### 적응형 오차 바운드(AOB) 기법

센서별 오차나 잡음 레벨이 시변적일 때, 매 순간 오차 바운드를 갱신하며 추정을 보정하는 방법이 제안된다. 이를 적응형 오차 바운드(AOB) 기법이라 부르기도 하며, 잡음 통계가 변화하면 즉시 필터 파라메터(예: 공분산 행렬, 망각계수 등)를 업데이트한다.

대표적으로 칼만 필터에서 측정 잡음 공분산 $\mathbf{R}\_k$를 관측 오차 크기에 따라 실시간 추정하여 적용하거나, 적응형 LMS에서 잡음 분산을 추정해 스텝 사이즈를 동적으로 조절한다. 실제 센서 퓨전에서 환경이 급격히 바뀌거나 센서 노후화로 측정 에러가 점진적으로 커지는 경우, 이러한 기법이 유용하다.

#### 경계조건(Constraints)을 포함한 필터링

물리적으로 센서가 측정하는 양에는 특정 구간이나 경계조건이 존재할 수 있다. 예를 들어 로봇 조인트 각도는 제한 각도 범위를 벗어날 수 없고, 배터리 잔량은 음수가 될 수 없다. 이때 단순 선형 필터 결과가 물리적 한계를 벗어나면 현실적 해석이 어려워진다.

이를 해결하려면 경계나 불평등 제약을 모델에 포함시키고, 제약된 최적화를 통해 필터링을 수행한다. 예를 들어, 칼만 필터에 제약을 추가한 Constrained Kalman Filter 기법은 Lagrange multiplier나 사영(projection) 방법을 사용하여 추정 상태가 물리적 범위를 벗어나지 않도록 보정한다. 센서 퓨전에서 드론의 자세각, 로봇 조인트, 차량 속도 등 물리적 한계를 반드시 고려해야 할 때 매우 중요하다.

#### 속도 및 지연 보상

실시간 센서 퓨전에서 가장 중요한 문제 중 하나가 지연(Latency)과 연산 속도다. 필터의 계산량이 많으면 실제 출력이 늦게 나오므로 제어나 의사결정에 문제가 생길 수 있다. 이를 보완하기 위한 방법은 크게 다음과 같은 시도가 있다.

* 빠른 알고리즘 사용: 예를 들어 iSAM2 같은 incremental 방식으로 그래프 최적화를 수행하거나, 칼만 필터의 블록 분할(특정 부분공간만 갱신)을 적용.
* 지연 보정: 센서 측정이 시점 $k$에 도착해도, 실제 시스템 상태는 $k+\Delta$ 시점일 수 있음. 역으로 필터 결과가 나올 때 관측 시점이 이미 지났다면, 뒤늦게 보정하는 “smoother” 접근을 적용해 과거 상태를 재조정(backward correction)한다.

센서 퓨전에서는 종종 “on-line + off-line” 혼합 구조를 쓰기도 한다. 실시간으로는 간단·빠른 필터를 사용하고, 나중에 전체 데이터를 수집해 정밀 배치(Batch) 추정을 수행해 기록을 개선한다.

#### 슬라이딩 모드 필터(Sliding Mode Filter)

슬라이딩 모드 제어기법에서 파생된 슬라이딩 모드 필터는, 비선형·불확실성이 큰 시스템에서 잡음을 강인하게 억제하기 위해 설계된다. 오차 동역학을 특정 하이퍼플레인(슬라이딩 서페이스)으로 강제 진입시키고, 그 위에서 오차가 미끄러지며 수렴하게 하는 아이디어다. 전통적 칼만 필터와 달리, 대역적으로 적절한 조건을 만족하면 선형·비선형 구분 없이 오차를 제한할 수 있다.

다만 슬라이딩 모드에서 필연적으로 생길 수 있는 채터링(chattering)을 어떻게 억제하느냐가 관건이며, 센서 측정 잡음이 심할 때는 필터 출력이 과도하게 진동할 수도 있다. 이를 완화하기 위해 수퍼트위스팅(super-twisting) 알고리즘 등의 변형 기법이 제안된다.

#### 센서 고장 탐지와 필터 재구성

현장에서 센서가 부분적으로 고장(Fault)에 빠질 수도 있다. 그러면 해당 센서 값이 일시적으로 크게 튀거나, 전혀 업데이트되지 않을 수 있다. 필터가 이 오염된 센서 신호를 그대로 받아들이면 추정 오차가 커진다. 고장 탐지(Fault Detection)와 진단(FDI) 기법을 결합하여, 센서가 정상 범위를 벗어나면 해당 센서를 임시적으로 제외하거나 가중치를 낮추는 방식의 “필터 재구성”이 중요하다.

예를 들어 다중 센서 중 하나만 이상값을 내면, 적응형 필터 또는 칼만 필터 내부에서 그 센서에 대한 측정 노이즈 공분산을 크게 설정해버리거나(즉 신뢰도를 낮춤), 다른 정상 센서들만으로 추정 과정을 진행한다. 이는 센서 퓨전의 신뢰도와 안전성 관점에서 필수적인 매커니즘이다.

#### 센서 퓨전에서 필터 이론의 핵심 역할

결국 센서 퓨전에서 필터 이론은 “다양한 잡음이 섞여 있는 측정값으로부터, 본질적 상태나 신호를 어떻게 정교하게 추정할 것인가”라는 문제에 대한 해법을 제공한다. 단순 저역통과 필터부터 적응형 필터, 칼만 필터, 비선형 필터, 그래프 기반 최적화까지 폭넓은 기법이 존재하며, 실제 적용 환경(물리 모델, 데이터 양, 실시간성 제약, 잡음 특성 등)에 따라 최적 선택이 달라진다.

이로써 센서 퓨전에서 필수적인 신호처리와 필터 이론의 큰 맥락이 모두 제시되었다. 이어지는 장에서는 이러한 이론을 구체적인 센서(예: IMU, GPS, 카메라, LiDAR, 레이더) 사례에 접목해 설계 과정을 상세히 보여줄 것이다.
