Когда я делаю scipy.signal.spectrogram, как я могу сказать, сколько будет временных отрезков? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть:

    frequencies, times, spectrogram = signal.spectrogram(
        samples, sample_rate, nperseg=nperseg, window=signal.hann(nperseg), noverlap=noverlap, mode='magnitude')

У меня есть nperseg=320 и noverlap=80, с sample_rate=16000.

У меня было 232800 образцов.

Тем не менее, мой spectrogram.shape теперь (161, 969). Это 161 блок частот с 969 временными сегментами. Как рассчитывали эти 969?

1 Ответ

0 голосов
/ 01 марта 2020
    time_per_segment_ms = 20
    nperseg = int(sample_rate * 0.001 * time_per_segment_ms)
    overlap = nperseg // 4

    seconds_per_segment = (nperseg - overlap) / sample_rate
    ms_per_segment = int(seconds_per_segment * 1000)

Что насчет этого

...