Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
53 / 54 / 2
Регистрация: 10.06.2023
Сообщений: 765

ESP32 чистая синусоида 50 Гц

24.04.2024, 16:35. Показов 1102. Ответов 4

Студворк — интернет-сервис помощи студентам
Увидев в интернете программу построения синусоиды для ESP32 , использующую заранее вычисленную таблицу значений синусоиды и имеющиеся на плате цифро-аналоговые 8 разрядные преобразователи (ЦАП), захотелось проверить ее возможности и ограничения, связанные с невысокой разрядностью.
При этом захотелось несколько изменить программу, устранив заведомо ухудшающие качество синусоиды детали. В первую очередь использовать для построения сигнала только 1/4 часть периода, а также проконтролировать количество точек за период и скорость опроса АЦП. В результате оказалось, что дискретизация сигнала на 255 значений позволяет использовать не больше 12 точек на 1/4 периода, при большем числе точек соседние значения вблизи максимума оказываются одинаковыми.
Эти искажения, определяемые как разрядностью, так и способом округления, заведомо вносят искажения. В программу вставлен пересчет используемой таблицы с контролем на совпадение рядом расположенных значений.
Оказалось также, что просмотр результатов на СериалПлотере зависит от частоты опроса АЦП. Она должна совпадать с частотой работы ЦАП, которая задается при выборе частоты сигнала. Для частоты 50 Гц интервал между обращениями к ЦАП равны 425 мкс.
Получаемый сигнал имеет заметные отклонения от чистой синусоиды.
Прицеплены программа и фото экрана СериалПлотера.
Вложения
Тип файла: zip ESP32_DAC_n4.zip (1.3 Кб, 0 просмотров)
Тип файла: zip SerialPloter.zip (2.85 Мб, 3 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2024, 16:35
Ответы с готовыми решениями:

Преобразователь 12->220В чистая синусоида
Возможно ли самому соорудить такой преобразователь на 500 ват ?

Синусоида в Qt
Доброго времени суток всем читающим! суть вопроса в чем: у меня задание создать ПО, рисующего график синуса по заданным...

Синусоида
помогите написать в Паскале синусуиду через цикл...

4
16 / 18 / 2
Регистрация: 02.03.2024
Сообщений: 510
24.04.2024, 19:34
это интересно,
но для чего это нужно.
наверное всегда можно как-то конденсаторами или индуктивностью обыграть?
0
1186 / 468 / 68
Регистрация: 22.09.2023
Сообщений: 1,404
24.04.2024, 21:21
Цитата Сообщение от VAF34 Посмотреть сообщение
В первую очередь использовать для построения сигнала только 1/4 часть периода
Чем именно использование полного периода было "заведомо ухудшающей качество синусоиды деталью"?
Цитата Сообщение от VAF34 Посмотреть сообщение
В результате оказалось, что дискретизация сигнала на 255 значений позволяет использовать не больше 12 точек на 1/4 периода, при большем числе точек соседние значения вблизи максимума оказываются одинаковыми.
Прямой цифровой синтез (Direct Digital Synthesis, DDS) придумали лохи.
Цитата Сообщение от VAF34 Посмотреть сообщение
Эти искажения, определяемые как разрядностью, так и способом округления, заведомо вносят искажения.
Сколько этих искажений "в граммах"?
Цитата Сообщение от VAF34 Посмотреть сообщение
с частотой работы ЦАП, которая задается при выборе частоты сигнала.
Прямой цифровой синтез (Direct Digital Synthesis, DDS) придумали лохи, да-да.
Цитата Сообщение от VAF34 Посмотреть сообщение
Для частоты 50 Гц интервал между обращениями к ЦАП равны 425 мкс. Получаемый сигнал имеет заметные отклонения от чистой синусоиды.
Котельников с Найквистом тоже лохи. Какой конфуз!
0
53 / 54 / 2
Регистрация: 10.06.2023
Сообщений: 765
25.04.2024, 14:53  [ТС]
to pup_kin Использовать плату ардуино вместо электротехнической конструкции много проще.
to Dushevny 1. В таблицах синусоиды предшественников количество последовательностей одинаковых значений располагалось не симметрично. Переход на 1/4 периода гарантирует симметрию. 2. Термины "цифровой синтез" и "лохи" надо определять предварительно, до использования. По-моему, обсуждаемый способ и есть цифровой синтез. 3. Искажения можно оценить по спектрам получаемых сигналах. В децибелах, а не граммах.
0
1186 / 468 / 68
Регистрация: 22.09.2023
Сообщений: 1,404
25.04.2024, 15:31
Цитата Сообщение от VAF34 Посмотреть сообщение
В таблицах синусоиды предшественников количество последовательностей одинаковых значений располагалось не симметрично.
Что в общем-то логично. Потому что таблица, скажем, на период синусоиды включает значение для фазы, равной 0 и не включает значение для фазы, равной 2*пи, ибо 2*пи - это уже 0 для другого периода. Аналогично получится и для таблицы на половину или четверть периода - она не будет симметричной по определению.

Цитата Сообщение от VAF34 Посмотреть сообщение
Термины "цифровой синтез" и "лохи" надо определять предварительно
Термин "прямой цифровой синтез", как и его англоязычный эквивалент "Direct Digital Synthesis (сокращенно DDS)" имеет вполне определенное определение. Об этом вам расскажет любой толковый словарь или поисковик.

Цитата Сообщение от VAF34 Посмотреть сообщение
По-моему, обсуждаемый способ и есть цифровой синтез.
Сомневаюсь. В прямом цифровом синтезе нет ограничений на кратность частот выдачи отсчетов и частоты генерируемого синуса (в общем случае там может быть и не синус). И там нет ничего плохого в выдаче одного и того же значения несколько раз подряд.

Цитата Сообщение от VAF34 Посмотреть сообщение
3. Искажения можно оценить по спектрам получаемых сигналах. В децибелах, а не граммах.
Ну так оцените и огласите. Вы только жалуетесь на какие-то "искажения", но никаких цифр для их оценки не приводите.

Я много раз получал синусоиду из таблицы методом прямого цифрового синтеза и описываемых вами ужасов не наблюдал.
И повторю вопрос:
Чем именно использование полного периода было "заведомо ухудшающей качество синусоиды деталью"?
Я использовал таблицы и на целый период и на полпериода и на четверть и даже на три полных периода только из соображений компромиса между скоростью расчета и занимаемой памятью. "Качество" синусоиды во всех вариантах оставалось идентичным. Предполагаю, что вы что-то делаете неправильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2024, 15:31
Помогаю со студенческими работами здесь

синусоида
помогите написать программу рисования синусоиды на микроконтролерt

синусоида QML+C++
Здравствуйте, может кто знает как сделать так: у меня есть область (toch) в которой я хочу нарисовать синусоиду, я испускаю сигнал...

Синусоида со сдвигом!
Привет! Помогите пожалуйста нарисовать вот такой рисунок... Сначала прямая, потом синусоида, потом опять прямая.. Только эти графики...

Синусоида OpenGl
Недавно столкнулся с OpenGL и решил нарисовать трехмерную синусоиду в пространстве X Y Z. Знаю что нужно реализовать сначала массив далее...

Синусоида: анимация
Здравствуйте! У меня есть прогрмма которая просто рисует синусоиду, при этом можно с клавиатуры вводить параметры графика (высота, длина,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru