FFT와 윈도잉 이해하기

개요

시간 영역과 주파수 영역, 고속 푸리에 변환 (FFT), 윈도윙와 이를 사용하여 신호를 제대로 이해하는 방법에 대해 알아보십시오.

내용

시간 영역, 주파수 영역, FFT 이해하기

푸리에 변환은 일상적으로 발생하는 신호를 이해하고 신호의 에러를 해결하는 강력한 방법일 수 있습니다. 푸리에 변환은 복잡한 수학적 함수지만 측정된 신호를 이해하고 그와 관련짓는 것은 복잡하지 않습니다. 기본적으로 신호를 받아 다양한 진폭과 주파수의 사인파로 나눕니다. 이것이 무슨 뜻이며 왜 유용한지 더 자세히 살펴보겠습니다. 

모든 신호는 사인의 합

실제 환경에서 신호는 일반적으로 시간이 지나면 변하는 전압으로 간주됩니다. 이를 시간 영역이라 합니다. 푸리에 정리에 따르면 시간 영역의 모든 웨이브폼은 사인과 코사인의 가중합으로 나타낼 수 있습니다. 예를 들어 두 개의 사인파가 있는데 하나는 다른 하나보다 3배 빠르거나 주파수가 첫 번째 신호의 1/3입니다. 이들을 추가하면 다른 신호를 얻을 수 있습니다.

그림 1: 두 개의 신호를 더하면 새로운 신호를 얻을 수 있습니다.

이제 두 번째 웨이브도 진폭의 1/3일 때를 생각해 보십시오. 이번에는 피크만 영향을 받습니다.

그림 2: 신호를 추가할 때 진폭을 조정하면 피크가 영향을 받습니다.

원래 신호의 진폭과 주파수가 1/5인 세 번째 신호를 추가했다고 생각해 보십시오. 노이즈 플로어에 도달할 때까지 방식으로 지속하면 나타나는 웨이브폼을 확인할 수 있습니다.

그림 3: 사각파는 사인의 합입니다.

이제 사각파가 생성되었습니다. 이러한 방식으로 시간 영역의 모든 신호를 일련의 사인으로 나타낼 수 있습니다.

신호를 이런 방식으로 생성할 수 있다면 깔끔한데 신경을 쓰는 이유는 무엇일까요? 사인을 사용하여 신호를 생성할 수 있다면 신호를 사인으로 분해할 수도 있기 때문입니다. 신호가 분해되면 원래 신호에 존재하는 다양한 주파수를 확인하고 분석할 수 있습니다. 신호 분해의 유용성이 입증된 몇 가지 사례를 살펴보겠습니다.

  • 전파를 분해하면 듣고 싶은 특정 주파수 또는 방송국을 선택할 수 있습니다.
  • 음파를 저음과 고음 등 다른 주파수로 분해하면 톤 또는 주파수를 바꿔 특정 사운드를 증폭시켜 불필요한 노이즈를 제거할 수 있습니다.
  • 속도와 강도가 다양한 지진 진동을 분해하면 가장 강한 진동을 피하도록 건물 설계를 최적화할 수 있습니다.
  • 컴퓨터 데이터를 분해하면 중요성이 가장 떨어지는 주파수를 무시하고 메모리에서 더 압축적인 표현을 사용할 수 있습니다. 이를 파일 압축이라고도 합니다.

FFT를 사용하여 신호 분해하기

푸리에 변환은 신호의 시간 영역 표현을 주파수 영역 표현으로 분해합니다. 주파수 영역에는 다양한 주파수에서의 전압이 표시됩니다. 이는 같은 신호를 다른 방식으로 보는 것입니다. 

디지타이저는 웨이브폼을 샘플링하여 이산값으로 변환합니다. 이 변환 때문에 푸리에 변환은 이 데이터에 적용되지 않습니다. 대신 이산 푸리에 변환 (DFT)이 사용되며, 이 변환은 결과적으로 주파수 영역 구성요소를 이산값 또는 빈(bin)으로 생성합니다. 고속 푸리에 (FFT)는 수행할 계산을 줄이되 기본적으로는 신호만 분해하도록 DFT를 최적화해 구현한 것입니다.

