Почему уменьшение длины окна вызывает пустые строки в спектрограмме?

Я пытаюсь построить правильную спектрограмму для звуковых данных в Qt. И теперь я могу построить красивую спектрограмму с длиной окна 1024 fft и длиной перекрывающихся данных 976. Но обычно используется небольшая длина окна для построения спектрограммы, например 256, и это даст мне лучшее временное разрешение. Но когда я уменьшаю длину окна до 256, я получаю пустые строки в спектрограмме. Я знаю, что уменьшение длины окна приводит к низкому разрешению частоты при БПФ, но почему в спектрограммах других программ нет пустых строк? Я что-то не так делаю или это нормальный результат?

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

Вы можете увидеть проблему на следующих снимках экрана: длина окна 1024 длина окна 256

(между прочим, моя цель - создать программу, которая может распознавать фонемы из звуковых данных речи. Используя библиотеку FFTW)

Я очень ценю любую помощь, которую вы можете оказать.


person rottenclover    schedule 20.05.2013    source источник
comment
Задайте этот вопрос на странице dsp.stackexchange.com   -  person motiur    schedule 20.05.2013


Ответы (1)


Более низкое разрешение более короткой длины БПФ также подразумевает более широкую полосу пропускания для каждого бина результата БПФ. Таким образом, график спектрографа нуждается в более толстых линиях строк, чтобы покрыть более широкую полосу пропускания каждой строки, чтобы заполнить промежутки между линиями на вашем графике.

person hotpaw2    schedule 21.05.2013
comment
Спасибо за ответ, я попробовал это и расширил интервалы частот, которые имеют значение, по сравнению с пустыми. так выглядит лучше. Но я хочу быть уверенным, это правильный способ сделать узкополосную спектрограмму? Вот результат: img23.imageshack.us/img23/8788/256ext.png Motiur Rahman, Спасибо за предложение, проверю. - person rottenclover; 21.05.2013