Jump to content

    
Sign in to follow this  
sera_os

Измерение фазового сдвига Sin

Recommended Posts

Помню что этому меня учили еще в школьные годы.

 

Джиттер - это не единственный источник ошибок в измерительной системе. Я имею в виду прежде всего задержки сигнала в аналоговых фильтрах, без которых, очевидно, система не реализуема. Их, безусловно, можно в процессе измерения сигнала пытаться в свою очередь измерить и скомпенсировать. До какого-то предела. Усложнением конструкции прибора можно этот предел отодвигать. Опять же в каких-то пределах. По поводу матожидания этих ошибок ничего сказать нельзя, поэтому осреднение в этом случае не поможет.

Share this post


Link to post
Share on other sites
2 Stanislav а что вы там говорили о цифровых фазоврателях? Смотрел у аналога, не нашол, мож не там смотрел...
Например, любой цифровой КИХ-фильтр с антисимметричными к-тами даёт поворот фазы всех спектральных компонент входного сигнала на 90 град (с учётом задержки, ессно. :) Если АЧХ его плоская, для получения произвольного фазового сдвига нужно просто сложить с каким-либо к-том входной сигнал, задержанный на соотв. количество отсчётов, с выходом такого фильтра. Если АЧХ не совсем плоская, нужно её учитывать при сложении. Если интересно, могу рассказать подробнее, или почитайте о "фильтре Гильберта" где-нить.

Если частота измерения фиксирована, достаточно имет гораздо более простой (короткий) фильтр, поворачивающий сигнал на 90 гр. и имеющий на заданной частоте известный к-т передачи (напр., 1).

Вот структурная схемма предложенного фазовращателя (конечно, могут быть и другие реализации):

post-4987-1166464634.gif

Здесь ГФ - гильбертов (или узкополосный) фильтр, поворачивающий фазу на 90 гр., Nз - задержка такого фильтра в отсчётах.

Такая штука будет сдвигать сигнал на 45 гр. Варьируя к-ты сложения (не нарисованы), и, при необходимости инвертируя знаки, можно получить произвольный фазовый сдвиг сигнала.

Share this post


Link to post
Share on other sites

Мужики я столько умных слов не знаю :) . Простиче но я нехочу задавать глупые вопросы, но на вашем "языке" общение поддерживать трудно.

Думаю на даный момент подберу DSP и ADC согласно вашим рекомендациям, походу буду разбиратся с методами и когда вознут обоснованые вопросы, куда я от вас денусь, буду спрашивать.

Всем ОгОмное СПАСИБО! особенно Stanislav-у :a14: .

Share this post


Link to post
Share on other sites
Мужики я столько умных слов не знаю :) . Простиче но я нехочу задавать глупые вопросы, но на вашем "языке" общение поддерживать трудно.

Думаю на даный момент подберу DSP и ADC согласно вашим рекомендациям, походу буду разбиратся с методами и когда вознут обоснованые вопросы, куда я от вас денусь, буду спрашивать.

Спрашивайте, на то он и форум.

"Умные слова" выучить придётся: без этого нормального технического общения, как видите, не получается.

Речь же шла о довольно простых вещах, думаю, поковырявшись с Матлабом, можно освоить методику довольно быстро.

Ну, и литература по ЦОС, конечно. В родных закромах её довольно много, есть и на русском.

Share this post


Link to post
Share on other sites
Что-то Вы путаете

http://www.priborelektro.ru/price/F2-16.ph...686&print=1

 

У рекомендованной замены http://www.priborelektro.ru/price/F2-34.php4?deviceid=689 точность не намного выше. Т. е. человек все-таки хочет получить более чем на порядок более высокую точность, чем была у серийной советской техники.

 

Напутал, бесспорно. Повспоминал и всплыло в памяти, что все-таки было гетеродинирование.

 

В качестве компенсации морального вреда.

В разработках измерять такую разность фаз не приходилось, но компенсировать как-то понадобилось.

Разность фаз приводилась к определенной величине при помощи обратной связи.

Детектор - очень хороший балансный смеситель + УПТ. Регулировалась емкость слабо связанного варикапа . Достигнуто разрешение не хуже требующегося, относительно простыми средствами.

Однако, вне петли обратной связи будут проблемы со стабильностью.

 

И еще. Посоветую книгу для общего развития: Кузнецов В.А. Измерения в электронике: справочник 1987

Там перечислены популярные методы измерения (на тот момент).

Есть в "колхозе" (lib.homelinux.org)

Share this post


