реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Измерение фазы.
radioman1
сообщение May 3 2012, 09:29
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 3-05-12
Пользователь №: 71 680



Привет всем!

Есть желание построить прибор для измерения фазы между двумя сигналами. Оба сигнала частотой 1КГц. Реализуемо ли это с Atmega328? Можно ли это сделать только контроллером или нужна доп. периферия? Что то похожее нашел в http://www.isoi.in/Journal/Vol39-1/16th%20article.pdf.
Go to the top of the page
 
+Quote Post
alexvu
сообщение May 3 2012, 10:53
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 172
Регистрация: 14-11-11
Из: Москва
Пользователь №: 68 299



Напряжение, форма, шум, точность, внутр. сопротивление источников?
Go to the top of the page
 
+Quote Post
stells
сообщение May 3 2012, 11:01
Сообщение #3


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(radioman1 @ May 3 2012, 13:29) *
Реализуемо ли это с Atmega328?

а хватит ли ног? biggrin.gif
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 3 2012, 11:47
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(radioman1 @ May 3 2012, 12:29) *
Реализуемо ли это с Atmega328? Можно ли это сделать только контроллером или нужна доп. периферия?

Только определитесь с точностью и темпом измерения. Если входные сигналы типа меандр, то один пример Вами уже приведен. Его можно еще упростить, для AVR с тактом в 20 МГц это не сложно.
Второй пример, уже с периферией: после элемента ИСКЛ.ИЛИ (а он формирует широтно- импульсный сигнал) ставьте аналоговый фильтр НЧ, и потом измеряйте уровень через АЦП, он пропорционален фазе.
Третий пример: Если сигналы синусоидальные (что не было указано), и темп измерений не высокий, то измерение в моменты 0 и 90 (270) градусов и алгоритм CORDIC.
Go to the top of the page
 
+Quote Post
=GM=
сообщение May 3 2012, 14:04
Сообщение #5


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(radioman1 @ May 3 2012, 08:29) *
Есть желание построить прибор для измерения фазы между двумя сигналами. Оба сигнала частотой 1КГц. Реализуемо ли это с Atmega328? Можно ли это сделать только контроллером или нужна доп. периферия?

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


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
radioman1
сообщение May 3 2012, 15:42
Сообщение #6





Группа: Новичок
Сообщений: 5
Регистрация: 3-05-12
Пользователь №: 71 680



Цитата(Serhiy_UA @ May 3 2012, 13:47) *
Только определитесь с точностью и темпом измерения. Если входные сигналы типа меандр, то один пример Вами уже приведен. Его можно еще упростить, для AVR с тактом в 20 МГц это не сложно.
Второй пример, уже с периферией: после элемента ИСКЛ.ИЛИ (а он формирует широтно- импульсный сигнал) ставьте аналоговый фильтр НЧ, и потом измеряйте уровень через АЦП, он пропорционален фазе.
Третий пример: Если сигналы синусоидальные (что не было указано), и темп измерений не высокий, то измерение в моменты 0 и 90 (270) градусов и алгоритм CORDIC.

Желаемая точность 0.1 градуса при 3-4 измерения в секунду. С датчиков будет поступать синусоидальный сигнал из которого несложно сделать меандр. Идея с измерением амплитуды широтно-импульсного сигнала мне понравилась. Можноли с этим методом достич желаемой точности?

Цитата(=GM= @ May 3 2012, 16:04) *
Ещё один вариант - преобразование Фурье обоих сигналов и вычисление фазы между двумя комлексными векторами. Вариант имеет преимущество в том, что не надо выравнивать амплитуды сигналов, ну и не нужна никакая периферия, достаточно голой атмеги.

Не слишком ли сложно это будет. Задача стоит сделать как можно проще.
Go to the top of the page
 
+Quote Post
kovigor
сообщение May 3 2012, 15:58
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(radioman1 @ May 3 2012, 18:42) *
Не слишком ли сложно это будет. Задача стоит сделать как можно проще.


Кстати, сразу же и проверить можно эту идею. Берем компьютер со звуковой картой и установленным MatLab'ом, книжку Сергиенко по ЦОС, оцифровываем оба сигнала и выполняем над ними ДПФ (или БПФ). Сами все и увидите ...
Go to the top of the page
 
+Quote Post
=GM=
сообщение May 3 2012, 17:01
Сообщение #8


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



БПФ лишнее, поскольку надо сделать ПФ в одной точке.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
fox2trot
сообщение May 3 2012, 20:02
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 22-09-07
Из: Орел
Пользователь №: 30 754



Цитата(radioman1 @ May 3 2012, 13:29) *
Привет всем!

