2017-03-15 13 views
1

출력 다음 입력 매개 변수를 사용하는 STFT 방법 :STFT의 주파수 간격을 정의에 의해 지정된 차원으로

  • 샘플링 속도 : 250,000 Hz;
  • 데이터 길이 : 498900 샘플;
  • 윈도우 길이 : nftt=625 샘플;
  • 홉의 크기 : 125 개 샘플 내 STFT의 크기와 출력이됩니다 이러한 매개 변수와

: 313*3987 (이 값을 계산하는 방법은 일부 웹 사이트에 존재하는) 지금

, 내 질문은 할 수있는 방법입니다 STFT 출력의 주파수 차원에 대한 제한을 정의합니까? STFT 출력에서 ​​인덱스 값으로 임계 값을 계산해야한다고 생각합니다. 그렇다면 어떻게해야합니까?

주파수 해상도가 있지만 nfft을 곱하면 샘플링 속도 값의 절반입니다.

답변

2
당신은 여기 주파수 해상도를 계산하지만, 방법을 제공하지 않은

은 그것이 있어야 무엇을 :

frequency_resolution = sampling_rate/nfft; 

을 250,000Hz 및 nfft=625의 샘플링 속도와 특정 경우에, 이것은 당신에게해야 400Hz의 주파수 분해능. 625*400이 실제로 250000과 같은지 확인할 수 있습니다. 특별한 경우로

size_frequency_axis = 1 + floor(max_frequency/frequency_resolution); 

: 당신이 당신의 STFT 출력의 일부로서 max_frequency 넘지 않는 주파수를 0Hz에서의 주파수를 포함 할 경우

그런 다음, 주파수 축을 따라 최대 크기는 다음과 같이 주어진다한다 max_frequency이 나이 퀴 스트 주파수 (250000/2 = 125000)로 설정되면 계산 된 크기가 1+floor(125000/400) = 313 (전체 스펙트럼 STFT 출력 크기와 일치 함)인지 확인할 수도 있습니다. 일반화로

, 당신은 주파수의 범위는 다음과 유사한 방식으로 최소 및 최대 주파수의 인덱스를 계산할 수, 0Hz에서 시작하고, 함께 해당 크기를 얻을 수 없습니다 포함 할 경우 :

min_frequency_index = 1 + floor(min_frequency/frequency_resolution); 
max_frequency_index = 1 + floor(max_frequency/frequency_resolution); 
size_frequency_axis = max_frequency_index - min_frequency_index + 1;