-
- Шутите так:-) Генерим таблицу отсчетов косинуса в маткаде, для
прошивки проца, сам проц в прерываниях делает переполняющийся
сумматор с кодом частоты. Даже при 8 бит разрядности, гармоник
будет 2^-8. DDS называется, здесь в разделе "наше все" статья про
это есть. - Visitor(11.12.2021 16:08)
- У DDS частота дискретизации более чем на прядок выше предельной
частоты работы ЦАПа. Скажем, у известной мне AD9834 на плате модуля
(см. ссылку) стоит кварцевый генератор на 75 МГц, тогда как у моего
STM32H743 ЦАП выше 1 МГц не тянет (это по даташиту, но реально
может и чуть выше). Ясно, что тактовой частотой DDS 75 МГц сделать
синус на 150 КГц можно запросто, тогда как с тактовой 1 МГц это
будет 6.5 точек на период, чего явно недостаточно. Kceния(1 знак., 11.12.2021 17:02, ссылка)
- Пробовали вывести из ЦАПа, на 300кГц частоте дискретизации, прямым
синтезом свои модулированные 150кГц? Можно даже на оба ЦАПа сразу,
дифференциально. И отфильтровать аналогово. Nikolay_Po(299 знак., 11.12.2021 17:22)
- Пробовала, то тогда я не могу плавно менять частоту модуляции, т.к.
вынуждена буду использовать целочисленное число периодов несущей на
один период модулирующей. В противном случае появится дробный
остаток от периода несущей, с которым непонятно что делать. Тогда
как генерация мне нужна непрерывная, а не так, что прогнала буфер и
встала. - Kceния(11.12.2021 17:30)
- Вы совсем не поняли идею прямого синтеза;-) Нет никаких буферов. Есть таблица синусов, или косинусов, пофиг. Есть код частоты который на каждом прерывании суммируется с содержимым аккумулятора (16 бит), а оно при урезании младших разрядов является индексом обращения к таблице. Частоту как угодно плавно менять можно:-) Минимальный шаг перестройки частоты будет равен тактированию аккумулятора деленному на 2 в отрицательной степени его разрядности, там доли от 1 Гц точность Visitor(37 знак., 11.12.2021 18:04)
- Пробовала, то тогда я не могу плавно менять частоту модуляции, т.к.
вынуждена буду использовать целочисленное число периодов несущей на
один период модулирующей. В противном случае появится дробный
остаток от периода несущей, с которым непонятно что делать. Тогда
как генерация мне нужна непрерывная, а не так, что прогнала буфер и
встала. - Kceния(11.12.2021 17:30)
- Вы - красавица и чудовище в одном лице. - Kpoк(11.12.2021 17:13)
- +1 ;-) - Toчкa oпopы(11.12.2021 18:12)
- Не стоит на возможности ЦАП ориентироваться, отсчеты DDS можно ШИМом наружу вывести и отфильтровать. Или частоту в широких пределах менять надо? - Visitor(11.12.2021 17:12)
- Пробовали вывести из ЦАПа, на 300кГц частоте дискретизации, прямым
синтезом свои модулированные 150кГц? Можно даже на оба ЦАПа сразу,
дифференциально. И отфильтровать аналогово. Nikolay_Po(299 знак., 11.12.2021 17:22)
- У DDS частота дискретизации более чем на прядок выше предельной
частоты работы ЦАПа. Скажем, у известной мне AD9834 на плате модуля
(см. ссылку) стоит кварцевый генератор на 75 МГц, тогда как у моего
STM32H743 ЦАП выше 1 МГц не тянет (это по даташиту, но реально
может и чуть выше). Ясно, что тактовой частотой DDS 75 МГц сделать
синус на 150 КГц можно запросто, тогда как с тактовой 1 МГц это
будет 6.5 точек на период, чего явно недостаточно. Kceния(1 знак., 11.12.2021 17:02, ссылка)
- Шутите так:-) Генерим таблицу отсчетов косинуса в маткаде, для
прошивки проца, сам проц в прерываниях делает переполняющийся
сумматор с кодом частоты. Даже при 8 бит разрядности, гармоник
будет 2^-8. DDS называется, здесь в разделе "наше все" статья про
это есть. - Visitor(11.12.2021 16:08)