관리 메뉴

개발자비행일지

드론 - 센서 샘플링 이론, 나이퀴스트 이론 본문

▶ Ardupilot

드론 - 센서 샘플링 이론, 나이퀴스트 이론

Cyber0946 2020. 7. 9. 17:43

드론 시스템에서는 센서를 통해 목적에 맞는 물리량 정보를 수집하고, 이를 바탕으로 액츄에이터를 동작시키며, 이 동작들 간의 조합을 통해 시스템을 컨트롤 한다.

여기서 센서 마다 샘플링 하는 분해능(주파수)가 다른데, 여기에서는 샘플링 이론을 고려한 분해능을 설정해야 센서가 물리량을 잘못측정하거나 못층정하는 경우가 발생하지 않는다.

여기서 말하는 시간 샘플링 이론이란 "얼마나 빼곡히 샘플링을 해야 원래 신호로 복구하는데 어려움이 없을까?" 에 대한 대답이 되는 이론이다. 

시간 샘플링?

물리적인 (아날로그) 신호를 디지털 화면 상에 표시해주기 위해선 샘플링이 필요하다. 대개 신호처리에서 샘플링이라고 하면 시간 샘플링을 말하는 것 같다.

시간 샘플링이란 원래의 아날로그 신호 포스트 맨 위 애플릿에서는 ‘어느 정도의’ 주기를 갖고 아날로그 신호를 샘플링 해주는데, ‘어느 정도의’ 샘플링 속도 이상이 되면 샘플된 시간과 신호 값들을 가지고 원래의 신호로 거의 비슷하게 복구할 수 있다.

그러면, 이론적으로 ‘어느 정도의’ 주기를 갖고 아날로그 신호를 샘플링 해줘야 원래 신호로 복구 가능한 것일까? (즉, ideal reconstruction). 이 질문에 대한 해답을 sampling theorem에서 구할 수 있다.

이런 샘플링 이론에서 흔히 나이퀴스트 이론, 주파수를 말하며, 이는 샘플링 주파수는 최대 진폭의 2배여야 한다는 것을 말한다. 왜 그런 것일까?

우선 샘플링이 무엇인가를 알아야한다. 샘플링을 알아보기 위해서 아날로그 데이터를 디지털화 시키는 과정을 이해해야 하는데, 우리가 알고 있는 주변의 데이터는 사실 모두 아날로그 데이터이다. 즉 연속된 데이터이다.

하지만 이러한 신호를 컴퓨터가 처리할 수 있게 이산화 즉 디지털화 시켜줘야한다. 

디지털화를 통해 우리는 데이터 전송시에 발생하는 손실과 빠른 전송속도를 얻어낼 수 있다. 

아날로그를 디지털로 변환하는 Analog to Digital Conversion 과정은 크게 표본화(Sampling), 양자화(Quantization), 부호화(Coding)과정으로 이루어져 있다. 

 

샘플링과정

위 과정이 샘플링 과정입니다. 원래의 신호에 일정한 간격으로 표본을 뽑아내는 것이다. 

양자화과정

이제 샘플링을 했으면 그 데이터의 값들을 디지털화 시켜줘야합니다. 즉 해당 데이터를 몇 칸으로 나누어진 수로 표현할 것인지를 결정하는 것이다.  이 데이터를 y축 기준으로 몇 단계를 나누는 과정이 양자화 과정이다.

데이터의 값의 범위를 보고 몇 단계로 데이터를 나눌지 정하면, 이것이 양자화 레벨 수가 된다. 그리고 이렇게 몇 단계로 나누게 되면 데이터 값과 양자화된 값이 딱 떨어지지 않는데요. 이 차이가 양자화 오차이다. 양자화 오차의 최대값은 양자화 계단 크기의 절반이 된다.

부호화는 간단히 말하면 양자화한 데이터에 이진법의 수를 부여하는 것이다. 4칸으로 나누었으면, 이를 간단하게 (00), (01), (10), (11) 이렇게 수를 표현하는 것이다. 

이제 본격적으로 나이퀴스트 정리를 알아보자.

샘플링 주파수는 입력 신호 최고 주파수의 2배 이상이 되어야 한다는 정리입니다. 이 조건을 만족해야 원 신호로 다시 충실히 복원할 수 있습니다. 만약 샘플링 주파수가 입력 신호 주파수의 2배보다 낮다면 Aliasing 현상이 일어납니다.

Aliasing 현상을 주파수 대역에서 분석한 그림입니다.Aliasing 대책은 크게 두가지로 볼 수 있습니다. 첫번째는 LPF를 사용하는 것입니다. Aliasing이 일어난 그림을 보시면 fm부근 고주파 대역에서 일어나는데 이부분을 그냥 LPF로 버리고 샘플링하는 것입니다. 두번째는 샘플링 주파수를 늘리는 것입니다.

 

드론에서 발생하는 센서 오류로 인한 시스템 비정상 행위는 결국 이러한 현상에서 발생한 데이터 변화가 시스템 컨트롤 로직 까지 이어지기 때문에 발생한다고 생각이 든다.