Main Content

신호 분석기의 스펙트로그램 계산

비정상 신호는 주파수 성분이 시간에 따라 변하는 신호입니다. 비정상 신호의 스펙트로그램은 시간에 따른 주파수 성분에 대한 추정값입니다. 비정상 신호의 스펙트로그램을 생성하기 위해 신호 분석기는 다음 단계를 따릅니다.

  1. 신호를 같은 길이의 세그먼트로 나눕니다. 세그먼트는 신호의 주파수 성분이 세그먼트 내에서 크게 변하지 않을 정도로 길이가 짧아야 합니다. 세그먼트는 중첩되거나 중첩되지 않을 수 있습니다.

  2. 각 세그먼트에 윈도우를 적용하고 해당 세그먼트의 스펙트럼을 계산하여 단시간 푸리에 변환을 얻습니다.

  3. 세그먼트별로 각 스펙트럼 전력(단위: 데시벨)을 표시합니다. 해당 크기를 크기 종속 컬러맵에 영상으로 나란히 표시합니다.

스펙트로그램 보기는 한 개의 신호만 포함하는 디스플레이에서 사용 가능합니다.

자세한 내용은 Spectrogram Computation with Signal Processing Toolbox 항목을 참조하십시오.

신호를 세그먼트로 나누기

스펙트로그램을 생성하기 위해 우선 신호를 중첩 세그먼트로 나눕니다. 신호 분석기에서 시간 분해능중첩을 사용하여 세그먼트 길이와 인접 세그먼트 간의 중첩 크기를 조정할 수 있습니다. 길이와 중첩을 지정하지 않을 경우 신호 분석기는 신호의 전체 길이에 따라 길이를 선택하고 50% 중첩을 선택합니다. 신호 분석기는 시간 영역 플롯의 좌표축에 스펙트로그램의 시간 축을 맞춥니다.

지정된 시간 분해능

스펙트로그램 탭의 시간 분해능 섹션에서 지정을 클릭합니다.

  • 신호에 시간 정보가 없는 경우 시간 분해능(세그먼트 길이)을 샘플 단위로 지정하십시오. 시간 분해능은 1보다 크거나 같은 정수여야 하고 신호 길이보다 작거나 같아야 합니다.

    신호에 시간 정보가 있는 경우 시간 분해능을 초 단위로 지정하십시오. 신호 분석기는 그 결과를 샘플 개수로 변환한 다음, 그 숫자보다 작거나 같지만 1보다 작지 않은 가장 가까운 정수로 반올림합니다. 시간 분해능은 신호 지속 시간보다 작거나 같아야 합니다.

  • 중첩을 세그먼트 길이의 백분율로 지정하십시오. 신호 분석기는 그 결과를 샘플 개수로 변환한 다음, 그 숫자보다 작거나 같은 가장 가까운 정수로 반올림합니다.

디폴트 시간 분해능

시간 분해능 계산을 자동으로 선택할 경우 신호 분석기는 전체 신호 길이에 따라 세그먼트 길이를 선택합니다. 신호 분석기는 시간 분해능을 ⌈N/d⌉개의 샘플로 설정합니다. 여기서 대괄호는 천장 함수(Ceiling function)를 나타내고 N은 신호 길이, d는 N에 따라 달라지는 제수입니다.

신호 길이(N)제수(d)세그먼트 길이
2개 샘플 ~ 63개 샘플21개 샘플 ~ 32개 샘플
64개 샘플 ~ 255개 샘플88개 샘플 ~ 32개 샘플
256개 샘플 ~ 2047개 샘플832개 샘플 ~ 256개 샘플
2048개 샘플 ~ 4095개 샘플16128개 샘플 ~ 256개 샘플
4096개 샘플 ~ 8191개 샘플32128개 샘플 ~ 256개 샘플
8192개 샘플 ~ 16383개 샘플64128개 샘플 ~ 256개 샘플
16384개 샘플 ~ N개 샘플128128개 샘플 ~ ⌈N / 128⌉개 샘플

여전히 인접 세그먼트 간의 중첩을 지정할 수 있습니다. 중첩을 지정하면 세그먼트 개수가 달라집니다. 세그먼트 끝점을 벗어나는 세그먼트는 0으로 채워집니다.

7개의 샘플로 구성된 신호 [s0 s1 s2 s3 s4 s5 s6]을 살펴보겠습니다. ⌈7/2⌉ = ⌈3.5⌉ = 4이기 때문에 중첩이 없는 경우 신호 분석기는 신호를 길이가 4인 두 개의 세그먼트로 나눕니다. 중첩 부분이 증가함에 따라 세그먼트 수가 달라집니다.

중첩 샘플의 개수결과 세그먼트
0
s0 s1 s2 s3
            s4 s5 s6 0