위의 그림 1의 신호를 살펴보십시오. 각기 다른 두 개의 주파수에 두 개의 신호가 있습니다. 이러한 경우 주파수 영역에서 신호에 두 개의 스파이크가 발생합니다. 처음에 신호를 구성한 사인의 두 주파수에 각각 하나씩 발생하게 되는 것입니다.

그림 4: 진폭이 같은 두 개의 사인파를 더하면 주파수 영역에 두 개의 스파이크가 발생합니다.

원래 신호의 진폭은 수직 축에 나타납니다. 위의 그림 2에서 신호를 보면 각기 다른 진폭에 각기 다른 두 개의 신호가 있으며 가장 돌출된 스파이크가 가장 높은 전압 사인 신호의 주파수에 해당한다는 것을 알 수 있습니다. 시간 영역의 신호를 보면 어떤 주파수에서 가장 큰 전압 신호가 발생하는지 알게 되면 원래 신호를 간단히 파악할 수 있습니다.

그림 5: 가장 높은 스파이크는 진폭이 가장 큰 주파수입니다.

또한 주파수 영역에서 신호의 형태를 보는 것도 도움이 됩니다. 예를 들어, 주파수 영역에서 사각파를 살펴보겠습니다. 다양한 주파수에서 여러 사인파를 사용하여 사각파를 생성했습니다. 신호가 하나 추가될 때마다 스파이크가 하나씩 발생하기 때문에 주파수 영역에서 신호의 스파이크가 많이 발생할 것을 알 수 있습니다. 주파수 영역에서 램프가 보기 좋게 그려지면 원래 신호가 사각파라는 것을 알 수 있습니다.

그림 6: 사인파의 주파수 영역이 램프처럼 보입니다.

그렇다면 실제로는 어떻게 보일까요? 많은 혼합 신호 오실로스코프 (MSO)에는 FFT 함수가 있습니다. 아래에서 사각파의 FFT가 혼합 신호 그래프에서 어떻게 보이는지 확인할 수 있습니다. 확대하면 주파수 영역에서 개별 스파이크를 볼 수 있습니다.

그림 7: A는 원래 사인파와 그에 상응하는 FFT를 표시한 것이고 B는 개별 스파이크를 볼 수 있는 FFT 부분을 확대한 것입니다.

주파수 영역의 신호를 살펴보면 신호를 검증하고 문제를 해결할 때 도움이 될 수 있습니다. 예를 들어 사인파를 출력해야 하는 회로가 있다고 가정해 봅시다. 아래 그림 8에서는 시간 영역에서 오실로스코프의 출력 신호를 볼 수 있습니다. 보기 좋은 모양이네요!

그림 8: 이 두 웨이브를 더하면 완벽한 사인파처럼 보이는 데 그 이유는 두 웨이브가 매우 유사하기 때문입니다.

그러나 주파수 영역에서 신호를 볼 때 스파이크가 단 하나일 것이라고 예상하는데, 하나의 주파수에서만 사인파를 하나 출력할 것이라고 기대하기 때문입니다. 하지만 높은 주파수에서 더 작은 스파이크가 발생한 것을 볼 수 있습니다. 이를 통해 사인파의 모양이 생각보다 좋지 않다는 것을 알 수 있습니다. 회로를 사용하여 특정 주파수에서 노이즈를 추가시킨 원인을 없앨 수 있습니다. 주파수 영역은 시간 영역의 깨끗한 신호에 실제로 누화, 노이즈 또는 지터가 있는지를 표시하기에 좋습니다.

그림 9: 그림 8에서 완벽해 보이던 사인파를 보면 실제로는 글리치가 있다는 것을 알 수 있습니다.

 

윈도잉

신호에 FFT를 실행하면 많은 것을 파악할 수 있지만 FFT의 한계를 이해하고 윈도윙을 사용하여 신호의 선명도를 개선하는 방법을 익히는 것도 중요합니다.

