|
|
  |
Алгоритм на основе FFT и интерполяции, помогите разобраться |
|
|
|
Jan 11 2013, 10:47
|
Частый гость
 
Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145

|
Извиняюсь) ссылку то не привел на статью http://www.tedknowlton.com/resume/CCPPT.htmТут используется 11,894 Hz
|
|
|
|
|
Jan 11 2013, 18:01
|
Частый гость
 
Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145

|
Цитата(KalashKS @ Jan 11 2013, 15:41)  Целиком не прочитал, выделил основное. Для настройки разных нот применяется разный коэффициент децимации. Не знаю, насколько снижение точности при этом критично для струн, настраиваемых в унисон, а для различных нот оно должно быть не так заметно. Спасибо. Жалко, тогда автоматически определить ноту не получается...
|
|
|
|
|
Jan 26 2013, 00:43
|
Гуру
     
Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965

|
В статье, похоже, пытались минимальными аппаратными средствами получить максимальную точность определения частоты. Можно получить ту же точность увеличив буфер. При этом не требуется различное прореживание для различных нот, достаточно длинного буфера. Время счета, естественно, возрастает. Но для современных DSP это не проблема. RealTime все равно получается. В статье не учтено совершенно различие частоты для нескольких струн, по которым ударяет одна клавиша. Это упомянуто во введении, а дальше как-то опущено. Мне кажется, что точность настройки должна быть очень хорошей. Можно смотреть по огибающей, но, мне кажется, лучше применить окно, чтобы увеличить разрешение по частоте. Для одной частоты можно получить интерполяцией очень высокую точность ее определения. Когда же там смесь близких частот, то нужно их разрешать, чтобы понять какая струна дает какую частоту.
|
|
|
|
|
Jan 29 2013, 07:33
|
Частый гость
 
Группа: Участник
Сообщений: 86
Регистрация: 10-01-13
Пользователь №: 75 145

|
Цитата(Alexey Lukin @ Jan 25 2013, 03:00)  Определить ноту можно и без прореживания, тут особая точность по частоте не нужна. На низких нотах разница между двумя соседними нотами чуть больше герца, точность нужна хорошая. Цитата(Alex11 @ Jan 26 2013, 04:43)  В статье, похоже, пытались минимальными аппаратными средствами получить максимальную точность определения частоты. Можно получить ту же точность увеличив буфер. При этом не требуется различное прореживание для различных нот, достаточно длинного буфера. Время счета, естественно, возрастает. Но для современных DSP это не проблема. RealTime все равно получается. В статье не учтено совершенно различие частоты для нескольких струн, по которым ударяет одна клавиша. Это упомянуто во введении, а дальше как-то опущено. Мне кажется, что точность настройки должна быть очень хорошей. Можно смотреть по огибающей, но, мне кажется, лучше применить окно, чтобы увеличить разрешение по частоте. Для одной частоты можно получить интерполяцией очень высокую точность ее определения. Когда же там смесь близких частот, то нужно их разрешать, чтобы понять какая струна дает какую частоту. У меня немного другая задача, мне не нужно определять частоту для двух струн, только для одной. Более длинная выборка это не только время счета но время самой выборки. Например, нота Ми большой октавы, ее частота 82.41Гц. на пол тона ниже (на 9,63Гц) на частоте 77.78Гц находится ми бемоль, т.е. даже если я определю частоту с точностью 0,5Гц я получу на этих нотах ошибку в 5%, это будет заметно на слух. Можно поподробнее насчет "окна"?
|
|
|
|
|
Jan 29 2013, 08:23
|
Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 7-02-11
Пользователь №: 62 755

|
Цитата(Burenkov Sergey @ Jan 11 2013, 22:01)  Спасибо. Жалко, тогда автоматически определить ноту не получается... Тут, если вычислительные мощности позволяют, можно последовательными приближениями ее определить. Если я правильно считаю, то без прореживания при длине окна 512 можно определить ноту с точностью до октавы. После этого можно проредиться и на следующем шаге определить уже и саму ноту. При меньшем окне понадобится больше шагов, но при этом может снизится вычислительная сложность.
|
|
|
|
|
Jan 29 2013, 18:23
|

Частый гость
 
Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000

|
Цитата(Burenkov Sergey @ Jan 29 2013, 10:33)  На низких нотах разница между двумя соседними нотами чуть больше герца, точность нужна хорошая. Я имел в виду, что без прореживания можно определить примерное положение ноты, а затем уже выбрать нужный коэффициент прореживания в зависимости от этого.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|