Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Компактный генератор синуса и косинуса
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Вопросы аналоговой техники
Страницы: 1, 2
нищеброд
Цитата(ViKo @ Jan 24 2013, 09:48) *
Показываю спектр на прямом выходе исключающего ИЛИ в той схеме, что уже демонстрировал.
Видите синус? Я - нет. Вижу 40 Hz, 120 Hz, 200 Hz... (upd. ошибся с цифрами, исправил)

А я в Вашем спектре вижу именно синус.(правда масштабы линейные)Нажмите для просмотра прикрепленного файла
тау
Цитата(нищеброд @ Jan 27 2013, 21:39) *
А я в Вашем спектре вижу именно синус.

Да откель там синусу взяться ?
Вот представьте два меандра примерно равной частоты. С течением времени их перекрытие линейно нарастает половину периода а затем линейно убывает другую половину периода.Таким образом, среднее значение "перекрытия" , фиксируемого схемой XOR за период любого генератора линейно меняется . А это не синус а треугольник.
Шим-синус получают на компараторе из пилы и синуса, но никак не из двух меандров.
В конце концов сделайте спектр на 10 периодах разностной частоты и посмотрите как падает амплитуда 3-й и 5-й гармоники. Для треугольника гармоники падают в квадрате от номера этой гармоники. На линейном графике это плохо видно. возмите логарифмическую шкалу - там ясно.

нищеброд
Цитата(тау @ Jan 27 2013, 21:11) *
Кстати это есть ограничение предлагаемой схемы для получения синуса на 125 кГц : несущие придется выбирать очень высоко.

Думаю современная логика вполне потянет десятки МГц. А фильтрацию нужно делать до усилителя.Нажмите для просмотра прикрепленного файла

Цитата(тау @ Jan 27 2013, 23:01) *
Да откель там синусу взяться ?
Шим-синус получают на компараторе из пилы и синуса, но никак не из двух меандров.
В конце концов сделайте спектр на 10 периодах разностной частоты и посмотрите как падает амплитуда 3-й и 5-й гармоники. Для треугольника гармоники падают в квадрате от номера этой гармоники. На линейном графике это плохо видно. возмите логарифмическую шкалу - там ясно.

Делать синус из синуса задача очень серьёзная.
Разумеется, в спектре присутствуют нечётные гармоники, но фильтрануть их не является проблемой.
ViKo
Цитата(нищеброд @ Jan 27 2013, 21:39) *
А я в Вашем спектре вижу именно синус.(правда масштабы линейные)

А вот поделим амплитуду первой гармоники на амплитуду третьей, глядя на ваш график: 280 mV / 30 mV = 9.333. Полное соответствие теории, с учетом погрешности измерения на глаз.
Разложение в ряд Фурье треугольника (с нулевой постоянной составляющей):

y = 4/Pi * (sin(x) - sin(3x)/3^2 + sin(5x)/5^2 - ...)

Разложение кусков параболы y = x(Pi - x) при 0<=x<=Pi и нечетно продолжена на (-Pi, 0):

y = 8/Pi * (sin(x) + sin(3x)/3^3 + sin(5x)/5^3 + ...)

Как видно, переход от треугольника к параболам дает улучшение чистоты "синуса", но не абсолютный синус.
VCO
Цитата(ViKo @ Jan 28 2013, 08:06) *
Как видно, переход от треугольника к параболам дает улучшение чистоты "синуса", но не абсолютный синус.

Ну и к чему пришли в итоге? Из чего проще сделать синус: из меандра или из треугольника??? wink.gif
И ещё учтите, что это всего лишь 1 МГц, а ШИМ уже не катит. Ну а если нужно 10 МГц или 100 МГц?
тау
Цитата(VCO @ Jan 28 2013, 11:21) *
Ну и к чему пришли в итоге? Из чего проще сделать синус: из меандра или из треугольника??? wink.gif

по большому счету разницы нет , т.е. она не сильно велика.
Треугольник - это интегрированный меандр
параболоидный якобы синус - интегрированный треугольник.

в меандре третья гармоника = 1/3 от первой, каждое интегрирование увеличивает показатель степени в знаменателе на номере гармоники.

