ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이산 푸리에 변환에서 어떤 진동수를 택할것인가?
    Sound & Music🔊 2023. 4. 15. 21:55

    이산 푸리에 변환이 필요한 이유

    1. 시간 도메인에서 주파수 도메인으로 바꿔서 보고 싶다. -> 푸리에 변환을 한다.(일반적인 푸리에 변환은 연속적인 파형을 대상으로 한다.)

    2. 기계적으로 신호를 다루기 위해서 아날로그 신호(연속적인 값)을 디지털 신호(이산적인 값)으로 바꾸었다. 

    -> 디지털 신호(이산적인 값)에 대한 푸리에 변환이 필요하다.

     

     

    푸리에 변환은 비슷함을 추출하는 과정이다. 

    푸리에 변환은 시간 도메인에서 하나의 형태로 나타난 파형을 주파수 도메인으로 옮겨 어떤 진동수가 얼마나 들어 있나 분해하는 절차이다. 

     

    내적은 대상간의 유사한 성분이 얼마나 있는지를 추출한다. 따라서 분해하고자 하는 신호에 각 진동수의 기본파형을 내적하면 내적한 파형을 현재 신호가 얼마나 가지고 있는지 알 수 있다. 이와 같은 방법을  이산적인 값에 대하여 적용하면 다음과 같이 나타낼 수 있다. 

    x[n]은 분해하고자 하는 신호를 이산적인 값으로 샘플링 한 것이고 y[n]은 알고 싶은 진동수를 가지는 파형을 샘플링 한 것이다.

    이 둘을 내적하면 x[n]과 y[n]의 각 성분들끼리의 곱에 총합을 얻게 된다.

     

    첫번째 그림과 같이 x[n]과 y[n]을 구성하는 샘플들의 부호가 대부분 일치하는 경우 Similarity가 높게 나오며

    두번째 그림과 같이 x[n]과 y[n]을 구성하는 샘플들의 부호가  반대의 경우 Similarity 값이 음의 값이 나온다. 

    마지막 그림과 같이 샘플들의 x[n]*y[n]의 값이 완전히 상쇄되는 경우에는 0에 가까운 값이 나온다. 

    이와 같이 분해하고자 하는 파형 x[n]과 기준이 되는 진동수 파형 y[n]과의 내적을 통하여 해당 파형을 구성하는 진동수의 종류들을 파악할 수 있다. 

     

    사인파로 쪼갠다. 

    위와 같이 기준이 되는 파형들과의 내적을 통해서 파형을 분석할 수 있는데, 이때 기준이 되는 파형을 사인파를 사용한다. 따라서 분해하고 자하는 파형 x[n]을 다음과 같이 다른 진동수 사인파들의 합으로 표현할 수 있다. 

    cos는 각 진동수의 기준이 되는 파형을 나타내고 각 파형 앞의 계수 A는 해당 파형이 얼마나 x[n]에 포함되어 있는지를 나타낸다.

     

    진동수 범위 제한 

    연속신호인 아날로그 파형을 이산 신호인 디지털로 변환하는 과정에서 샘플링을 하는데,  이때 초당 몇개의 샘플을 가져올지에 대한  샘플링 레이트 f_s를 정의하게 된다. 

    샘플링시 원래의 신호를 제대로 반영하지 못하는 엘리어싱을 방지하기 위해서 나이퀴스트-새넌의 샘플링 이론에 근거하여 샘플링 레이트를 정하면 원래 신호가 가지고 있는 최대 진동수의 2배 이상의 진동수를 샘플링 레이트로 정한다.

    따라서 원래의 신호 x[n]이 가질 수 있는 진동수의 범위를 제한할 수 있는데 이를 Band-limiting이라고 한다. 

    원래신호의 최대 진동수 범위는 샘플링 레이트 f_s의 절반이내로 들어오게 된다. ( f_s/2 ~ -f_s/2)  

    즉 샘플링레이트가 f_s가 정해지면 원래 신호가 가질 수 있는 진동수의 최대 값은 f_s 미만이 되는 것이다. 

    예를 들어 샘플링 레이트가 2Hz이면 원래 신호가 가질 수 있는 진동수의 범위는 -1Hz 부터 1Hz까지이다. 

     

    샘플링 레이트를 이용하여 원래 신호가 가질 수 있는 진동수의 범위를 제한 했지만 해당 범위 안에서도 너무 많은 진동수가 존재한다. 

    그러면 이 많은 진동수들 중에 어떤 진동수들을 원래의 신호와 내적하여 비교할 진동수로 삼을지 결정할까?

     

    주기성 가정

    분석하고자 하는 파형이 어떤 진동수들로 구성되어 있는지를 나타내기 위해서는 기준이 되는 파형이 필요하고 이를 사인파를 이용해서 나타낸다고 하였다.  사인파의 중요한 특징은 주기함수라는 점이다. 따라서 우리가 분석할 파형들 또한 주기성을 가지고 반복적으로 나타난다는 가정이 필요하다. 

    예를 들어 1.5 초짜리 신호가 있고 이 신호를 샘플링 레이트를 16으로 샘플링 하면 총 24개의 샘플을 얻게 된다. 위와 같이 얻어진 샘플 x[n]이 1.5초를 주기로 앞 뒤로 계속해서 반복적으로 나타난다고 가정하면 이후 푸리에 변환시 사인파를 통해 표현할 수 있도록 한다. 

     

    Reference 진동수 선택하는 방법 (기준 진동수를 선택하는 방법)

    샘플링 이론을 통해 우리가 다루는 신호 x[n]가 가질 수 있는 진동수 범위를 제한하였다. 하지만 해당 범위 내에서도 수많은 진동수가 존재하여 어떤 진동수를 기준 진동수로 선택하여 내적해야 할지 어려움이 있다. 이때 위의 주기성 가정을 이용하면 기준 진동수 선택 범위를 더욱 줄일 수 있다. 

     

    분석할 신호 x[n]이 주기성 가정을 통해 반복적으로 나타난다고 하였을 때, 비교할 기준 진동수 사인파를 나타내면

    n/f_s는 분석할 신호의 한 주기를 나타내며 n/f_s 앞에 붙는 상수는 진동수를  표시한다. 

    위에서 정한 샘플링 레이트로 샘플링한 기준 진동수 1 Hz를 나타내면 아래와 같이 나타낼 수 있다. 

    (기준 진동수를 정할 때 기준 진동수 파형을 구성하는 샘플의 개수와 분석할 신호의 샘플 개수가 동일해야 이후 내적이 가능하기 때문에 샘플링시 사용한 샘플링 레이트를 주기로하는 사인파를 기준 진동수파형으로 선택한다. )

    1Hz 기준 진동수를 사용하여 내적을 진행하면 구간에 따라 Similarity 값이 다르게 나오는 것을 볼 수 있다. 이렇게 구간에 따라 값이 다르게 나오면 어떤 값을 선택해야할 까? 위의 예제는 두개의 값만이 나왔지만 두개 이상의 값이 나오는 경우도 생기게 된다. 

    위와 같은 문제는 참조신호(기준 진동수 파형 y[n])의 반복 구간이 분석할 파형 x[n]의 반복 구간과 일치하지 않기 때문에 발생한다.

     

    이런 문제를 막기 위해서는 다음 수식을 통해 기준 진동수를 구하면 두 파형이 반복되는 구간을 일치 시켜 모든 구간에서 같은 Similarity 값을 얻을 수 있게 된다. 

     

    m은 한 x[n]주기당 기준 파형의 반복 횟수(기준 진동수), N은 샘플 개수, f_s는 샘플링 레이트 

    위의 경우에는 m=1, N = 24 f_s =16이므로 1.5Hz를 사용하면 모든 구간에서 같은 Similarity 값을 얻을 수 있다.  

    이렇게 진동수 밴드 범위 안에 있는 진동수들 중에서 분석하려는 신호와 구간을 일치시킬 수 있는 진동수들로 기준 진동수들을 선택하여 사용한다. 

     

     

    그럼 기준 진동수가 몇개나 될까?

    기준 진동수를 선택하는 방법을 알게 되었다. 그러면 해당 방법을 통해서 사용할 수 있는 기준 진동수가 몇개나 될까?

    위에서 구한 기준 진동수 공식 m/N*f_s을 통해 얻은 진동수 값을 사인파형에 집어 넣어서 y[n]의 파형을 얻으면 위와 같이 나타난다. 

    여기서 만약에 m에 N+1(샘플의 수 +1) 값을 넣어보면은 샘플링 진동수에 진동수가 하나더 더해지게 되는데 해당 진동수는 진동수 밴드 범위를 넘어서는 값이다. 따라서 m값이 N(샘플의 개수)를 초과하게 되면 앨리어싱이 발생함을 알 수 있다.

    따라서 신호를 구성하는 샘플의 개수가 N인 경우 N개의 기준 진동수가 존재할 수 있게 된다. 

     


    댓글

Designed by Tistory.