iiv 0 Posted June 4, 2019 · Report post Добрый день, всем известна функция вычисления комплексного аргумента, если x+iy - это наше комплексное число, то arg(x,y) = atan2(y,x). Пусть у меня имеются аналоговые сигналы x,y а я хочу получить этот аргумент (то есть угол) тоже в аналоге, например, -Пи - это 0, а +Пи - это VCC. Скажите, пожалуйста, как такая микросхема называется, ведь должна же она быть где-то востребована, не так ли? PS: как сделать через два ADC и один DAC ноги контроллера - я знаю, но не хотел бы, хочу в аналоге. Спасибо! ИИВ Quote Ответить с цитированием Share this post Link to post Share on other sites
_pv 0 Posted June 4, 2019 · Report post с какой точностью и насколько быстро? и вот этот вот переход через У=0 при отрицательных Х как "в аналоге" выглядеть будет? Quote Ответить с цитированием Share this post Link to post Share on other sites
iiv 0 Posted June 4, 2019 · Report post Спасибо! Переход - да, именно так, как есть, скачком - переходом из -Пи в +Пи, хотя сами входные значения будут изменяться без скачка. На сколько быстро - где-то 50КГц плюс-минус лапоть, то есть может и 10КГц хватит, а может и 200КГц надо. С точностью - тоже нет четкого понимания, 1% по углу в большинстве случаев - за глаза, но аппетит может прийти во время еды и захочется чуток побольше точности. То есть задавая вопрос я знаю решение через цифру, и, если не найду аналоговое решение, сделаю именно через цифру, но если есть понимание как такое называется, и оно более-менее доступно в мойзерах и фарнеллах, и легко разводится, но с радостью бы попользовал, чтоб МК не ставить. Quote Ответить с цитированием Share this post Link to post Share on other sites
_pv 0 Posted June 4, 2019 · Report post если 200кГц и 1% нужен в области где нет разрыва, это означает что около скачка полоса для того же 1% нужна будет в 100 раз больше. https://www.analog.com/en/parametricsearch/11106 для 1% должно хватить двух умножителей atan = x * (a + b*x*x), или даже умножителя и выпрямителя, если сделать atan = x*(a+b*|x|) ну или ad538, только он NRND да и стоит негуманно. Quote Ответить с цитированием Share this post Link to post Share on other sites
iiv 0 Posted June 5, 2019 · Report post Спасибо большое, _pv! Я-то думал, что есть что-то проще и не дорого, но похоже, что кроме как какого-то простого кортекса с DACом никакой более альтернативы, к сожалению, нет. Quote Ответить с цитированием Share this post Link to post Share on other sites
_pv 0 Posted June 5, 2019 · Report post Цапы встроенные не особо быстрые как правило, но для десятков кГц может и хватит, а вот на ad734, 10МГц и 0.1% получить можно пожалуй, но недешево, это да. Quote Ответить с цитированием Share this post Link to post Share on other sites
FatRobot 0 Posted June 5, 2019 · Report post Генератор -> Квадратурный модулятор (смеситель) -> ограничитель -> фазовый детектор Quote Ответить с цитированием Share this post Link to post Share on other sites
iiv 0 Posted June 6, 2019 · Report post 10 hours ago, FatRobot said: Генератор -> Квадратурный модулятор (смеситель) -> ограничитель -> фазовый детектор Простите, пожалуйста, но я не смог понять... У меня-то частоты может и не быть, просто попало на синус значение 10, а на косинус 20, что это - около 26 градусов, atan2(10,20). Если бы несущая частота была бы, то да, сделал бы именно так, как Вы сказали! Quote Ответить с цитированием Share this post Link to post Share on other sites
FatRobot 0 Posted June 6, 2019 · Report post какой этап обработки вы не смогли понять? генератор? возьмите любой, который есть в системе. он же будет опорным для фазового детектора по сути вам нужно превратить аргумент во что-то, что легко измеряется. в данном случае это будет временной интервал или скважность Quote Ответить с цитированием Share this post Link to post Share on other sites
_pv 0 Posted June 6, 2019 · Report post 16 hours ago, FatRobot said: Генератор -> Квадратурный модулятор (смеситель) -> ограничитель -> фазовый детектор несущую частоту, наверное, для 200кГц и 1% придётся в большие мегагерцы задрать, да и готовых модуляторов/детекторов для не сильно большой частоты наверное сложнее найти чем для совсем RF. а например max1472(генератор) + BGX7101/LTC5599(модулятор) и какой-нибудь готовый детектор вроде MCK12140 в результате не особо-то и проще/дешевле аналоговой арифметики получится. Quote Ответить с цитированием Share this post Link to post Share on other sites
iiv 0 Posted June 6, 2019 · Report post 4 hours ago, FatRobot said: какой этап обработки вы не смогли понять? генератор? возьмите любой, который есть в системе. он же будет опорным для фазового детектора по сути вам нужно превратить аргумент во что-то, что легко измеряется. в данном случае это будет временной интервал или скважность так нету генератора-то, тю-тю! Просто два сигнала, которые могут, например, соответствовать одному и тому же углу целую минуту, но по амплитуде их может очень зверски колбасить, возможно даже 200КГц и выше. Но угол сам тоже может меняться, примерно до 200КГц, то есть изменение угла может быть от 0 градусов в минуту, до 40 градусов в микросекунду. И как тут через фазовый детектор задачу решать? Я может конечно не понимаю что-то, но вроде для такой задачи - Ваш вариант не пойдет, нет? Quote Ответить с цитированием Share this post Link to post Share on other sites
FatRobot 0 Posted June 6, 2019 · Report post так поставьте генератор, если изначально его 'нету'. насчет больших мегагерцев я тоже не вполне понимаю. несущая 200 кгц плюс 200 кгц х 100 для счета Quote Ответить с цитированием Share this post Link to post Share on other sites
_pv 0 Posted June 6, 2019 · Report post если на квадратурный модулятор подать постоянные сигналы, они просто сдвинут фазу несущей как раз на тот угол, который Вы через арктангенс и хотите получить. ну а фазовый детектор опёртый на исходную несущую этот угол и покажет Quote Ответить с цитированием Share this post Link to post Share on other sites
µ₀N² 0 Posted June 7, 2019 (edited) · Report post 18 часов назад, iiv сказал: И как тут через фазовый детектор задачу решать? Вы бы написали в ТТ какие квадранты нужны вообще, в аналоге то. Емнип можно получить или только 2 (4-й и 1-й) на простом смесителе (исключающем ИЛИ, перемножителе) или сразу 8 с неопределенностью по виткам фазы, как фишка ляжет. также важен динамический диапазон сигналов X Y, если широкий (более 20дБ) - то с аналогом будут проблемы в точности результата из-за усилителя ограничителя. Edited June 7, 2019 by µ₀N² Quote Ответить с цитированием Share this post Link to post Share on other sites
iiv 0 Posted June 7, 2019 · Report post Про фазовый детектор - понял, спасибо!!! Да, действительно, если еще генератор добавить и квадратурным модулятором смешивать, то будет фаза. Тогда, похоже на компонентах будет конский ценник, так как если мне надо 200КГц и 1градус точности, то это около 40МГц у генератора и работа на этой частоте. Похоже, что на МК сделать эту задачу будет и проще, и дешевле. 1 hour ago, µ₀N² said: Вы бы написали в ТТ какие квадранты нужны вообще Спасибо! Если я правильно понял вопрос, Вы имели ввиду именно о диапазонах получаемого угла. Нужен именно полный диапазон, от -180 до +180 градусов. Причем, при cos(x)=-1, sin(x)=0 меня устроит неопределенность, то есть или +VCC или GND. По задаче у меня эта пара формируется в одной части устройства, а потом длиннючим проводом на несколько метров мне надо передать угол на другую плату, и принять микроконтроллером. Туда приходит с десяток таких углов, и в среднем скорость изменения угла обычно не супер большая, так, что я ожидал, что эту-то величину можно протащить аналогом и на приемнике оцифровать каким-то быстрым встроенным в кортекс оцифровщиком. Так как конструкционно у меня на соединение имеется только один провод, то протаскивать этот угол в цифре было как-то сложновато, поэтому-то я и хотел аналоговый сигнал. Quote Ответить с цитированием Share this post Link to post Share on other sites