Я хотів би використовувати STFT для багатопроцесного аналізу. Я усвідомлюю, що виявлення частинок, що існують у сигналі, лише початок. Все-таки у мене проблеми з цим.
Скажімо, у мене сигнал відібраний із частотою 'CD' 44100Hz
. За допомогою вікна 1024
зразків я отримую роздільну здатність бін частоти 22500Hz/512=43Hz
. Цього достатньо лише для того, щоб розпізнати високі ноти фортепіано типу:
C5 = 523.251Hz
і C#5 = 554.365
.
Я думав, що 1024
це досить велике вікно. Але, можливо, це не так, і зазвичай більші вікна використовуються для виявлення партій?
Чи можна збільшити роздільну здатність частоти за допомогою іншого способу, ніж збільшення розміру вікна, що погіршує роздільну здатність часу? Я продумав два методи:
Спосіб1:
- Розділіть сигнал на смуги частот за допомогою смугових фільтрів (наприклад,
0-11.25Hz
та11.25-22.5Hz
). - Зменшіть вибірки більш високих діапазонів, так що початкові високі частоти тепер будуть низькими частотами (так це зробити для другої смуги
11.25-22.5Hz -> 0Hz-22.5Hz
) - не впевнений, що це можливо. - Складіть отримані набори смітників з налагодженими мітками.
Спосіб2:
- Використовуйте серію фільтрів низьких частот із збільшенням межі.
- Виконуйте FFT на збільшенні частотних діапазонів.
- Для кожної частоти використовуйте найкращу можливу роздільну здатність (бункери від першого FFT, в який ця частота була включена).
- Це призведе до кращої роздільної здатності низьких частот, але я думаю, це нормально, оскільки для більш високих зауважень різниця частот - це тертка.
Буду вдячний за будь-які зауваження з цього приводу.
Я також читав тут: Як розмір вікна, швидкість вибірки впливають на оцінку кроку FFT? про спосіб поліпшення результатів пікового відбору. Думаю, спробую це використати.