Link to post
Share on other sites
Для измерения сдвига фазы можно использовать 2 метода: аналоговый и цифровой (или их комбинацию). Первый состоит в измерении среднего значения произведения двух синусоид с последующей нормировкой этого значения по их амплитудам и вычислении арккосинуса от этой величины, с использованием аналоговых умножителей, фильтров и функциональных преобразователей. По нынешним временам, довольно сложен и неудобен.

 

Может у кого-то есть пинцыпиальная схема за этим алгоритмом? Что б лутше понять как оно работает... Или может кто подскажет где можно ее найти?

Share this post


Link to post
Share on other sites
Может у кого-то есть пинцыпиальная схема за этим алгоритмом? Что б лутше понять как оно работает... Или может кто подскажет где можно ее найти?

В аналоговой формре я бы не взялся такое делать. А вот в цифровом доводилось. Формируются три суммы ("интегралы") - из квадратов синусоид и из их произведения (на самом деле формировалось пять сумм - ещё суммировались сами синусоиды, после чего эти данные использовались для исключения постоянной составляющей). В результате получаются два квадрата амплитуд и их произведение кмнлженное ещё и на косинус_фи. Теперь найти этот самый фи - раз плюнуть, так?

Но есть и серьёзные проблемы. Главная - суммы должны браться за целое число периодов или накапливаться очень-очень долго. В цифровой форме невязка будет всегда, она обусловлена некратностью и несинхронностью частоты оцифровки и входного сигнала. Цифровой фильтр, обеспечивающий нужную степень подавления переменной составлящей на выходе сумматоров мне создать не удалось, а то что получалось по формулам из умных книжек выходило за рамки вычислительных возможностей i196. Вот и приходилось ловить переходы через ноль и балансировать между пляской младших цифр и скоростью обновления табло.

 

Боюсь, что с заявленной Вами точностью этот метод не справится. Впрочем, это относится и к любому другому методу - малейшее нелинейное искажение в тракте или гармоники в самих сигналах - и всё. Перегнать входные сигналы в дискретные уровни и непосредственно замерить задержку? В момент преобразования возникнут те же проблемы. Но, тем не менее, именно этот путь мне представляется самым надёжным.

Share this post


Link to post
Share on other sites
Для измерения сдвига фазы можно использовать 2 метода: аналоговый и цифровой (или их комбинацию). Первый состоит в измерении среднего значения произведения двух синусоид с последующей нормировкой этого значения по их амплитудам и вычислении арккосинуса от этой величины, с использованием аналоговых умножителей, фильтров и функциональных преобразователей. По нынешним временам, довольно сложен и неудобен.

 

Может у кого-то есть пинцыпиальная схема за этим алгоритмом? Что б лутше понять как оно работает... Или может кто подскажет где можно ее найти?

 

Мне тоже интересно. Я вот набросал, что скажут понимающие?

 

phase.pdf

Share this post


Link to post
Share on other sites
Мне тоже интересно. Я вот набросал, что скажут понимающие?

 

phase.pdf

Отлично, за исключением нескольких моментнов.

1. Попробуй поиграть частотой f в пределах одного герца, чтобы в 1 секунду не укладывалось целое число периодов.

2. Попробуй добавить чуть-чуть гармоник.

3. Добавь конечную разрядность АЦП.

Edited by SasaTheProgrammer

Share this post


Link to post
Share on other sites

Добавил разрядность АЦП, тут MathCad 2001 расчёт и pdf с результатом.

mcd_pdf.zip

 

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

 

Можно пример как добавить гармоник, а самое главное, в каком количестве?

Edited by Sergey Reva

Share this post


Link to post
Share on other sites
Добавил разрядность АЦП, тут MathCad 2001 расчёт и pdf с результатом.

mcd_pdf.zip

 

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

 

Можно пример как добавить гармоник, а самое главное, в каком количестве?

Связь погрешности с частотой выборок довольно простая - время между выборками ограничивает невязку. Точнее, должно ограничивать, суммирование нужно прекращать на границе периодов, а не устанавливать жёстко 4096. Как "обучить" этому MathCad - не знаю.

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

При заданом соотношении добавлять гармоники, собственно, некуда, они "вылетят" за Котельникова-Найквиста (в данном случае - 2048Гц).

Добавить их просто - нужно к функцям входного сигнала прибавить ещё пару-тройку синусоид с частотами 2f, 3f, etc. А вот с какой амплитудой - зависит от реальных условий.

 

