ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
1068948 Топик полностью
fk0, легенда (13.01.2021 22:21, просмотров: 356) ответил Kpoк на Сахару надо копать. Раз в год здесь обязательно обсуждается эта смачная тема. Хоть монографию пиши. Я бы сделал на сдвиговом регистре (применительно к данной задаче).
Фактически это самодельный ЦАП. Может проще готовый взять... 1..50кГц -- это, в принципе же, аудиочастоты. Следовательно и стоит смотреть в строну аудио ЦАПов, как оптимального решения по доступности, цене и тех. характеристикам. Тем более раз DC не требуется. А собственно сам синус (мгновенные значения) генерировать программно, методом DDS (Direct Digital Synthesis). 

О методе DDS:

https://www.ieee.li/pdf/essay/dds.pdf


Суть метода DDS, если вкратце, что контроллер с фиксированным, не зависящем от генерируемой частоты, периодом (порядка 48/96/192кГц для типового аудио-ЦАПа) вычисляет мгновенные значения амплитуды, соответствующие текущей расчётной фазе, и передаёт на ЦАП... Практически, с точки зрения контроллера, это значит что он с определённым шагом бегает по табличке синусов (зацикленно, с заворотом) и выдаёт значения. Шаг, понятное дело, может выражаться не совсем целым числом, а дробью вида N/65536 (fixed point, где 16 младших бит служат для повышения точности, а M старших -- индекс в табличке). Ради экономии памяти нужно хранить не таблицу синусов, а первую четверть от таблицы косинусов (остальные 3/4 получаются отзеркаливанием/инверсией индекса или значения). В общем мелкий пик даже справится.



Пояснение принципа работы генератора синуса на сдвиговом регистре:


Ссылка:

http://zpostbox.ru/sine_wave_signal_generator.html

[ZX]