1
s0 s1 s2 s3
         s3 s4 s5 s6
2
s0 s1 s2 s3
      s2 s3 s4 s5
            s4 s5 s6 0
3
s0 s1 s2 s3
   s1 s2 s3 s4
      s2 s3 s4 s5
         s3 s4 s5 s6

시간 정렬

세그먼트 길이와 중첩을 설정한 후에는 세그먼트 개수와 경계 위치가 고정된 상태로 유지되고 확대/축소나 패닝에도 영향을 받지 않습니다. 확대/축소 및 패닝을 하면 신호 분석기는 확대되어 표시된 관심 영역 안에 들어온 세그먼트를 사용하여 스펙트로그램을 계산하고 표시합니다.

신호 분석기는 다음을 수행합니다.

  • 시간 영역 플롯의 좌표축에 스펙트로그램의 시간 축을 맞춥니다. 따라서 주어진 시간에서의 스펙트럼 성분과 그 빈도가 정렬됩니다.

  • 0이 아닌 중첩의 경우, 첫 번째 세그먼트와 마지막 세그먼트를 신호 끝점으로 확장합니다.

  • 마지막 세그먼트가 신호 끝점을 벗어나면 신호를 0으로 채웁니다.

세그먼트에 중첩이 0% 있는 경우, 각 세그먼트는 실제 발생 시간을 중심으로 합니다. 중첩이 0이 아닌 경우, 시간 영역 좌표축과 스펙트로그램 시간 축이 정렬된 결과 첫 번째 시간 구간과 마지막 시간 구간이 길어지는 효과가 발생합니다. 다른 모든 시간 구간은 동일한 길이를 갖습니다. 다시 말해서, 첫 번째 세그먼트와 마지막 세그먼트를 제외한 각 세그먼트의 중심이 실제 발생 시간에 대응됩니다. 다음 예제를 참조하십시오.

세그먼트에 윈도우 적용 및 스펙트럼 계산하기

신호 분석기는 신호를 중첩 세그먼트로 나눈 후에 카이저 윈도우를 사용하여 각 세그먼트에 윈도우를 적용합니다. 윈도우의 형태 인자 β는 조정 가능하며, 이를 통해 누설을 조정할 수 있습니다.

참고

신호 스펙트럼을 계산하는 데 사용된 누설과 스펙트로그램 세그먼트에 윈도우를 적용하는 데 사용된 누설은 서로 독립적입니다. 각 누설을 개별적으로 조정할 수 있습니다.

그런 다음 신호 분석기 앱은 Spectrum Computation in Signal Analyzer에 설명된 절차에 따라 각 세그먼트의 스펙트럼을 계산합니다. 단, 분해능 대역폭의 하한이 다음과 같이 적용됩니다.

RBWperformance=4×fspan10241.

요약하면, 신호 분석기는 세그먼트의 전체 길이로 얻을 수 있는 스펙트럼 분해능과 대량의 FFT 계산으로 인한 성능 한계 사이에서 절충점을 찾습니다.

  • 전체 세그먼트를 분석하여 분해능을 구하는 것이 가능하면, 신호 분석기는 지정된 형태 인자를 갖는 카이저 윈도우를 사용하여 전체 세그먼트에 대한 수정된 단일 주기도를 계산합니다.

  • 전체 세그먼트를 분석하여 분해능을 구하는 것이 불가능하면, 신호 분석기는 Welch 주기도를 계산합니다. 먼저 세그먼트를 중첩 서브세그먼트로 나누고 각 서브세그먼트에 윈도우를 적용한 다음 서브세그먼트 주기도에 대한 평균을 구합니다. 지정된 카이저 윈도우를 사용하여 계산한 전체 세그먼트의 수정된 주기도에 합성 주기도가 대응되도록 서브세그먼트의 크기, 윈도우, 중첩을 신호 분석기가 선택합니다.

스펙트럼 전력 표시하기

신호 분석기는 디폴트 MATLAB® 컬러맵의 컬러바를 사용하여 단시간 푸리에 변환의 전력(단위: 데시벨)을 표시합니다. 컬러바는 스펙트로그램의 전체 전력 범위로 구성되며 확대/축소하거나 패닝해도 변경되지 않습니다.

주어진 색 범위로 표현되는 크기 레벨을 변경할 수 있습니다. 스펙트로그램 탭에서, 표시할 최소 전력 값과 최대 전력 값을 변경합니다. 컬러맵이 스펙트로그램의 확대된 섹션의 전체 전력 범위를 갖도록 설정할 수도 있습니다. 표시 탭에서 컬러맵 맞추기 버튼을 클릭합니다.

참고 항목

함수

관련 예제

세부 정보