Можно ли увеличить разрешение по частоте FFT без увеличения размера окна?

12

Я хотел бы использовать STFT для анализа нескольких точек. Я понимаю, что обнаружение партиалов, существующих в сигнале, - это только начало. Тем не менее у меня есть проблемы с этим.

Допустим, у меня есть сигнал с частотой «CD» 44100Hz. С окном 1024сэмплов я получаю разрешение бина 22500Hz/512=43Hz. Этого достаточно только, чтобы различить высокие фортепианные ноты, такие как: C5 = 523.251Hzи C#5 = 554.365.

Раньше я думал, что 1024это довольно большое окно. Но, может быть, это не так, и обычно большие окна используются для обнаружения частичек?

Можно ли увеличить разрешение по частоте каким-либо другим способом, кроме увеличения размера окна, что ухудшает временное разрешение? Я думал о двух методах:

Method1:

  1. Разделите сигнал на полосы частот с помощью полосовых фильтров (например, 0-11.25Hzи 11.25-22.5Hz).
  2. Уменьшите верхние полосы частот, чтобы исходные высокие частоты теперь были низкими частотами (сделайте это для второй полосы 11.25-22.5Hz -> 0Hz-22.5Hz) - не уверен, что это возможно.
  3. Конкретные результирующие наборы с установленными метками.

Method2:

  1. Используйте серию фильтров нижних частот с возрастающим пределом.
  2. Выполните БПФ на растущих частотных диапазонах.
  3. Для каждой частоты используйте наилучшее возможное разрешение (ячейки из первого FFT, в который была включена эта частота).
  4. Это приведет к тому, что низкие частоты получат лучшее разрешение, но я думаю, что это нормально, потому что для более высоких нот разность частот больше.

Буду благодарен любым замечаниям по этому вопросу.

Я также читал здесь: Как размер окна, частота дискретизации влияют на оценку шага БПФ? о методике улучшения результатов отбора пиков. Думаю попробую его использовать.

nuoritoveri
источник
Если вы знаете, что есть только один синусоидальный компонент, вы можете подогнать параболу к соседним бинам пика и выполнить интерполяцию, чтобы найти «истинный» пик. Не уверен, как это соотносится с фазовым методом, описанным @pichenettes.
эндолит

Ответы:

9

Если вы действительно настаиваете на использовании БПФ (а не параметрических методов, которые не пострадают от компромиссов между временем и частотой), вы можете подделать намного лучшее разрешение, используя информацию о фазе для восстановления мгновенной частоты для каждого бина БПФ. Частицы могут быть затем обнаружены путем поиска плато в функции, дающей мгновенную частоту как функцию индекса бункера FFT. Обычная реализация этой методики, описанная в этой статье, будет «стоить» вам одного дополнительного STFT (мгновенная частота восстанавливается операциями над STFT сигнала и STFT производной сигнала).

См., Например, функцию ifgram в этой реализации Matlab синусоидального моделирования звуковых сигналов.

Обратите внимание, что это не поможет разрешить две части, попадающие в соседние ячейки FFT. Это просто обеспечит гораздо более точную оценку частоты, чем просто преобразование в частоту индекса FFT бина спектрального пика.

pichenettes
источник
Что вы подразумеваете под параметрическими методами? Кроме того, было ли это, что вы несколько месяцев назад упомянули алгоритм, который был похож на БПФ, но имел шкалу частотных октав, а не единообразную шкалу частот?
Джим Клэй,
Параметрические методы - это методы статистического анализа сигналов, которые предполагают, что сигнал генерируется конкретным процессом, описанным набором параметров, и который вычисляет оценку этих параметров по методу наименьших квадратов. Например, если вы предполагаете, что сигнал представляет собой сумму N экспоненциально затухающих синусоид + шум, алгоритмы, такие как ESPRIT или MUSIC, могут использоваться для вывода N комплексных амплитуд и пульсаций.
pichenettes
2
Вы, вероятно, имеете в виду преобразование константы-Q. Предостережение заключается в том, что он не столь эффективен в вычислительном отношении, как БПФ; и что инвертирование этого преобразования является нетривиальной задачей оптимизации.
pichenettes
@JimClay: Может быть, это должно быть перенесено сюда?
эндолит
1
Сказать, что параметрические методы не страдают от временных / частотных компромиссов, вводит в заблуждение. По своей сути параметрические методы моделируют систему и используют модель для извлечения значимых данных. Но производительность не хуже модели. Предполагая, что выбрана «лучшая» модель (количество полюсов или число собственных векторов пространства сигналов), эффективность этих методов все еще очень чувствительна к длине записи данных.
Брайан
2

Термин «разрешение» имеет несколько значений. Как правило, вы не можете увеличить свою способность разделять (или «разрешать») близко расположенные спектральные пики путем интерполяции с использованием данных с одинаковой длиной окна. Но вы можете оценить частоту изолированных стационарных спектральных пиков, которые значительно выше минимального уровня шума с более высоким разрешением (иногда намного более высоким разрешением), чем расстояние между бинами FFT, различными методами интерполяции.

Общие методы интерполяции результатов FFT для оценок с более высоким разрешением включают в себя параболическую интерполяцию, интерполяцию Sinc, заполнение нулями данных в гораздо более длинное FFT и методы фазового вокодера с использованием (слегка) перекрывающихся окон смещения.

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

hotpaw2
источник
1

После дальнейшего исследования, вызванного вопросом Джима Клэя и ответом на вопрос о пикенетах в комментариях, я обнаружил, что мой Method2 заново изобретен Ограниченное Q-преобразование, описанное, например, Кашимой и Мон-Рейно (я не уверен, что могу ссылаться на эту статью, файл выглядит разорванным ) ,

Их подход алгоритмически более эффективен, поскольку они начинают с самого большого частотного диапазона и итеративно уменьшают его на 2, пока не достигнут самой низкой октавы.

Преимущества Q-преобразования были изучены Брауном, например , здесь . Он может быть не таким эффективным, как одиночное БПФ, но имеет преимущество в том, что не рассчитывает толстое БПФ на высокочастотных диапазонах, которые этого не требуют.

Спасибо за все ответы, комментарии и ссылки.

nuoritoveri
источник
То, что вы описываете, очень похоже на вейвлет-преобразование, что, кажется, подтверждается этим . Я понимаю, что это старый пост, но будущие читатели могут захотеть взглянуть и на вейвлеты. Хотя, как я указал в своем ответе, вы не можете изменить принцип частотно-временной неопределенности, но знание данных может позволить вам немного обмануть.
orodbhen
1

Если вы сохраняете «историю» входных данных и используете ее для наложения ваших ДПФ, то это даст дополнительную информацию для извлечения спектрального контента. Конечно, это зависит от изменяющегося во времени характера вашего сигнала. По форме он будет похож на функцию распределения вероятностей.

Это дало бы вам ДПФ, которые расположены ближе во времени. Однако это все равно увеличило бы временную неопределенность каждого ДПФ, которая ограничена законами природы: точное значение временного и спектрального поведения не может быть определено одновременно.

Если частотный контент не сильно меняется в пределах окна, то все должно быть хорошо.

orodbhen
источник