×Закрыть

Частота дискретизації АЦП ESP-32

Доброго вечора!

Чи можна зменшити частоту дискретизації АЦП, вбудованого в ESP-32?
За замовчуванням встановлено 6 кГц. Проте, щоб повністю відтворити сигнал достатньо буде 300 Гц. Паралельно передається значення отриманого сигналу по UART протоколу.
Розробка ведеться з допомогою фреймворку ESP-IDF.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Хіба там не можна задати дільник для частоти тактування модуля ацп?

У документації цього не находив.

У документації цього не находив.

тогда почему гугл выдает в первом же результате какой нить adc_set_clk_div(uint8_t clk_div) ? :)
docs.espressif.com/...​ence/peripherals/adc.html
P.S. ни те единого регистра :)

На собственно вопрос не отвечу.
Но ты просто можешь брать данные с АЦП с частотой 300 Гц и получить то, что хочешь.
Можешь заюзать нч фильтр на 150 Гц до прореживания.

Так, я власне це мав на увазі. Дякую. Мета цього — підвищити швидкодію обрахунків у MatLab.

Мда, мало того, что моя телепалка сработала, так дальше ты еще хуже сформулировал, чего же ты хочешь.
Какое отношение швидкость матлаба имеет к ESP???

Дані з ESP передаються по UART протоколу і MatLab відображає графік у режимі реального часу. Також планую паралельно обробляти сигнал. Гадаю розмір даних буде суттєво впливати на швидкість обробки.

MatLab відображає графік у режимі реального часу

Матлаб для этого не предназначен — словишь кучу гемора. Есть там такая хрень drawnow limitrate — но она своеобразная. Если нужно рисовать в реальном времени, то юзай Qt или подобное на C++.
Ну а собственно как числодробилка матлаб крут, если все написано у тебя на матрицах. Он юзает MKL, а эту либу обогнать очень и очень сложно. Можешь собственно обработку сделать на матлабе из загнать в dll или so. В матлабе это элементарно делается: deploytool.
На размеры данных матлабу почти плевать, ровно настолько, насколько плевать на это MKL.
Внутри MKL юзается матричная арифметика оптимизированная под процессоры и многопоточность.
Собственно сам же интерпретатор матлаба медленный настолько насколько медленный интерепретатор питона. В силу большего стажа у матлаба, его интерпретатор лучше умеет выполнять операции.
Посему C= A+B сильно сильно быстрее, чем
for i=1:N
for j=1:M
C(i,j) = A(i,j)+B(i,j)
end
end

Одно важное правило для матлаба: Всё что может быть векторизовано, должно быть векторизовано.

Дякую за пораду! А часом не підскажете, яка технологія окрім C++ і MatLab є доцільна в якості інструменту для обробки сигналу і його візуалізації у режимі реального часу? (С++ знаю дуже поверхнево)

С++ и либы оптимизированные от того же интела MKL, IPP или опенсурсные blas, lapack, fftw и подобное. Матлаб хорош, когда тебе нужно придумать и отладить собственно сам алгоритм. Либа armadillo дает матричную арифметику подобную матлабу на С++ и умеет юзать кучу реализаций blas и lapack.
Для визуализации, тут уже каждый ищет что-то подходящее от Qt и подобных до OpenGL или DirectX. Например, SDL отличная либа для своих задач.

Собственно фильтры ты можешь рассчитать в матлабе, а после самому его написать на С (20 строк) или или заюзать IPP.

Ну и напомню. В матлабе матрицы, как и в фортране, по столбцам, а не по строкам размещаются в памяти.

либ для blas и lapack море: mkl, acml, openblas, atlas, cublas и еще стадо.
для сигналов ipp(intel), npp(nvidia), fftw.

Цифровые фильтры могут быть гораздо эффективнее, чем простые фильтры 1-го или 2-го порядков. Есть только один недостаток: их нужно запрограммировать -) Кроме того, если автору , например, нужно убрать 50 Гц, то только цифровой справится в степени, достаточной для точных измерений.

Саме так, крім того у мене апаратний ФВЧ 2 порядку і ФНЧ 3 порядку. Мені потрібно мінімізувати шум 50 Гц методом цифрової обробки.

Ну в Матлабе с фильтрами полный выбор всего. Чего было вообще напридумано. тем более, что это старая часть матлаба и она очень качественно сделано.
Это в новых уже снежинки резвятся так, что глаза на лоб вылазят.
Но он же хочет с АЦП на низкой частоте посему фильтр нужен перед тем, как он забирать будет.

З.Ы. Это к тому, что научитесь уже люди формулировать свои мысли точно, а не в стиле, догадайтесь, что я мог иметь в виду.

Нам хватало турбо паскаля и первых пней чтобы убирать 50 Гц в полный ноль програмно с полной частотой дискретизации (уже не помню, сколько точно было, но 3 кГц — это ерунда). Повадились: ангуляры, матлабы..

Матлаб не моложе паскаля. Снежинки предпочитают нынче питон. Фактически матлаб — это интерпретатор в стиле фортрана.
Но для питона только numpy отлично написано и есть куча криво написанных движков нейронок.

Вот объясни, как одна и таже модель на 6 ядерном CPU, работает так же по времени, как она на же на тесле на GPU? Это же как криво нужно юзать GPGPU.

Философские вопросы бытия )) Я с 99-го с железом не работал. С трудом ориентируюсь, что сейчас к чему. Хотя вот в карантине задумал предусилок собрать с джентельментским набором: тональная коррекция громкости, полки для высоких-нихзких частот, тональная коррекция по Линквицу, кроссовер для триампинга, балансные входы-выходы, малинка с рейдом, ЦАП на 2×9038, и сильно задумался: а не вставить ли там современный DSP вместо 50 операционников?.. К винилу у меня иммунитет, так что почему бы и нет. Вот так вот невзначай Виталий подкинул идею на подумать.

Где матлаб, где железо, где кони, где люди?

Подписаться на комментарии