Итого: некратность частот и 16-ти битное преобразование уже в семь раз портят точнось (по сравнению с требуемой) :-( .

Share this post


Link to post
Share on other sites
Связь погрешности с частотой выборок довольно простая - время между выборками ограничивает невязку. Точнее, должно ограничивать, суммирование нужно прекращать на границе периодов, а не устанавливать жёстко 4096. Как "обучить" этому MathCad - не знаю.

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

При заданом соотношении добавлять гармоники, собственно, некуда, они "вылетят" за Котельникова-Найквиста (в данном случае - 2048Гц).

Добавить их просто - нужно к функцям входного сигнала прибавить ещё пару-тройку синусоид с частотами 2f, 3f, etc. А вот с какой амплитудой - зависит от реальных условий.

 

Итого: некратность частот и 16-ти битное преобразование уже в семь раз портят точнось (по сравнению с требуемой) :-( .

До кучи.

Добавьте смещения y1 и y2.

Измените частоты y1 и y2 незначительно и в разы (там у автора было требование, кажется).

:biggrin:

Рекомендую, не привязываться к максимумам, т.к. это пологий участок синусоиды (дополнительная погрешность).

Share this post


Link to post
Share on other sites

Интересная тема - такое жаркое обсуждение вышло! Правда, до конца не дочитал.

Прецизионные измерения фазового сдвига я производил неоднократно, пользуясь модулями цифрового приёма на основе 12..16-разрядных АЦП и DDC (Digital Down Conwerter). В случае, если для формирования сигнала используется DDS - вообще лафа - можно сделать систему с общим тактированием, в которой низкочастотные фазовые шумы опоры взаимно компенсируются. Чувствительность 0,01 градуса - вполне нормальное значение. Узкая полоса фильтров DDC и высокая разрядность с их выхода позволяют получать значение фазы (арктангенс отношения I/Q)с очень высокой точностью. Основная проблема - калибровка (для компенсации межканального фазового рассогласования) каналов. Всего требуется 2 измерительных канала с АЦП и DDC. Но оба канала вначале можно откалибровать по входному сигналу от DDS, а затем второй канал переключить на выход. В общем-то, даже не приводя выкладок, скажу - инструментальная точность и дискрет 0,01 градуса вполне реальны. Смотрите изделия insys.ru

Share this post


Link to post
Share on other sites
Прецизионные измерения фазового сдвига я производил неоднократно, пользуясь модулями цифрового приёма на основе 12..16-разрядных АЦП и DDC (Digital Down Conwerter).

Для вычисления фазового сдвига нужно лишь найти два коэффициента в разложении в ряд Фурье:

 

a = (2/M)*Sum[s(t)*cos(2*Pi*F*t)] и

b = (2/M)*Sum[s(t)*sin(2*Pi*F*t)],

 

где M - число отсчетов синуса S(t).

Тогда аппроксимация синуса:

 

S'(t) = a*cos(2*Pi*F*t)+b*sin(2*Pi*F*t).

 

Зная a и b, можно вычислить сдвиг.

 

Для грубой оценки точности вычисления фазы

можно воспользоваться известной формулой для

отношения сигнал/шум на выходе АЦП:

 

SNR = 6.02*N+1.76

 

С учетом усреднения по M точкам, SNR будет:

 

SNR = 6.02*N+1.76+10*lg(M/2)

 

Ошибка при вычислении коэффициентов a и b составит:

 

ERR(a) = 10^(-(6.02*N+1.76+10*lg(M/2))/20) =

= SQRT(2/M)*10^(-(6.02*N+1.76)/20)

 

В разложении арктангенса вблизи нуля в ряд Тейлора

можем оставить один член:

 

Ошибка_Фазы = arctg((a+/-ERR(a))/(b+/-ERR(b ))) =

= (a+/-ERR(a))/(b+/-ERR(b )) = 2*ERR(a) =

= 2*SQRT(2/M)*10^(-(6.02*N+1.76)/20)

 

Для 10-ти разрядного АЦП:

 

M = 256 точек и

N = 10 бит АЦП находим:

 

Ошибка_Фазы = 1.411e-4 [радиан] или

Ошибка_Фазы = 0.0081 [градус].

Edited by blackfin

Share this post


Link to post
Share on other sites

Да, расчёт фазового спектра или, если заранее известна частота, расчёт значения фазы в одной частотной точке решают задачу, безо всякого привлечения лишней аппаратуры в лице DDC. Просто я ляпнул первое пришедшее мне в голову, потому что работаю постоянно с DDC и с помощью него наглядно измеряю фазовые рассогласования.

Расчёт погрешности должен также учитывает реальный шум АЦП и фазовый шум сигнала дискретизации, но всё равно метод, с использованием усреднения результата позволяет измерять с требуемой и даже значительно более высокой точностью, при условии если тактировать источник сигнала - DDS - и АЦП одним и тем же сигналом.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this