윈도윙이란

FFT를 사용하여 신호의 주파수 구성요소를 측정할 때 유한한 데이터 세트를 기반으로 분석하게 됩니다. 실제 FFT 변환은 유한한 데이터 세트, 즉 주기적인 신호의 한 주기인 연속 스펙트럼이라고 가정합니다. FFT의 경우 시간 영역과 주파수 영역은 모두 원형 토폴로지이기 때문에 시간 웨이브폼의 두 끝포인트는 서로 연결된 것처럼 해석됩니다. 측정된 신호가 주기적이고 정수인 주기 수가 수집 시간 간격을 채우는 경우 FFT가 이 가정과 일치하므로 문제없는 것으로 나타납니다.

정수인 주기 수 (A)를 측정하면 이상적인 FFT (B)를 얻을 수 있습니다

그림 10: 정수인 주기 수 (A)를 측정하면 이상적인 FFT (B)를 얻을 수 있습니다.

그러나 측정된 신호의 주기 수가 정수가 아닐 때가 많습니다. 따라서 측정된 신호가 유한하여 원래의 연속 시간 신호와 특성이 다른 잘린 웨이브폼을 생성할지 모르며 또한 측정된 신호에 급격한 변화가 일어날 수 있습니다. 급격한 변이는 불연속적입니다.

수집에서 주기 수가 정수가 아닌 경우 끝포인트는 불연속적입니다. 이러한 인위적인 불연속은 원래 신호에는 없는 고주파 구성요소로 FFT에 표시됩니다. 이 주파수는 나이퀴스트 주파수보다 훨씬 높을 수 있고 샘플링 속도 0과 절반 사이에서 앨리어싱됩니다. 따라서 FFT를 사용하여 얻은 스펙트럼은 원래 신호의 실제 스펙트럼이 아니라 번짐이 생긴 버전입니다. 한 주파수의 에너지가 다른 주파수로 누출되는 것처럼 보입니다. 이러한 현상을 스펙트럼 누출이라고 하며, 이로 인해 미세한 스펙트럼 라인이 더 넓은 신호로 퍼집니다.

정수가 아닌 주기 수 (A)를 측정하면 FFT (B)에 스펙트럼 누출이 추가됩니다.

그림 11: 정수가 아닌 주기 수 (A)를 측정하면 FFT (B)에 스펙트럼 누출이 추가됩니다.

윈도윙이라는 기법을 사용하면 정수가 아닌 사이클 수에서 FFT 실행 시 영향을 최소화할 수 있습니다. 윈도윙은 디지타이저가 수집한 각 유한한 시퀀스의 경계에서 불연속적인 진폭을 줄입니다. 윈도윙은 가장자리에서 크기가 점차 부드럽게 0에 가까워지게 변하는록 진폭을 가진 유한한 길이의 윈도우에 시간 기록을 곱하는 과정입니다. 이렇게 하면 웨이브폼의 끝포인트가 만나서 급격한 변이 없는 연속적인 웨이브폼이 됩니다. 이 기법을 윈도윙 적용이라고도 합니다.

윈도윙 적용으로 스펙트럼 누출의 영향을 최소화할 수 있습니다.

그림 12: 윈도윙 적용으로 스펙트럼 누출의 영향을 최소화할 수 있습니다.

윈도윙 함수

신호에 따라 적용할 수 있는 몇 가지 다른 윈도우 함수가 있습니다. 주어진 윈도우가 주파수 스펙트럼에 미치는 영향을 이해하려면 윈도우의 주파수 특성을 더 많이 알아야 합니다. 

