BIK14 5 3 октября Опубликовано 3 октября · Жалоба Приветствую! На МК делаю некий генератор звука заранее заданной частоты на базе ШИМ. В схеме стоит цифровой микрофон. Хочу сделать обратную связь через этот микрофон для подавления всяких паразитных гармоник, но не могу понять как это сделать. Предполагаю каждый отсчет синуса на период, снятый с микрофона, прогнать через режекторный цифровой фильтр на основе всепропускающего фильтра, который срежет эту частоту синуса и оставит гармоники. Собрать массив данных за период синуса. Определить минимум и максимум значений в этом массиве, а затем путем перестройки коэффициента заполнения ШИМ в каждом отсчете минимизировать разницу между этими значениями. Т.е. запустили 1 период ШИМ синуса, получили разницу между максимумом и минимумом, запомнили ее. Далее изменили коэффициент заполнения для 1-го отсчета, запустили 2 период ШИМ синуса, получили разницу между максимумом и минимумом, сравнили ее с предыдущим значением, если меньше, то оставляем текущий коэффициент, если больше, то возвращаем предыдущий коэффициент. И так далее для каждого отсчета ШИМ синуса. Будет ли такой алгоритм работать? Может есть варианты попроще и получше? 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 29 3 октября Опубликовано 3 октября · Жалоба 1. Считаем фурье. 2. Достаём из п.1 амплитуды и фазы гармоник. 3. Добавляем их в сигнал в противофазе. Если не помогло повторяем вычисления и добавляем новые гармоники к ранее посчитанным. Пробуем смотрем что происходит. Если сойдётся радуемся. Если не сходится разбираемся почему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 3 октября Опубликовано 3 октября · Жалоба А зачем микрофон в генератор звука? Если хотите убрать несущую частоту ШИМ, так это обычные RC и LC фильтры Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BIK14 5 3 октября Опубликовано 3 октября (изменено) · Жалоба 38 minutes ago, EdgeAligned said: А зачем микрофон в генератор звука? Если хотите убрать несущую частоту ШИМ, так это обычные RC и LC фильтры Генерируем заданную синусоиду, известную. Аппаратные ресурсы ограничены. Сейчас стоит фнч 2-порядка. Его улучшить никак нельзя. Есть микрофон (для другой задачи), но хочу его использовать для подавления 2, 3 гармоник и артефактов самого динамика. Поэтому и вопрос как правильно организовать акустическую обратную связь. Какой сигнал с микрофона будет отражать улучшение качества генерируемой синусоиды. 2 hours ago, MegaVolt said: 1. Считаем фурье. 2. Достаём из п.1 амплитуды и фазы гармоник. 3. Добавляем их в сигнал в противофазе. Если не помогло повторяем вычисления и добавляем новые гармоники к ранее посчитанным. Пробуем смотрем что происходит. Если сойдётся радуемся. Если не сходится разбираемся почему. Вас понял, спасибо. Фурье за 1024 такта на 48 МГц без FPU успеет посчитаться? Изменено 3 октября пользователем BIK14 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 3 октября Опубликовано 3 октября (изменено) · Жалоба Сигнал с микрофона будет ловить всё, что происходит вокруг, а не только звучащую частоту. Если параметры фильтра улучшить нельзя, то можно поднять саму частоту ШИМ. Когда-то раньше были эксперименты по установке на динамики акустических систем дополнительной генерирующей катушки обратной связи по ходу динамика, сигнал с которой подавался на корректирующий вход обратной связи УМЗЧ. Но там была другая задача - связь по механическому перемещению динамика для уменьшения резонансов и нелинейностей. Изменено 3 октября пользователем EdgeAligned Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 6 3 октября Опубликовано 3 октября · Жалоба Quote Фурье за 1024 такта на 48 МГц без FPU успеет посчитаться? Все зависит от оптимизации. Можно считать в целых. Кроме того, Вам почти все равно за сколько оно будет считаться. Никто не заставляет корректировать ШИМ на каждом буфере. Ну будет сходиться помедленнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 3 октября Опубликовано 3 октября · Жалоба 5 часов назад, BIK14 сказал: Хочу сделать обратную связь через этот микрофон для подавления всяких паразитных гармоник, но не могу понять как это сделать. Что за "паразитные гармоники"? И откуда они должны возникать? Или - зачем генерировать сигнал с этими самыми "паразитными гармониками", чтобы потом с ними бороться? Может лучше уж генерить сигнал без них? И бороться не нужно будет. Если конечно борьба - не самоцель всего действа.... 5 часов назад, BIK14 сказал: Предполагаю каждый отсчет синуса на период, снятый с микрофона, прогнать через режекторный цифровой фильтр на основе всепропускающего фильтра, который срежет эту частоту синуса и оставит гармоники. Собрать массив данных за период синуса. Написан какой-то бред.... Откуда в синусе какие-то "гармоники"??? Вы вообще понимаете - что называют "гармониками" ("гармоническими составляющими")? Их по определению не может быть в синусоидальном сигнале. Так как там всего одна единственная гармоника - основная частота. 5 часов назад, BIK14 сказал: Может есть варианты попроще и получше? Лучше сначала разобраться хотя-бы с базовыми понятиями.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 3 октября Опубликовано 3 октября · Жалоба 5 часов назад, BIK14 сказал: для подавления всяких паразитных гармоник, Каких конкретно гармоник? "Всяких" - это конкретно каких? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 3 октября Опубликовано 3 октября · Жалоба 57 минут назад, BIK14 сказал: Есть микрофон (для другой задачи), но хочу его использовать для подавления 2, 3 гармоник и артефактов самого динамика. Поэтому и вопрос как правильно организовать акустическую обратную связь. Может вы всё-таки - хотите измерить АЧХ вашего акустического тракта? А не мифические "паразитные гармоники" в генерируемом сигнале искать. АЧХ тракта исследуется совсем другими методами. И никакие БПФ для этого не нужны. 57 минут назад, BIK14 сказал: Какой сигнал с микрофона будет отражать улучшение качества генерируемой синусоиды. Качество генерируемого сигнала известно априори - без всяких микрофонов. Определяется оно качеством вашего кода и параметрами ШИМ/ЦАП. Никакие микрофоны на него никак не могут влиять. PS: В генерируемом синусоидальном сигнале нет и не может быть никаких гармоник. По определению. Там всего одна только гармоническая составляющая - основная частота. Топикстартеру совет - начинать с чтения букварей. Чтобы не писать галиматью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eddddy 31 3 октября Опубликовано 3 октября · Жалоба Справедливости ради, это только в идеальном синусе нет гармоник, - одна единственная, она же основная. В реальной жизни, в любом синусе, всегда есть посторонние, что выражается через THD. А что там у автора за "синус", он не показывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 3 октября Опубликовано 3 октября · Жалоба 7 минут назад, eddddy сказал: Справедливости ради, это только в идеальном синусе нет гармоник, - одна единственная, она же основная. А почему синус должен быть неидеален? Из-за ограничения полосы ШИМ? Ну так - гармонические составляющие, возникающие из-за ограничения полосы ШИМ, никакими микрофонами не скомпенсировать. Их можно уменьшить только увеличением частоты ШИМ. Или переходом на ЦАП. Микрофон для этого не нужен. А неидеальности синусоиды из-за кривого алгоритма генерации побеждаются корректно написанным кодом и отладчиком. Микрофон тут также без надобности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 86 3 октября Опубликовано 3 октября · Жалоба Синус, как тригонометрическая функция f(x) = sin(x), не содержит никаких гармоник. А всякие искажения, наблюдаемые в реальной жизни - это к математическому синусу не имеет отношения. И уж микрофоном бороться с этими электрическими искажениями - эт какие-то новые "прорывные" технологии. К сожалению, сейчас молодняк сильно отстает по теоретической подготовке, поэтому и появляются такие странные предложения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eddddy 31 3 октября Опубликовано 3 октября · Жалоба 2 минуты назад, jcxz сказал: А почему синус должен быть неидеален? Хотя бы потому, что он проходит (усиливается, ограничивается, и т.п.) через нелинейные схемы. Да и рождается зачастую так же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 3 октября Опубликовано 3 октября · Жалоба 7 минут назад, eddddy сказал: Хотя бы потому, что он проходит (усиливается, ограничивается, и т.п.) через нелинейные схемы. Да и рождается зачастую так же. Ну так это уже называется измерение и коррекция АЧХ аудио-тракта. О чём я выше писал: 21 минуту назад, jcxz сказал: Может вы всё-таки - хотите измерить АЧХ вашего акустического тракта? А не мифические "паразитные гармоники" в генерируемом сигнале искать. И никакие БПФ для этого не нужны. А нужен простой генератор синусоидального сигнала качающейся частоты. С простым амплитудным детектором на приёмном конце. И никакие паразитные гармоники искать не нужно. Измеряем текущий уровень сигнала на приёмном конце тракта и всё. 7 минут назад, eddddy сказал: Да и рождается зачастую так же. Рождается как я понимаю из первого поста - программой ТС-а. А искажения при программной генерации синуса - пренебрежимо малы (при грамотном коде), по сравнению с искажениями во внешнем аудиотракте. Ими можно пренебречь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eddddy 31 3 октября Опубликовано 3 октября (изменено) · Жалоба 15 минут назад, jcxz сказал: измерение и коррекция АЧХ аудио-тракта АЧХ - это про не гармоники ) 15 минут назад, jcxz сказал: А искажения при программной генерации синуса Разрядность формирования не бесконечна, ЦАП не линеен (иногда очень), последующий фильтр тоже. 15 минут назад, jcxz сказал: Ими можно пренебречь. Поэтому и вопрос к автору - какой величиной гармоник можно пренебречь. Или вообще забить, издали, с трех метров глядя на осциллограф, похоже оно на синус - и ладно. Может, этого вполне хватит для задачи. Изменено 3 октября пользователем eddddy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться