Я пытаюсь построить правильную спектрограмму для звуковых данных в Qt. И теперь я могу построить красивую спектрограмму с длиной окна 1024 fft и длиной перекрывающихся данных 976. Но обычно используется небольшая длина окна для построения спектрограммы, например 256, и это даст мне лучшее временное разрешение. Но когда я уменьшаю длину окна до 256, я получаю пустые строки в спектрограмме. Я знаю, что уменьшение длины окна приводит к низкому разрешению частоты при БПФ, но почему в спектрограммах других программ нет пустых строк? Я что-то не так делаю или это нормальный результат?
Вот основные шаги, которые я использую для получения спектрограммы: -Получите данные из звукового файла. -FFT в первом окне (Ханнинг). -конвертировать комплексный вывод fft в массив величин (величина = sqrt (re ^ 2 + im ^ 2)) -конвертировать величину в логарифмический масштаб (дБ) magnitude_dB = 20 * log10 (величина) -построить первый столбец спектрограммы путем масштабирования данные спектра, чтобы зафиксировать их в столбце - переместить окно 48 отсчетов, для следующей операции.
Вы можете увидеть проблему на следующих снимках экрана: длина окна 1024 длина окна 256
(между прочим, моя цель - создать программу, которая может распознавать фонемы из звуковых данных речи. Используя библиотеку FFTW)
Я очень ценю любую помощь, которую вы можете оказать.