топикстартеру нуно :
Цитата
с минимальным уходом напряжения во времени ( не хуже 0,1 % за сутки). Частота 125 кГц со стабильностью примерно порядка 100 ppm . Нестабильность сдвига фазы — доли градуса. Рабочая температура от 10 до 50 градусов.

он что-то прецизионное делает, не пойму что , но неважно.
С такими требованиями подавить 3-ю гармонику до уровня к примеру 0,1 % простым фильтрованием (как намекнул Нищеброд "фильтрануть их не является проблемой") очень непросто , имхо невозможно аналоговыми способами. Цифровые вперемешку с аналоговыми тоже не все покатят, даже с применением DDS. Нужен ЦАП (точнее 2) со схемой а-ля примитивный DDS, с минимальным уходом амплитуды от опорного и весьма стабильного напряжения. Третью и возможно пятую гармошку нуно фильтровать в цифре (точнее не дать ей родиться), а вот все остальные можно и аналоговым фильтром. Нестабильность сдвига фазы между синусом и косинусом слишком высока по исходным данным (может завышена? ). Поэтому любые фильтры , зависящие от параметров реактивных элементов , будут оказывать слишком серьезное влияние как на амплитуду первой гармоники , так и на указанный сдвиг фаз двух сигналов. ТС с этим столкнулся фильтруя меандр. Полезное в предложении PROBa- в том что он показал способ получения 2х фазодвинутых пил без интегрирования, можно сказать чисто цифровым методом. Это уже лучше фильтрации меандров.
ViKo
Цитата(VCO @ Jan 28 2013, 10:21) *
Ну и к чему пришли в итоге? Из чего проще сделать синус: из меандра или из треугольника??? wink.gif
И ещё учтите, что это всего лишь 1 МГц, а ШИМ уже не катит. Ну а если нужно 10 МГц или 100 МГц?

Я в стартовый вопрос не сильно вникал. Если бы хватало стабильности, делал бы как-то так: http://electronix.ru/forum/index.php?showt...t&p=1130325
Если нет, то DDS.
VCO
Цитата(тау @ Jan 28 2013, 11:03) *
С такими требованиями подавить 3-ю гармонику до уровня к примеру 0,1 % простым фильтрованием (как намекнул Нищеброд "фильтрануть их не является проблемой") очень непросто , имхо невозможно аналоговыми способами.

А почему Вы пересчитали нестабильность амплитуды в коэффициент нелинейных искажений? И почему несколько звеньев LC-фильтров или полосовой фильтр не смогут отфильтровать 3-ю гармонику? У нас же не широкий спектр, а просто меандр.
ЗЫ: Пардон, понедельник, туплю. Фазы синуса и косинуса разъедутся после фильтрации... Всё пришло к крошечным DDS!
тау
Цитата(VCO @ Jan 28 2013, 12:58) *
А почему Вы пересчитали нестабильность амплитуды в коэффициент нелинейных искажений? И почему несколько звеньев LC-фильтров или полосовой фильтр не смогут отфильтровать 3-ю гармонику? У нас же не широкий спектр, а просто меандр.
ЗЫ: Пардон, понедельник, туплю. Фазы синуса и косинуса разъедутся после фильтрации...

правильно - разъедутся, нестабильность ГВЗ при малейшем изменении номинала. А профильтровать тупо 1 сигнал не шибко и трудно.
Тс делает вращающийся вектор какого-то поля , ему наверняка нужна стабильность положения на окружности конца вектора. гармоники также влияют на кривость как и требуемая стабильность амплитуды и фазы.
Iptash
Если нужен очень стабильный сдвиг фазы в 90гр., то можно поставить в обратную связь R2 (схему я приводил в посте №34) схему автоматической подстройки фазы. Схема очень простая,
я ее где то в документации видел.
shkal
Цитата(Iptash @ Jan 28 2013, 17:31) *
Tо можно поставить в обратную связь R2 (схему я приводил в посте №34) схему автоматической подстройки фазы. Схема очень простая,
я ее где то в документации видел.