А) Есть желание построить прибор для измерения фазы между двумя сигналами. Оба сигнала частотой 1КГц. Реализуемо ли это с Atmega328?
Б) Можно ли это сделать только контроллером или нужна доп. периферия?

А) Легко. Главное не заморачивать голову всякими сложностями типа БПФ, а просто вспомнить что такое разность фаз, о чем некоторые комментаторы тут явно забыли.
Б) Зависит от уровня сигнала, в любом случае, обвязка, если она потребуется, нужна будет только аналоговая.
Гы, в свое время делал подобное для 6 сигналов на чем то малокопытном и операционниках, правда там еще частота плавала т.е надо было сравнить частоту, а только после этого определять сдвиг фазы. В общем, особых трудностей задачка не представляла.
Go to the top of the page
 
+Quote Post
defunct
сообщение May 4 2012, 01:05
Сообщение #10


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ May 3 2012, 16:04) *
Ещё один вариант - преобразование Фурье обоих сигналов и вычисление фазы между двумя комлексными векторами. Вариант имеет преимущество в том, что не надо выравнивать амплитуды сигналов, ну и не нужна никакая периферия, достаточно голой атмеги.

Делал так, точность и помехоустойчивость рулит - т.е. можно работать с очень паршивым сигналом (до 3-6dB SNR), но есть одно но
- мега точно не потянет в real-time 1kHz с точностью 0.1 градус и 3-4 измерений в секунду (не потянет даже раз в секунду).

Если сигнал у автора чистый - я бы обратился к более простым методам - преобразование в меандр обеих сигналов с последующим умножением одного на второй (логическое "И"). Для результирующего сигнала рассчитать отношение времени состояния "1" к времени состояния "0" (собсно это отношение будет равно K*амплитуда фильтрованного сигнала). Зависимость будет обратно-пропорциональная от 50% до 0% -> пропорционально 0..Pi.

0% времени умноженный сигнал в "1" - Фаза равна Pi.
25% времени умноженный сигнал в "1" - Фаза равна Pi/2.
50% времени умноженный сигнал в "1" - Фаза равна 0.

Для идеального сигнала минимальная (наихудшая) точность будет определяться отношением частоты измеряемого сигнала к частоте дискретизации (частоте на которой будет производиться захват произведения двух меандров).
Go to the top of the page
 
+Quote Post
stells
сообщение May 4 2012, 04:50
Сообщение #11


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



для разности фаз до 180 градусов - дифференциальный (инструментальный) усилитель и амплитудный детектор, 0,1 градуса (условно 250нс для сигнала 1кГц) чувствует уверенно:
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение May 4 2012, 05:35
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(stells @ May 4 2012, 08:50) *
для разности фаз до 180 градусов - дифференциальный (инструментальный) усилитель и амплитудный детектор, 0,1 градуса (условно 250нс для сигнала 1кГц) чувствует уверенно:

Но только выходной сигнал есть функция амплитуд входных сигналов и нелинейная функция разности фаз (Sin(фаза)) входных сигналов.
PS. Это для случая если LT1102 не заходит в насыщение.
Go to the top of the page
 
+Quote Post
stells
сообщение May 4 2012, 05:45
Сообщение #13


внештатный сотрудник
******

Группа: Участник
Сообщений: 2 458
Регистрация: 10-05-08
Из: МО, Медвежьи озера
Пользователь №: 37 401



Цитата(MaslovVG @ May 4 2012, 09:35) *
Но только выходной сигнал есть функция амплитуд входных сигналов и нелинейная функция разности фаз (Sin(фаза)) входных сигналов.

я так понял, что у сигналов меняется только фаза, а амплитуда постоянна? хотя согласен, постоянство это может быть условным, поплыть от температуры, а в результате погрешность измерения
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 4 2012, 08:51
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(radioman1 @ May 3 2012, 18:42) *
Желаемая точность 0.1 градуса при 3-4 измерения в секунду. С датчиков будет поступать синусоидальный сигнал из которого несложно сделать меандр.

Если амплитуды не стабильны, то советую CORDIC с рабочим словом в 16 бит. Очень удобен алгоритм Волдера, часто его использовал. Производительности на 4 измерения должно хватить. Периферии не будет, а только АЦП.
Уточните назначение измерителя, т.е. немного сведений о всей системе.
Go to the top of the page
 
+Quote Post
radioman1
сообщение May 4 2012, 09:52
Сообщение #15





Группа: Новичок
Сообщений: 5
Регистрация: 3-05-12
Пользователь №: 71 680



Цитата(Serhiy_UA @ May 4 2012, 10:51) *
Уточните назначение измерителя, т.е. немного сведений о всей системе.

В общем, это должен быть портативный прибор для измерения импедансов.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 13:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01499 секунд с 7
ELECTRONIX ©2004-2016