Вопросы про реализацию аудио-подсветки на ESP8266

Я не планирую что-то вымерять или сводить по этому “анализатору”. Просто, чтобы было красиво. Красиво с точки зрения человека, который хочет лицезреть басовый спектр немного поточнее, чем это даёт преобразование Фурье с выборкой в 128 сэмплов.

Тогда это не сюда)) Тут примерно так — уродливо, но точно )) sad but true, вот Граф не даст соврать

И да, походу попахивает коммерцией))

В принципе, я вас понимаю - но не понимаю о чем тут дискутировать. Поправьте меня, но насколько я знаю, Фурье распределяет точки равномерно. Значит если условно вы на диапазон в 13 КГц берете 128 точек - у вас будет 1 точка на 100 Гц. И все ваши басы должны быть переданы посредством 2-4х точек. Наверно это некрасиво… но что поделать. Тут никуда не прыгнешь, 128 точек для Фурье - это просто ни о чем.

Можно посоветовать разбить диапазон на две части и каждую обработать отдельно … но от этого “улучшения” будет больше проблем, чем пользы.

Я думаю что в профессиональных анализаторах сигнал СНАЧАЛА разделяется фильтрами на отдельные полосы, а потом уже разные полосы обрабатываются с разным числом точек.

Хотя память нынче дешева, так что они могут себе позволить тупо жахнуть по всему диапазону 16К точек или все 64…

Ну так и флаг в руки!
Форум-то тут при чем?
С какой целью Вы написали на форум? Просто поделиться своими хотелками?

да просто поболтать…
Почему бы нет?

Вот и я тоже.

Нет, 128 - это у него не “точек”, 128 - это “сэмплов”. Следовательно, частотных полос будет вдвое меньше, т.е. 64, а на “точку” будет приходиться 200 Гц.
Можно посчитать и “с другой стороны”: на диапазон 13 кГц нужна частота дискретизации не менее 26 кГц. Вот ее уже и делим на 128.

Если двигаться дальше - чтобы получить разрешение более 100 Гц на точку - надо дольше копить сигнал. Если ТС хочет различать 10 ГЦ - ему надо копить данные не менее 1/F - то есть для 10 Гц 1/10 секунды.
Массив накопленный в течении 0.1 сек на частоте 26 кГц - это 2600 точек. Вот это тот минимум, при котором имеет смысл начинать искать “красивую” картинку в анализаторе
А что вы ожидали увидеть при 128 точках?..

Если “красивая картинка” с одной стороны заканчивается на 13 кГц, то, может, для “другой стороны” достаточно будет и 50 Гц?
Но, увы, для любых конкретных оценок необходимо знание арифметики. Собственно, об этом я уже говорил в сообщении №5.

да не, это просто я так “округлил”, чтобы на 128 точек делить было удобнее :slight_smile:
Хотя реально недавно тестировался - я выше 13 КГц уже ничего не слышу

А колонки “бытового” уровня ниже 60 Гц тоже ничего не воспроизводят. (речь именно о “музыкальных” колонках, а не о компьютерной “пластмассе”)

Я напомню, изначально возникали вопросы, например - вытянет ли ESP8266 и его 80 МГц всё это.

Ответ получен, за это спасибо.

Также насчёт внешнего АЦП -

Возможно, за счёт того, что он не будет физически рядом с антенной Wi-Fi, ну или, по крайней мере, интегрирован не в один чип с Wi-Fi. А сами чипы при разведении платы можно будет расставить по дальним углам, чтобы меньше давали наводок друг другу. - Это кстати ещё одна вещь, которую хотелось уточнить, извините, что не написал об этом сразу

Ну и насчёт выбора самого АЦП, такого, чтобы его можно было подружить с сим микроконтроллером и чтобы он справлялся с целью, и не очень дорогого.
Смотрел другие проекты, связанные с аудио, где был использован АЦП ADS1015. Смотрел на Алиэкспресс - цена не кусается, в районе 140-160 рублей, но почему-то снова большинство русских отзывов говорят, что высока вероятность подделки. К слову, очень похожая “геополитическая” ситуация с комментариями под усилителями TDA7293 - присылают брак.
Стал смотреть на Чип и Дипе, который вроде как достоверный поставщик. Там одна такая платка с чипом АЦП стоит около 1000 рублей. Подумал - довольно дорого для мигания светодиодами. Поэтому написал на форум в поисках АЦП подешевле, желательно, чтобы это был совет от человека, который уже работал с таким чипом.

В принципе, ответ получен, более того, поделились ссылкой на уже существующий проект, хоть и на STM32, но нужная информация есть, благодарю.

Также один вопрос: с Алиэкспресс так и покупать, с вероятностью брака? Например, платы Arduino практически все попадаются без брака, не знаю, почему именно на таких микросхемах брак попадается чаще. Может есть другие проверенные дистрибьюторы микросхем, у которых цены дешевле?

И ещё: если забить на Wi-Fi и остановиться на встроенном АЦП - посоветуйте, пожалуйста, схему, чтобы мультиплексировать этот АЦП до двух входов. Гуглил - находил фигню. Имеется куча советских транзисторов, скорее всего из них можно набрать на два взаимно переключающихся ключа, способные с приемлемым количеством искажений пропускать аудиосигнал. Буду благодарен за общую рабочую схему, применимую в аудио целях, а в “советских транзисторах” могу покопаться сам в поисках подходящих.
На крайняк имеются аналоговые мультиплексоры CD74HC4067. Подойдут ли они для звука?

За непопадания в термины прошу прощения.

Интересно.

А что, если выполнять параллельно два преобразования Фурье в 128 точек, одному скармливать каждый отсчёт, а другому - каждый десятый (или больше), и получится, что одно преобразование отвечает за верхний диапазон, а второе - за нижний. Главное: справится ли с этим микроконтроллер и будет ли это лучше, чем преобразование в 256 точек от всего звука?

Я убедился, что при понижении частоты дискретизации низкие частоты передаются более достоверно
Пример 128-точечного преобразования Фурье от звука с частотой дискретизации 44100 Гц:


И то же самое с 1000 Гц:

UPD. да, написал фигню… Забыл, что при низкой частоте сэмплирования нужно до дискретизации обрубить все частоты выше половины этой частоты сэмплирования - завозить sinc-интерполяцию или фильтр на основе импульса.

Не “каждый десятый”, а среднее значение десяти отсчетов. Ну, либо, ФНЧ тем или иным способом (можно как аналоговый до дискретизации, так и цифровой - после).

Арифметика и еще раз арифметика.

Сначала нужно формализовать, что такое “лучше”.

PS. Но вообще, когда дело касается программирования, забудьте число десять. Круглые числа можно искать только в ряду: 2, 4, 8, 16, 32, 64…