|
Спектральный анализ 44kHz stereo на STM32Fxxx..., Возможность и современный опыт сообщества? |
|
|
|
 |
Ответов
|
Feb 22 2017, 17:09
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
fft у кортексов очень грубо говоря - 100 тактов на отсчёт у M4, раза в два больше у М3. отдельные ноты неплохо бы различать, то есть корень 12й степени из 2 = 5%, от, пусть будет 200Гц. то есть 10 Гц разрешения по частоте хотя бы иметь надо, то есть ~100мс и соответственно FFT на 4k точек, даёт 4e3 * 100 / 0.1 = аж 4МГц тактовой частоты. => STM32 абсолютно любой, даже M0, у которого на FFT десять раз больше времени уйдёт, если ему данные малость проредить (зачем ему 44кГц для определения частоты в районе 1кГц) то и F0 вполне справится. ну и если надо просто некую "среднюю" частоту сигнала найти, то отношение среднеквадратичного значения производной к среднеквадратичному значению сигнала можно хоть на калькуляторе руками успеть посчитать
|
|
|
|
|
Feb 23 2017, 10:21
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(_pv @ Feb 22 2017, 19:09)  Отдельные ноты неплохо бы различать, то есть корень 12й степени из 2 = 5%, от, пусть будет 200Гц. то есть 10 Гц разрешения по частоте хотя бы иметь надо Тут я задумался и засомневался, подходит ли FFT для анализа именно гармонии по той самой причине, что музыкальный тональный ряд нелинеен и есть степенная функция, то есть тот самый корень 12-й степени из 2 на полутон, спасибо Баху за темперирование. Может замутить, скажем, 12*N отдельных цифровых фильтра, где N - количество перекрываемых октав? Думаю, трех - малой, первой и второй, - будет достаточно. Это получается от 131Hz "до" малой до 1047Hz "си" второй. Какова оценка необходимой производительности будет? Спасибо заранее. Цитата(khach @ Feb 23 2017, 12:04)  Спектроанализатор, блютус, USB, I2S на одном камне в риалтайме? Не верю (с). Как пример - SDR радио на кортексах (любительское). Конечно без особой оптимализации, но в эпоху STM32F4 пришлось использовать два процессора с межпроцессорным взаимодействием. И только с появлением STM32F7 все "утопталось" в один камень. Не все так страшно. Во-первых, BT - отдельный модуль с I2S выходом. CPU лишь настраивает его по UART. Во-вторых, спектроанализатор с I2S как вход CPU и USB с I2S как выходом - альтернативно-работающие объекты.
|
|
|
|
|
Feb 23 2017, 11:13
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(KnightIgor @ Feb 23 2017, 16:21)  Может замутить, скажем, 12*N отдельных цифровых фильтра, где N - количество перекрываемых октав? Думаю, трех - малой, первой и второй, - будет достаточно. Это получается от 131Hz "до" малой до 1047Hz "си" второй. Какова оценка необходимой производительности будет? Герцелю надо лишь умножение и сложение на отсчёт, но в результате 5-10 тактов на отсчёт набежит, соответственно если надо посчитать спектр на отдельных 10-20 частотах, то Герцель будет быстрее, плюс сетка частот произвольная, но если больше 20, то ФФТ хоть и для всего спектра будет быстрее.
|
|
|
|
|
Feb 23 2017, 11:33
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(_pv @ Feb 23 2017, 13:13)  Герцелю надо лишь умножение и сложение на отсчёт, но в результате 5-10 тактов на отсчёт набежит, соответственно если надо посчитать спектр на отдельных 10-20 частотах, то Герцель будет быстрее, плюс сетка частот произвольная, но если больше 20, то ФФТ хоть и для всего спектра будет быстрее. Я так понимаю, что для случая 36 частот FFT будет быстрее, но вопрос остается, как "попасть" на нотный стан отсчетами FFT: шаг между частотами растет от 8Hz внизу малой октавы быстро до 55Hz в конце второй. Если взять шаг те же 8Hz, то получим (1047-131)/8=115 бинов частот, или 230 FFT точек. Так? Для анализа наличия нот надо будет просто выбрать подходящие близкие бины из результата?
|
|
|
|
|
Feb 23 2017, 12:21
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(KnightIgor @ Feb 23 2017, 17:33)  Я так понимаю, что для случая 36 частот FFT будет быстрее, но вопрос остается, как "попасть" на нотный стан отсчетами FFT: шаг между частотами растет от 8Hz внизу малой октавы быстро до 55Hz в конце второй. ну будет немного быстрее, но там по быстродействию всё равно запас вроде есть. я бы попробовал Гёрцеля для начала, если не хватит скорости, тогда уже можно будет думать как ускорить. Цитата(KnightIgor @ Feb 23 2017, 17:33)  Если взять шаг те же 8Hz, то получим (1047-131)/8=115 бинов частот, или 230 FFT точек. Так? Нет, 230 точек на 44кГц дадут разрешение по частоте 190Гц. Цитата(KnightIgor @ Feb 23 2017, 17:33)  Для анализа наличия нот надо будет просто выбрать подходящие близкие бины из результата? полученный спектр можно тоже интерполировать и брать значение на нужной частоте. хотя и интерполяция "ближайшим соседом" возможно тоже подойдёт.
|
|
|
|
Сообщений в этой теме
KnightIgor Спектральный анализ 44kHz stereo на STM32Fxxx... Feb 22 2017, 16:49 KnightIgor Цитата(_pv @ Feb 22 2017, 19:09) STM32 аб... Feb 22 2017, 20:57     KnightIgor Цитата(_pv @ Feb 23 2017, 14:21) Нет, 230... Feb 23 2017, 16:56    khach Цитата(KnightIgor @ Feb 23 2017, 14:33) н... Feb 23 2017, 12:22 Obam На we.easyelectronics.ru года 3 назад делали цвето... Feb 22 2017, 18:26 khach Берите семерки STM32F746 или STM32F769 - там и ... Feb 22 2017, 19:05 Allregia Цитата(khach @ Feb 22 2017, 20:05) Берите... Feb 23 2017, 05:10  KnightIgor Цитата(Allregia @ Feb 23 2017, 07:10) Смо... Feb 23 2017, 09:20 Genadi Zawidowski Тогда точно придется утаптывать в целочисленку... ... Feb 22 2017, 21:19 khach Спектроанализатор, блютус, USB, I2S на одном камне... Feb 23 2017, 10:04 jcxz Цитата(khach @ Feb 23 2017, 12:04) Как пр... Feb 23 2017, 17:43  KnightIgor Цитата(jcxz @ Feb 23 2017, 19:43) Странно... Feb 24 2017, 09:04   jcxz Цитата(KnightIgor @ Feb 24 2017, 11:04) З... Feb 24 2017, 15:28 Allregia Цитата(khach @ Feb 23 2017, 11:04) Спектр... Feb 24 2017, 09:23 khach Проблемы были не со скоростью а с памятью- буфера ... Feb 24 2017, 10:40 Allregia Выводить спектроанализатор - не кино смотреть (и н... Feb 24 2017, 11:04 KnightIgor Цитата(KnightIgor @ Feb 22 2017, 18:49)
... Feb 27 2017, 13:25 romas2010 Цитата(KnightIgor @ Feb 27 2017, 16:25) П... Feb 28 2017, 17:43  KnightIgor Цитата(romas2010 @ Feb 28 2017, 19:43) Я ... Feb 28 2017, 19:50   Aleksandr Baranov Цитата(KnightIgor @ Feb 28 2017, 14:50) Ч... Feb 28 2017, 20:43 Obam Нету у ТС пока "сопра"... Feb 28 2017, 18:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|