Можно ли этот момент подробнее осветить?
Iptash
Цитата(shkal @ Jan 28 2013, 21:03) *
Можно ли этот момент подробнее осветить?

Если не изменяет память, такая схема есть в приводе Размер 2М-21 в схеме запитки фазовращателя, в описании подробно описано это дело, если найду скину.
_gari
Берем один аналоговый генератор синуса с хорошими параметрами,
берем второй с возможностью регулировки частоты от напряжения,
разгоняем полученные синусы 1 и 2 и ограничиваем, т.е. получаем прямоугольники.
Подаем прямоугольники на "исключающее или", а выходной сигнал интегрируем, получаем сигнал ОС.
т.е. банальная фапч, но со сдвигом фазы на 90гр.

на картинке
один стабильный генератор 100кГц, второй 100кГц ФМ, промодулирован 10кГц для наглядности, синий -сигнал ОС



картинка сигналов при удержании петлей фапч
красный- выход "исключающего или", серый -сигнал ОС



VCO
Цитата(_gari @ Jan 30 2013, 01:55) *
Берем один аналоговый генератор синуса с хорошими параметрами,
берем второй с возможностью регулировки частоты от напряжения,
разгоняем полученные синусы 1 и 2 и ограничиваем, т.е. получаем прямоугольники.
Подаем прямоугольники на "исключающее или", а выходной сигнал интегрируем, получаем сигнал ОС.

Идея очень интересная, но я не понял, как получить абсолютно равные амплитуды с точностью не хуже 0,1 % в первом и втором аналоговых генераторах? Как это сделать с помощью DDS или ЦАП - мне понятно, а вот с аналоговыми схемами у меня не всегда всё гладко в понимании. Может растолкуете...
Iptash
Цитата(shkal @ Jan 28 2013, 21:03) *
Можно ли этот момент подробнее осветить?

Вот схема и описание.
shkal
Спасибо, понятно.
_gari
Цитата(VCO @ Jan 30 2013, 10:40) *
Идея очень интересная, но я не понял, как получить абсолютно равные амплитуды с точностью не хуже 0,1 % в первом и втором аналоговых генераторах? Как это сделать с помощью DDS или ЦАП - мне понятно, а вот с аналоговыми схемами у меня не всегда всё гладко в понимании. Может растолкуете...

можно получить отдельной петлей АРУ, петли фапч и ару при этом будут взаимно независимые, точнее, их можно сделать такими.
shkal
для этого нужен детектор с точностью лучше, чем 0.1% на 125 КГц, что само по себе нетривиальная задача.
_gari
сложить на интеграторе прямой син1 и инверсный син2, при равенстве их амплитуд и частоты, сумма =0 .... не вижу принципиально ничего невозможного в точности 0,1% для современных ОУ.

зы. возможно это и неправильно, надо проверить
shkal
Как это, у нас же сдвиг между син1 и син2 должен быть 90
_gari
похоже, что проще всего просто сложить син1 и син2, решается чисто тригонометрически, продетектировать и получить сигнал ОС АРУ
shkal
Ну дык и я о том: чтобы продетектировать, нужен детектор wink.gif
_gari
как бы технических проблем для реализации явно не вижу, вопрос скорее в габаритах, но прецизионка тоже ведь чего-то да стоит.
ViKo
Цитата(_gari @ Jan 30 2013, 20:42) *
как бы технических проблем для реализации явно не вижу, вопрос скорее в габаритах, но прецизионка тоже ведь чего-то да стоит.

DDS!
Iptash
Я еще делал(но не доделал) так. С вых. CPLD два меандра сдвинутые в начальном значении на 90гр. поступают на фильтр где преобразуются в SIN и COS соответственно. С этих выходов поступают на аналоговые компараторы с вых. которых уже реальное значение сдвига опять заводятся на CPLD где сравнивается
с некой константой и соответсвенно угол увеличевают или уменьшают. Этим автоматически достигается любой нужный угол.
shkal
Цитата(_gari @ Jan 30 2013, 21:42) *
как бы технических проблем для реализации явно не вижу, вопрос скорее в габаритах, но прецизионка тоже ведь чего-то да стоит.

