Matlab의 STFT 구현 스펙트로 그램 ()에 대한 최대 주파수 해상도는 얼마입니까?


10

Matlab의 spectrogram()함수는 신호의 STFT를 계산합니다. NFFT다음과 같이 인수를 설명 합니다.

S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)이산 푸리에 변환을 계산하는 데 사용되는 주파수 포인트 수를 지정합니다. 경우 NFFT지정하지 않으면 기본값이 NFFT사용됩니다.

NFFT주파수 분해능과 계산 횟수 사이의 균형 만 맞 습니까? 오프라인 작업의 경우주기를 절약 할 필요가 없습니다. NFFT예를 들어, 스펙트럼 누출, 또는 내가 알아야 할 다른 문제에 의해 부과되는 최대 제한이 있습니까? 아니면 그 주장을 가능한 한 높게 설정할 수 있습니까?

답변:


5

FFT의 길이는 주파수와 시간 분해능의 균형입니다. 스펙트로 그램은 종종 관심 신호에서 중첩 FFT를 계산하여 생성됩니다. FFT를 길게하면 각 출력 빈의 유효 대역폭이 작아 지므로 주파수 축의 해상도가 향상됩니다. 얻을 수있는 주파수 분해능에 대한 유일한 제한 요소는 신호에서 얻은 총 관측 시간입니다.

그러나 동시에 현지화 된 기능을 해결하는 기능이 줄어 듭니다. 이를 이해하는 직관적 인 방법은 FFT를 복잡한 다운 컨버전으로보고 통합 및 덤프 작업을 수행하는 것입니다.

X[k]=n=0N1(x[n]ej2πnkN)

이 방법으로 보면 시간 해상도 손실이 더 분명해집니다. 괄호 안의 곱은 주파수를 만큼 아래로 이동 시키며, 결과 신호는 샘플 윈도우에 통합 됩니다. 에 제한된 시간 범위에만 있는 기능이 있으면x[n]2πnkNNx[n]N겹치면 더 많은 FFT가 통합 기간 내에 해당 기간을 포함하게됩니다. 따라서이 기능은 스펙트로 그램 이미지의 더 많은 행에 나타납니다 (시간이 Y 축을 따른다고 가정). 그런 다음 피처가있는 스펙트로 그램의 열 (즉, 주파수 빈)을 줄이면 더 넓고 번져서 피크가 나타납니다. 따라서 기능이 시작된 실제 시간 위치를 확인할 수있는 능력이 떨어집니다.

FFT 길이를 늘리려면 더 많은 계산이 필요하며 이는 실시간 응용 프로그램과 관련이있을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.