Як я коментував попередній пост, метод частотно-частотного аналізу, відомий як "короткострокове перетворення Фур'є" , еквівалентний банку фільтрів, аналізуючи ваш сигнал x . Для даного вікна аналізу w n , розміром N , фільтр на частоті k / N дорівнює:
h n = w - n e j 2 π n kXxwnNk/N
Для звичайних вікон для аналізу (Ханн, Хеммінг або навіть прямокутник) це відповідає фільтру низьких частот, з частотою відсікання близько 1/Nk
Ви можете знайти реалізацію CQT тут і там, останнім часом професора Клапурі, який має досить пристойну зворотну інформацію, можна знайти тут . Аудіогрупа Telecom ParisTech також має реалізацію професора Прадо, але я її ще не пробувала.
[Браун91] Дж. Браун, "Розрахунок постійної Q спектральної трансформації", Журнал Акустичного товариства Америки, 1991, 89, 425-434
EDIT 20121014: кілька відповідей та коментарів до ваших (брихойт) питань.
Просто загальні ідеї щодо ваших власних коментарів до головного питання: Ви, мабуть, зацікавлені у багатьох програмах, які, на мене, не зовсім тривіальні проблеми. "Моделювання тембру" звучить для мене більше пов'язаним із розпізнаванням мови чи подібним, для якого крок чи дозвіл частоти чи точність не є великою проблемою (розглянемо, як зазвичай обчислюються MFCC).
Розглянемо також , як багато провідні дослідники ( Ф. Pachet і команда repmus в IRCAM, Франція , процитувати кілька) працюють на тему автоматичної імпровізації і акомпанементу: завдання не є неможливим, але вимагає спеціальних знань у багатьох областях. Підводячи підсумок, типова система повинна наслідувати слухову систему людини (принаймні), впроваджувати сприйняття звуку / музики / тону / ритму, знати теорію музики та приймати рішення, засновані на оцінках усіх попередніх кроків. Перетворення Фур'є, або будь-яке подання сигналу, є лише одним (крихітним) кроком до досягнення кінцевої мети - і, на мій погляд, це, на мою думку, найкраще зрозуміло дотепер.
Однак, існує ймовірність, що кожен дивиться далеко за рамки того, що відбувається насправді, і ви можете розбити це в простому, таким чином елегантному рішенні! Не забудьте опублікувати про це, як тільки це буде зроблено! :-)
вибірки 0,1 с на 44 кГц достатньо, щоб містити широкий діапазон частот
Fs/N=44100/4410=10Hz
FFT не може виявити це для низьких і високих частот, але ви кажете, що інші алгоритми можуть: що таке компроміс?
Коротка відповідь: прочитайте мою тезу щодо оцінки мелодії!
Щоб детальніше розібратися: багато алгоритму оцінки висоти тону виходять за рамки обмежень FT, завдяки припущенням звуків, які обробляються. Ми очікуємо, що ноти від природних звуків (людський голос, гобой, сакс, фортепіано ...) будуть складнішими, ніж окремі синусоїди. Більшість звукових звуків більш-менш гармонічні, це означає, що їх можна моделювати як суми синусоїд, частота яких кратна основній частоті.
Тому корисно враховувати ці гармоніки при оцінці висоти, використовуючи методи, що використовують функції виявлення, такі як спектральні суми, спектральні продукти або функції автокореляції. Нещодавно хтось розпочав пов’язану тему .
Що таке компроміси? Більш конкретно, який рівень точності частоти можна очікувати за досить коротке вікно? (Я розумію, розмір вікна в CQT мінливий - наскільки це так?) Навіть точніше, наскільки близько я зможу дістатись до моєї прибл. мета 0,5% різниці частот з вікном 0,005s?
Як було сказано раніше, з вікном 0,005s ви можете очікувати щось на кшталт 200 Гц "витоку частоти". Це справді проблема лише тоді, коли у вас є 2 синусоїди з частотою, ближчою до 200 ГГц, так що FT не зможе показати, що це 2 різні синусоїди. Ну, ми далекі від ваших 0,5% (до речі, півтон на 6% частоти!), А 0,005s - це справді трохи для ваших цілей. Однак, якщо ви хочете надавати оцінку кожні 0,005 секунди, ви все одно можете обробляти більш довгі кадри, що перекриваються, як це зазвичай робиться при обробці мови / музики. Це те, чого ти насправді хочеш?
Nk=Fsfk(21/B−1)
BB=48fk=100Hzвимагають близько 0,7s довгих вікон. Це нічого не означає, що ми потім втрачаємо трохи часової роздільної здатності ... Але, як згадувалося раніше, це проблема лише в тому випадку, якщо ми забудемо структуру звуку. Крім того, психоакустика вважає, що нижче 500 Гц людина насправді не так добре розрізняє синусоїди: навіть люди там кидають виклик. Звичайно, ми можемо сподіватися, що наші комп’ютери можуть зробити краще за нас, але тут ми стикаємося з важкою проблемою!
Нарешті, зауважте, що існують інші способи обчислення частотного представлення звуку, розглянемо, наприклад, банки фільтрів гамматонів. Перевага CQT, про яку я згадував раніше, полягає в тому, що існує програмне забезпечення як для перетворення, так і для його інвертування. Особисто я все ще дотримуюся STFT, проте для його простоти і тому, що до цього часу мені ніколи не потрібна краща роздільна здатність на низьких частотах, навіть для поділу джерела.
[Schoerkhuber2010] Schoerkhuber, C. and Klapuri, A., "Панель інструментів перетворення постійної Q для обробки музики", 7-а конференція звуко-музичних обчислень, Барселона, Іспанія, 2010.