윈도우의 실제 플롯을 통해 윈도우의 주파수 특성이 메인 로브와 여러 개의 사이드 로브가 있는 연속 스펙트럼이라는 것을 알 수 있습니다. 메인 로브는 시간 영역 신호의 각 주파수 구성요소의 중앙에 위치하며 사이드 로브는 0에 가까워집니다. 사이드 로브의 높이는 윈도윙 함수가 메인 로브 주변의 주파수에 미치는 영향을 나타냅니다. 강한 사인파 신호에 대한 사이드 로브의 응답은 인접한 약한 사인파 신호에 대한 주요 로브의 응답보다 강할 수 있습니다. 일반적으로 낮은 사이드 로브는 측정된 FFT에서 누출을 줄이지만 메인 로브의 대역폭을 증가시킵니다. 사이드 로브 롤오프 속도는 사이드 로브 피크의 점근적 감쇠 속도입니다. 사이드 로브 롤오프 속도를 높이면 스펙트럼 누출을 줄일 수 있습니다.

윈도우 함수 선택은 간단치 않습니다. 각각의 윈도우 함수에는 고유한 특성이 있고 그것이 각각의 어플리케이션에 적합한지 따져봐야 합니다. 윈도우 함수를 선택하려면 신호의 주파수 내용을 추정해야 합니다.

  • 신호에 관심 주파수에서 떨어져 있는 강한 간섭 주파수 구성요소가 포함되어 있는 경우 사이드 로브의 롤오프 속도가 높은 평활화 윈도우를 선택합니다.
  • 신호에 관심 주파수에서 가까운 강한 간섭 신호가 포함되어 있는 경우 최대 사이드 로브 레벨이 낮은 윈도우 함수를 선택합니다.
  • 관심 주파수에 서로 매우 가까운 두 개 이상의 신호가 포함되어 있는 경우에는 스펙트럼 분해능이 중요합니다. 이러한 경우 메인 로브가 매우 좁은 평활화 윈도우를 선택하는 것이 가장 좋습니다.
  • 주어진 주파수 빈에서 구성요소의 정확한 위치보다 단일 주파수 구성요소의 정확한 진폭이 더 중요한 경우 메인 로브가 넓은 윈도우를 선택합니다.
  • 주파수 내용에서 신호 스펙트럼이 다소 평평하거나 광대역인 경우 균일한 윈도우를 사용하거나 윈도우를 사용하지 않는 것이 좋습니다.
  • 일반적으로 95%의 경우 해닝 (핸) 윈도우는 만족스러운 결과를 보이며, 주파수 분해능이 우수하고 스펙트럼 누출을 줄입니다. 신호의 특성을 모르지만 평활화 윈도우를 적용하려면 핸 윈도우부터 시작하는 것이 좋습니다.

윈도우를 사용하지 않는 경우에도 입력 신호의 시간 내에 스냅샷을 얻고 이산 신호를 사용하는 특성이 있어 신호가 균일한 높이의 직사각형 모양의 윈도우로 컨볼루션됩니다. 이 컨벌루션은 사인 함수 특성 스펙트럼을 갖습니다. 따라서 계속해서 윈도윙 효과가 있기 때문에 균일 윈도우 또는 직사각형 윈도우라고 하는 윈도우는 없습니다.

해밍 윈도우 함수와 핸 윈도우 함수 모두 사인파 형태입니다. 두 윈도우 모두 피크는 넓지만 사이드 로브는 낮습니다. 그러나 핸 윈도우는 양 끝에서 0에 도달하기 때문에 불연속적이지 않습니다. 해밍 윈도우는 0에 거의 도달하지 않기 때문에 신호가 약간 불연속적입니다. 이러한 차이 때문에 해밍 윈도우는 가장 가까운 사이드 로브 캔슬링에는 좋지만 다른 사이드 로브를 캔슬링할 때는 좋지 않습니다. 이 윈도우 함수는 다른 윈도우보다 주파수 분해능이 더 좋아야 하지만 중간 사이드 로브가 문제가 되지 않는 노이즈 측정에 유용합니다.

해밍 윈도윙과 핸 윈도잉은 피크는 넓지만 사이드 로브가 매우 낮습니다.

그림 13: 해밍 윈도윙과 핸 윈도잉은 피크는 넓지만 사이드 로브가 매우 낮습니다.

