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


12

Я хотів би використовувати STFT для багатопроцесного аналізу. Я усвідомлюю, що виявлення частинок, що існують у сигналі, лише початок. Все-таки у мене проблеми з цим.

Скажімо, у мене сигнал відібраний із частотою 'CD' 44100Hz. За допомогою вікна 1024зразків я отримую роздільну здатність бін частоти 22500Hz/512=43Hz. Цього достатньо лише для того, щоб розпізнати високі ноти фортепіано типу: C5 = 523.251Hzі C#5 = 554.365.

Я думав, що 1024це досить велике вікно. Але, можливо, це не так, і зазвичай більші вікна використовуються для виявлення партій?

Чи можна збільшити роздільну здатність частоти за допомогою іншого способу, ніж збільшення розміру вікна, що погіршує роздільну здатність часу? Я продумав два методи:

Спосіб1:

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

Спосіб2:

  1. Використовуйте серію фільтрів низьких частот із збільшенням межі.
  2. Виконуйте FFT на збільшенні частотних діапазонів.
  3. Для кожної частоти використовуйте найкращу можливу роздільну здатність (бункери від першого FFT, в який ця частота була включена).
  4. Це призведе до кращої роздільної здатності низьких частот, але я думаю, це нормально, оскільки для більш високих зауважень різниця частот - це тертка.

Буду вдячний за будь-які зауваження з цього приводу.

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


Якщо ви знаєте, що є лише один синусоїдний компонент, ви можете встановити параболу до сусідніх відрізків піку та інтерполювати, щоб знайти «справжній» пік. Не впевнений, як це порівнюється з фазовим методом, описаним @pichenettes.
ендоліт

Відповіді:


9

Якщо ви дійсно наполягаєте на використанні FFT (а не параметричних методах, які не страждатимуть від компромісів за часом / частотою), ви можете підробити набагато кращу роздільну здатність, використовуючи фазову інформацію, щоб відновити миттєву частоту для кожного відрізка FFT. Потім партії можна виявити, шукаючи плато у функції, що дає миттєву частоту, як функцію індексу FFT bin. Загальна реалізація цієї методики, описана в цій роботі , «коштуватиме» вам додатковий STFT (миттєва частота відновлюється операціями над STFT сигналу та STFT похідної сигналу).

Дивіться, наприклад, функцію ifgram у цій реалізації Matlab синусоїдального моделювання аудіосигналів.

Зауважте, що це не допоможе вирішити дві частки, що потрапляють у сусідні контейнери FFT. Це просто забезпечить набагато більш точну оцінку частоти, ніж просто перетворення в частоту індексу FFT bin спектрального піку.


Що ви маєте на увазі під параметричними методами? Крім того, це ви, що кілька місяців тому згадували алгоритм, який був подібний до FFT, але мав октавну шкалу частоти, а не рівномірну шкалу частот?
Джим Клей

Параметричні методи - це методи статистичного аналізу сигналів, які передбачають, що сигнал генерується певним процесом, описаним набором параметрів, і що обчислює оцінку цих параметрів з найменшим квадратом зі спостережень. Наприклад, якщо ви припускаєте, що сигнал є сумою N експоненціально затухаючих синусоїд + шум, такі алгоритми, як ESPRIT або MUSIC, можуть використовуватися для виведення N складних амплітуд та пульсацій.
pichenettes

2
Ви, мабуть, маєте на увазі постійне перетворення Q. Застереження полягає в тому, що вона ніде не є такою ефективно обчислювальною, як FFT; і що інвертування цього перетворення є нетривіальною проблемою оптимізації.
пікенети

@JimClay: Можливо, це слід перенести сюди?
ендоліт

1
Скажімо, параметричні методи не страждають від компромісів часу / частоти вводить в оману. У своїй основі параметричні методи моделюють систему та використовують модель для отримання значущих даних. Але продуктивність настільки ж хороша, як і модель. Якщо припустити, що обрана "найкраща" модель (кількість полюсів або кількість власних векторів простору сигналу), ефективність цих методів все ще дуже чутлива до тривалості запису даних.
Брайан

2

Термін "роздільна здатність" має багатозначне значення. Загалом, ви не можете збільшити свою здатність розділяти (або «вирішувати») близько розташовані спектральні піки шляхом інтерполяції, використовуючи однакову довжину вікна даних. Але ви можете оцінити частоту ізольованих стаціонарних спектральних піків, що знаходяться значно вище шумової підлоги, з більш тонкою роздільною здатністю (іноді набагато більш тонкою роздільною здатністю), ніж міжряддя FFT за допомогою різних методів інтерполяції.

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

FFT - це по суті банк смугових фільтрів, кожен з дуже крутим переходом, але тонни пульсації стоп-смуги для заданої довжини ядра фільтра FIR. Таким чином, ці фільтри не мають великого відхилення шуму від неперіодичного шуму у вікні. Якщо ви підозрюєте, що такий тип перешкод є проблемою, то віконний FFT або користувацький фільтр можуть працювати краще.


1

Після подальшого дослідження, на яке посилався питання Джима Клей, і відповіді на пікенети в коментарях, я виявив, що мій метод2 - це винахід обмеженої Q-трансформації, описаний, наприклад, Кашимою та Монт-Рейно (я не впевнений, що я можу посилатися на цю статтю, файл виглядає зірваним ) .

Їхній підхід є алгоритмічно ефективнішим, оскільки вони починаються з найбільшого частотного діапазону і ітеративно знижують його на 2, поки вони не дістаються до найнижчої октави.

Переваги Q-перетворень також досліджував Браун, наприклад, тут . Це може бути не настільки ефективно, як одиночний FFT, але має перевагу в тому, що не обчислювати товстий FFT на смугах високої частоти, які цього не потребують.

Дякуємо за всі відповіді, коментарі та посилання.


Що ви описуєте звуки дуже схожі на вейвлет - перетворення, який , здається, підтверджується це . Я усвідомлюю, що це старий пост, але майбутні читачі можуть захотіти також ознайомитися з вейвлетами. Хоча, як я зазначив у своїй відповіді, ви не можете змінити принцип невизначеності частоти часу, але знання даних може дозволити вам трохи обдурити.
orodbhen

1

Якщо ви зберігаєте "історію" вхідних даних і використовуєте її для перекриття своїх DFT, то це дозволить отримати більше інформації для вилучення спектрального вмісту з. Звичайно, це залежить від різного характеру вашого сигналу. Це було б подібним за формою до функції розподілу ймовірностей.

Це дасть вам DFT, які розташовані ближче у часі. Однак це все одно збільшить часову невизначеність кожного DFT, яка обмежена законами природи: точне значення тимчасової та спектральної поведінки не може бути одночасно визначено.

Якщо вміст частоти не сильно відрізняється у вікні, тоді це повинно бути добре.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.