А вы попытайтесь для начала найти прибор, которым можно измерить напряжение на 100КГц с точностью 0.1%
_gari
Цитата(shkal @ Jan 31 2013, 00:45) *
А вы попытайтесь для начала найти прибор, которым можно измерить напряжение на 100КГц с точностью 0.1%

biggrin.gif
подобные случаи иногда встречаются в жизни и преодолевать их надо сообразно обстоятельствам

как-то, в ЛОМО принимали нашу разработку и по результатм тестов сказали,
- Ребята, давайте мы запишем, что у вашего прибора шумы ххмкВ, ну не можем же мы написать в акте, что шумов у него нет совсем. blink.gif
поскольку нас по ТЗ это вполне устраивало, так и записали, 2 или 3 ед. их измерителя. Собственно проверить шумы там было действительно довольно проблемно, т.к. прибор охлаждался жидким азотом, а микросхемы для тракта усиления специально собирались по всей конторе и тестировались на шумы, отбирая лучшие из нескольких сотен.

как-то, для одной автоматизированной системы выходного контроля, где было 50 однотипных тестеров собранных в сеть управления и сбора данных, пришлось специально разработать и автоматизированный калибратор, который в них вставлялся, управлялся по той же сети и автоматом проводил поверку тестеров. А на сам калибратор существовала своя, отдельная программа и методика для тестирования его параметров уже ручками и с применением поверенных приборов.

т.е. все это к тому, что если задача поверки на вас не лежит, то задача разработчика - правильно спроектировать, а если лежит - значит делаем сами, что требуется..
измерить напряжение на 100КГц с точностью 0.1% совсем не сложно, паче там синус, в некоторых приборах на таких частотах счет идет на отдельные шумовые электроны, пусть не единицы, а сотни и тысячи, в зависимости от условий охлаждения, но, тем не менее, в расчетах они фигурируют уже в штуках.

VCO
Цитата(ViKo @ Jan 30 2013, 20:52) *
DDS!

Ну а если абстрагировать задачу по другому пути цифроаналогового преобразования:
1. Получаем чистенький калиброванный синус 125кГц (пока неважно как!).
2. Сдвигаем его ровно на 90о или задерживаем ровно на 2 мкс неискажая.
3. Усиливаем синус и косинус прецизионными усилителями до 40 В.
Это решение может быть достаточно прецизионным и компактным? А то я в аналоге не силён...
_gari
структурно выгдит проще, но паразитных параметров надо учитывать куда больше
например, у синуса скорость нарастания в районе нуля одна, а на макушке совсем другая, т.е. и лианеризация цапом соответственно тоже будет различаться.
+ требования к элементной базе растут весьма сильно, видимо на 1-2 порядка по частоте минимум.

т.е. бесплатный сыр бывает тока в мышеловках biggrin.gif
stells
Цитата(whazza @ Jan 5 2013, 11:36) *
Сейчас реализовал это на микроконтроллере, запитанном от ИОН. Он генерирует сдвинутые по фазе меандры, из которых далее выфильтровывается синус. Однако это налагает страшные требования на ОУ, чтобы качественно подавить высшие гармоники, к тому же, синус желателен чище, чем получен в настоящее время.
Какие посоветуете идеи? Заранее спасибо.

почему страшные требования? хороший синус получается, делал аналогично: ИОН, контроллер, ФНЧ 1-го порядка (пила), ФНЧ 2-го порядка (Саллена-Кея) на мощном и высоковольтном ОУ (OPA552, so-8)
Нажмите для просмотра прикрепленного файла
кстати, частота именно Ваша, 125кГц
Herz
Цитата(stells @ Jan 31 2013, 08:25) *
почему страшные требования? хороший синус получается, делал аналогично: ИОН, контроллер, ФНЧ 1-го порядка (пила), ФНЧ 2-го порядка (Саллена-Кея) на мощном и высоковольтном ОУ (OPA552, so-8)
кстати, частота именно Ваша, 125кГц