블랙맨-해리스 윈도우는 해밍 윈도우 및 핸 윈도우와 유사합니다. 이를 통해 얻은 스펙트럼은 피크가 넓지만 사이드 로브 압축은 적절합니다. 이 윈도우에는 두 가지 주요 타입이 있습니다. 4-term 블랙맨-해리스는 좋은 범용 윈도우로, 높은 90s dB의 사이드 로브를 제거하고 적당히 넓은 메인 로브를 가지고 있습니다. 7-term 블랙맨-해리스 윈도우 함수는 필요한 다이나믹 범위를 모두 갖췄으면서도 메인 로브도 넓습니다.

블랙맨-해리스는 피크가 넓지만 사이드 로브 압축은 적절합니다.

그림 14: 블랙맨-해리스는 피크가 넓지만 사이드 로브 압축은 양호합니다.

카이저-베셀 윈도우는 진폭 정확도, 사이드 로브 거리, 사이드 로브 높이 등 서로 상충되는 다양한 목표 간에 균형을 유지합니다. 이를 블랙맨-해리스 윈도우 함수와 대략 비교해 보면 메인 로브 폭이 같을 때 가까운 사이드 로브가 더 높긴 하지만 멀리 있는 사이드 로브는 더 낮습니다. 이 윈도우를 선택하면 종종 노이즈 플로어에 가까운 신호가 드러납니다.

플랫 탑 윈도우도 사인파지만 실제로는 제로 라인과 교차합니다. 이로 인해 주파수 영역에서 훨씬 더 넓은 피크가 발생하며 이는 다른 윈도우보다 신호의 실제 진폭에 더 가깝습니다. 

플랫 탑 윈도우를 통해 진폭을 정확하게 파악할 수 있습니다.

그림 15: 플랫 탑 윈도우를 통해 진폭을 정확하게 파악할 수 있습니다.

위에 소개한 것은 활용 가능한 윈도우 함수의 일부에 지나지 않습니다. 윈도우 함수를 선택하는 보편적인 방법은 없지만 아래 표는 처음 선택 시 도움이 될 것입니다. 항상 여러 윈도우 함수의 성능을 비교하여 응용 분야에 가장 적합한 함수를 찾으십시오.

 

신호 내용윈도우
사인파 또는 사인파의 조합
사인파 (정확한 진폭이 중요)플랫 탑
협대역 랜덤 신호 (진동 데이터)
광대역 랜덤 (화이트 노이즈)균일
간격이 좁은 사인파균일, 해밍
가진 신호 (강타)
응답 신호지수
내용을 모름
사인파 또는 사인파의 조합
사인파 (정확한 진폭이 중요)플랫 탑
협대역 랜덤 신호 (진동 데이터)
광대역 랜덤 (화이트 노이즈)균일
주파수가 가깝지만 진폭이 매우 다른 두 개의 톤카이저-베셀
주파수가 가깝고 진폭이 거의 같은 두 개의 톤균일
정확한 단일 톤 진폭 측정플랫 탑

요약

  • 시간 영역의 모든 신호는 일련의 사인으로 나타낼 수 있습니다.
  • FFT 변환은 신호의 시간 영역 표현을 주파수 영역 표현으로 분해하여 신호의 여러 주파수를 분석합니다.
  • 주파수 영역은 시간 영역의 깨끗한 신호에 실제로 누화, 노이즈 또는 지터가 있는지를 표시하기에 좋습니다.
  • 스펙트럼 누출은 신호에서 정수가 아닌 원래 주기 수가 불연속하여 발생하며 윈도잉을 사용하여 개선할 수 있습니다.
  • 윈도윙은 디지타이저가 수집한 유한한 각 시퀀스의 경계에서 불연속 진폭을 줄입니다.
  • 계속해서 윈도윙 효과가 있기 때문에 균일 윈도우 또는 직사각형 윈도우라고 하는 윈도우는 없습니다.
  • 일반적으로 95%의 경우 해닝 윈도우는 만족스러운 결과를 보입니다. 주파수 분해능이 우수하고 스펙트럼 누출을 줄입니다.
  • 여러 윈도우 함수의 성능을 비교하여 응용 분야에 가장 적합한 함수를 찾아야 합니다.

다음 단계