STFT 스펙트로그램
- 업데이트 날짜:2025-07-30
- 6분 (읽기 시간)
단시간 푸리에 변환(STFT) 알고리즘을 사용하여 조인트 시간-주파수 영역의 신호 에너지 분포를 계산합니다.

입력/출력
시간-주파수 설정
—
시간-주파수 설정은 주파수 bin의 설정을 지정합니다. 시간-주파수 설정은 또한 STFT 스펙트로그램{X}{X}의 열 개수를 결정합니다.
X
—
X는 입력 시간 영역 신호를 지정합니다.
시간-주파수 샘플링 정보
—
시간-주파수 샘플링 정보는 밀도를 사용하여 조인트 시간-주파수 영역에서 신호를 샘플하고 결과로 얻는 2D 시간-주파수 배열의 크기를 지정합니다.
윈도우 정보
—
윈도우 정보는 STFT를 계산하기 위해서 사용하려는 윈도우에 대한 정보를 지정합니다.
윈도우 파라미터
—
윈도우 파라미터는 카이저 윈도우에서는 베타 파라미터, 돌프-체비셰프 윈도우에서는 사이드로브에 대한 메인로브의 비율인 s, 가우스 윈도우에서는 표준편차입니다. 윈도우 타입이 그 외 다른 윈도우인 경우, 이 VI는 이 입력을 무시합니다. 윈도우 파라미터의 기본값은 NaN이며, 이 값은 카이저 윈도우에서는 베타를 0으로, 돌프-체비셰프 윈도우에서는 s를 60으로, 가우스 윈도우에서는 표준편차를
에너지 보존?
—
에너지 보존?은 STFT 스펙트로그램 {X}를 스케일하여 조인트 시간-주파수 영역의 에너지가 시간 영역과 같도록 할지 여부를 지정합니다. 기본값은 참입니다.
STFT 스펙트로그램{X}
—
STFT 스펙트로그램{X}는 조인트 시간-주파수 영역에서 시간 웨이브폼 에너지 분포를 나타내는 2D 배열입니다.
에러
—
에러는 VI로부터 모든 에러 또는 경고를 반환합니다. 에러를 [에러 코드를 에러 클러스터로] VI에 연결하여 에러 코드 또는 경고를 에러 클러스터로 변환할 수 있습니다. |
STFT 스펙트로그램 {X}를 계산하기 위해 이 VI는 우선 X의 STFT를 계산합니다. X의 STFT를 계산하기 위해 이 VI는 슬라이딩 윈도우를 사용하여 신호를 몇 개의 데이터 블록으로 나눕니다. 그 후 VI는 N 포인트 빠른 푸리에 변환을 각 데이터 블록에 적용하여 각 블록의 주파수 내용을 얻습니다. 이 때 N은 주파수 bin입니다. STFT는 첫번째 슬라이딩 윈도우의 중심을 신호 X의 첫번째 샘플과 정렬하고 0을 추가하여 신호의 시작을 연장합니다. 슬라이딩 윈도우는 시간 간격 샘플을 다음 데이터 블록으로 이동합니다. 윈도우가 X 밖으로 이동하는 경우, 이 VI는 X를 0으로 채웁니다.
다음 그림은 이 VI가 STFT를 계산하는데 사용하는 과정을 보여줍니다.

주파수 bin을 2의 거듭제곱으로 강제변환?이 참인 경우, 주파수 bin은 2의 거듭제곱이 아닙니다. 이 경우 다음 식도 참이 됩니다;
K = 2[log2(주파수 bin)]여기서 [ ]는 가장 가까운 연산입니다.
그렇지 않으면 K = 주파수 bin입니다.
STFT의 결과가 행렬 STFT{X}인 경우, STFT{X}의 크기는 M-x-K이고, 이 때 다음은 참입니다:

- L은 X의 원소 개수
는 반내림 연산
STFT{X}를 사용하여 다음 식으로 조인트 시간-주파수 영역의 에너지에 근사할 수 있습니다:

이 결과는 다음 식에서 보는 바와 같이 시간 영역의 에너지와 거의 같습니다:

X의 STFT를 계산한 후, 이 VI는 X의 SFTF 스펙트로그램을 계산합니다. 이 VI는 STFT 스펙트로그램을 STFT{X}에 있는 원소의 크기의 제곱으로 계산합니다. FFT가 대칭 결과를 반환하므로, 이 VI는 다음 식과 같이 STFT{X}의 왼쪽 반에 대해서만 STFT 스펙트로그램 {X}을 계산합니다:

여기서 다음은 참입니다.
- i = 0, 1, ..., M-1
- j = 0, 1, ..., N-1

는 반올림 연산.
시간 간격에 작은 값을 지정하는 경우, VI가 큰 스펙트로그램을 반환할 수도 있습니다. 이렇게 되면 계산 시간이 길어지고 많은 메모리가 필요합니다. National Instruments는 시간 간격을 스펙트로그램의 행 개수가 512를 넘지 않도록 설정할 것을 권장합니다. 더욱 자세히 관찰하기 위해 작은 샘플링 속도가 필요하지만 신호 길이가 큰 경우에는 신호를 작은 조각으로 나누어 각 조각의 스펙트로그램을 계산합니다.
윈도우 길이는 STFT의 시간 분해능과 주파수 분해능에 영향을 미칩니다. 좁은 윈도우를 사용하면 미세한 시간 분해능을 얻을 수 있으나 주파수 분해능은 거칠게 나타납니다. 좁은 윈도우는 지속시간이 짧은 반면 대역폭이 넓기 때문입니다. 넓은 윈도우를 사용하면 미세한 주파수 분해능을 얻을 수 있으나 시간 분해능은 거칠게 나타납니다. 넓은 윈도우는 지속시간이 긴 반면 대역폭이 좁기 때문입니다.
이 VI는 강제 주파수 빈을 2의 거듭 제곱으로설정하고, 나이퀴스트 주파수 제외?를 설정하고, 에너지 절약? 을 TRUE로 설정하면 LabVIEW 고급 신호 처리 툴킷의 TFA STFT 스펙트로그램 VI와 동일한 결과를 반환합니다.
예제
LabVIEW 포함되는 다음 예제 파일을 참조하십시오.
- labview\examples\Signal Processing\Transforms\STFT Spectrogram Demo.vi
시간-주파수 설정
—
주파수 레벨을 2의 거듭제곱으로 강제변환?
—
X
—
시간-주파수 샘플링 정보
—
시간 간격
—
타입
—
윈도우 파라미터
—
로 설정하며 여기서 L은 윈도우 길이입니다.
STFT 스펙트로그램{X}
—
에러
—