А чего ж ему плохим получиться? Однако, если нужны:
а) высокая стабильность амплитуды и
б) высокая стабильность фазовой задержки, то
требования к фильтрам предъявляются действительно серьёзные. У Вас на схеме их целых два и, соответственно, 6 частотозадающих элементов, которые должны быть очень хорошими. Всё равно сложно это всё застабилизировать, даже если второй фильтр - Бесселя.
Я поступал несколько иначе: записывал табличный синус в ПЗУ (точнее, два), генератор вычитывал его содержимое и подавал параллельный код на хорошие ЦАПы, точек было 256 или 512 на период (уже не помню). Фазовый сдвиг получался фиксированным (определялся чтением таблицы и мог меняться дискретно) и требования к выходному фильтру существенно снижались. Для такой частоты вполне надёжное решение, ИМХО.
stells
Цитата(Herz @ Jan 31 2013, 12:34) *
... точек было 256 или 512 на период...

8мкс/256... прочитать ПЗУ, инкрементировать адрес, отправить значение в ЦАП, цикл... тактов 10-15 получится, это минимум мегагерц на 300 должен быть контроллер... но я не спорю, тоже вариант
Herz
Цитата(stells @ Jan 31 2013, 12:19) *
8мкс/256... прочитать ПЗУ, инкрементировать адрес, отправить значение в ЦАП, цикл... тактов 10-15 получится, это минимум мегагерц на 300 должен быть контроллер... но я не спорю, тоже вариант

А контроллер тут не нужен. Точнее, нужен только для управления. Генератор, счётчики, ПЗУ - всё внешнее. И довольно дешёвое.
stells
Цитата(Herz @ Jan 31 2013, 15:38) *
Генератор, счётчики, ПЗУ - всё внешнее.

так автор хотел на 3-х корпусах соик сделать... хотя похоже он уже ничего не хочет и в обсуждении не участвует
VCO
Цитата(stells @ Jan 31 2013, 14:41) *
так автор хотел на 3-х корпусах соик сделать... хотя похоже он уже ничего не хочет и в обсуждении не участвует

Да неважно, я ему вариант в трёх Q(D)FNах уже в первом посте накидал, пусть анализирует. Такие задачи постоянно в аналоговой или радиоветке всплывают, даже как-то интересно стало после новогодней паузы. Уже столько вариантов набросали, даже и не думал, что до такого дойдёт...
Plain
Если вариант фильтрации опорных прямоугольных почти устраивает, то ей можно немного помочь, создав синус и косинус в виде сигналов ШИМ.

Например, выгонять из МК типа PIC12F1840 последовательным интерфейсом чередующиеся биты и разделять их триггерами, получатся потоки 4 Мбит, либо выгонять один сигнал, а второй получать его задержкой парой сдвиговых регистров, получатся потоки 8 Мбит.
Iptash
Цитата(Plain @ Jan 31 2013, 18:29) *
Если вариант фильтрации опорных прямоугольных почти устраивает, то ей можно немного помочь, создав синус и косинус в виде сигналов ШИМ.

ШИМом результирующий сигнал плохой получается.
тау
в копилку предложений:
старенькая AD639 когда-то создавалась под подобные задачи, но и она не выполнит требований ТС, имхо.
shkal
Чисто аналоговое решение: генератор с колебательным звеном на основе фильтра переменных состояния - 3 сдвоенных ОУ (3-сам ген. 2-детектор 1-интегратор) и немного дискрета. Конденсаторы ,задающие частоту - NP0.
Сдвинутые на 90 сигналы есть изначально на выходах генератора. ОУ типа AD8066 в MSOPe
Iptash
Если автору не смущают цены, то самое лучшее это на ЦАПе, как советовали. Это и стабильность и точность и простота и повторяемость и ...
Plain
Цитата(Iptash @ Jan 31 2013, 17:51) *
ШИМом результирующий сигнал плохой получается.

Автор темы был вполне доволен одним битом, а здесь 5, и с учётом того, что свой МК он не считал, результат получен тремя триггерами, т.е. менее половины площади SOIC8.
_Pasha
stm32 в LQFP48, но смонтированный на вертикально стоящей платке - и весь генератор. Буфер, правда, нужен...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.