FFT Analysis 발생하는 문제점과 이를 해결하기 위한 방법을 정리해보았다.
참고로 내가 이해한 내용을 바탕으로 작성하였으며, 이해를 잘못해서, 틀린 내용이 있을 수도 있다. 참고자료도 함께 링크하였으니, 이해는 본인 몫이다.
나이퀴스트 이론에서 측정하고자 하는 주파수에 2배이상이면 원신호로 복원할 수 있다 라고 한다. 예를 들어 최대 2 KHz 인 데이터를 받고자 한다면 4 KHz 이상으로 샘플링 한다면 원래 아날로그 신호를 디지털로 재현할 수 있다는것이며, Spectral(FFT) 변환시에 발생하는 문제도 있다.
세가지 문제점이 발생하며, 이에 대한 설명과 해결 방법이다.
FFT Analysis 를 하기 위해서는 Data를 측정부터 해야할것이다.
- Aliasing
- Leakage
- Picket Fence Effect
1. Aliasing 문제
Aliasing 는 우리가 이미지 혹은 동영상에서 알리아싱때문에 이미지가 계단모양 처럼 보이는것이라고 해서 들어 보았을텐데 이 문제가 데이터를 샘플링하는것에서도 발생한다.
알리아싱이라는 단어도 많이 들어봤고, 이미지에서 저렇다라고는 알고는 있었는데, 데어터 측정에서는 어떤것인지 정확히 손에 잡히지 않았다. 아래 동영상을 보고 그 의미를 조금이나마 이해할 수 있었는데,
이 그림을 처음에 이해할때, 샘플링이 낮아서 원하는 신호를 제대로 컨버팅할 수 없다고 이해를 했다. 사실은 이 말도 맞는 말이기는 한데, 이렇게 이해를 하려고 하면 다음에 나오는 그림을 이해하기가 어렵다.
이 그림은 샘플링 보다 높은 주파수가 샘플링 될때 나타나는 문제점으로
이해를 해야한다.
샘플링은 초당 1000 Hz 인데 이보다 높은 주파수인 2000 Hz 신호가 잡힌다면 전혀 엉뚱한 신호가 함께 들어오게 되는것이다. (동영상에서는 고스트 신호 혹은 알리아싱)
그래서 이 신호를 제거하기 위해서 Anti-aliasing Filter( Low Pass Filter 일종)을 사용한다.
아래 그림은 Anti-aliasing Filter 사용을 나타내고 있다.
1번은 Anti-aliasing filter Off, 이는 모든 신호가 다 들어오는다는 애기이다.
2번은 Anti-aliasing filter On, 즉 내가 샘플링 주파수까지만 필터를 사용해서 받는다는 애기이다.
필터는 안타깝게도 칼로 두부를 자르듯이 정확하게 잘라낼 수 가 없다.
이를 감안해서 샘플링 을 결정해야 한다.
예를 들면 가청주파수인 20 KHz까지 받는다고 하면
샘플링은
20 K X 2.56 = 51.2 K samples/sec
2. Leakage
한번에 내가 원하는 시간만큼 데이터를 취득한다면 가장 좋지만, 현실에서는 그렇게 이상적으로 데이터를 취득할 수 없다. 그러한 이유로 주기적으로 데이터를 취득하게 되는데, 이렇게 데이터를 받다 보면 데이터를 놓쳐버리는 경우가 발생하게되고, 앞에 받은 신호와 다음에 받은 신호 연결이 자연스럽지 못하기 때문에 발생하는 문제가 있을 수 있다.
다음 동영상에서 이를 설명해주고 있다.
1번 신호는 아주 이상적으로 데이터를 취득하고 있음을 보여주고 있다. 처음과 끝이 만나기 때문이다.
하지만, 실제로 데이터를 취득하게 되면 끝이 다음 데이터와 이상적으로 연결되게 받지는 못한다.
2번 처럼 데이터를 받게 되는것이다.
아래 그림처럼 데이터를 못받는 구간이 생기게 된다.
그렇게 데이터가 빠지면 그만 이지 않는가라고 생각할 수 도 있지만, 이를 FFT 하게 되면, 엉뚱한 주파수가 생기게 되는 결과를 가져오게 된다.
이를 해결하기 위해서 weighting 를 설정하게 되는데, 보통 Hanning weighting 을 사용한다.
Weighting는 원 신호에 대한 가중치 라고 보면된다.
Rectangular weighting( No weighting, weighting 이 없다)는 그냥 원 신호를 그대로 받는다고 생각하면 된다.
Hanning weighting 은 위 그림에서 보듯이 모자처럼 생긴 그래프를 신호에 씌워서 데이터를 취득하게 된다.
그렇게 되면 양끝단의 신호는 다음 신호가 부드럽게 연결이 되게 되고, 여기에서 발생하는 문제점(엉뚱한 주파수)을 해결할 수 있게 된다.
3. Picket Fence Effect
Picket Fence 는 그림에서 보는것처럼, 정원 울타리 때문에 정원 안을 보는데, 방해를 받는 거와 같다 해서 붙여진 이름이다.
Sampling 문제로 발생하게 되며, 이를 방지하기 위해 Overlap을 사용하게 된다.
0순위NVH 동영상을 참고한다면 이해가 쉬울 것이라 생각된다.
첨부한 자료에 문제가 있다면, 삭제하도록 하겠습니ㅏ.
동영상 출처 : 김도헌 대림대교수 , Instrumentation and Measurement channel , 0순위_NVH
*** 이 글은 제가 이해하기 위해 다양한 자료를 찾아보고, 글을 쓰고 있습니다. 이해가 툴렸을 수도 있습니다.
'프로그래밍' 카테고리의 다른 글
DB] Connection string for DB using ODBC (0) | 2022.04.21 |
---|---|
js]chart.js 사용하기 (0) | 2022.02.03 |
[툴] VSCode - emmet 안될때 (0) | 2022.01.19 |
[참고]FFT (0) | 2020.09.08 |
[python] csv 데이터 특정행 선택 plot 그리기 (0) | 2020.03.08 |