Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 13.05.2017, 09:34   #1
shyub
Прописка
 
Регистрация: 20.08.2008
Сообщений: 260
Сказал спасибо: 305
Сказали Спасибо 76 раз(а) в 42 сообщении(ях)
shyub на пути к лучшему
По умолчанию Цифровой метод определения разности фаз

Есть два синусоидальных сигнала (частота 600 Гц), отличающиеся друг от друга фазой, которая в процессе работы изменяется в пределах одного градуса. Необходимо с высокой точностью (не хуже 0,1%) определить эту величину.
Первоначально попытался решить задачу с момощью двух компараторов и логики, которая запускает счётчик TIM1 (контроллер STM32) на время пока одна полуволна выше нуля, а вторая ниже. Но, скорее всего из-за нестабильности компаратора (LM319), полученный результат отличается от данных, полученных импортным прототипом.
Искал какой-нибудь готовый фазовый дискриминатор аналоговых сигналов, но безрезультатно (есть много, но все они для цифровых сигналов), т.е. проблема будет той же - нужен хороший компаратор...
В ряде учебников по цифровой обработке сигналов встречал очень в сокращённом виде (3-4 предложения и в лучшем случае одна формула), что эту задачу можно решить при помощи БПФ. Но написать полноценную программу по этому материалу, во всяком случае я, не смогу.
Буду благодарен за любую помощь.
Реклама:
shyub вне форума  
Непрочитано 13.05.2017, 10:44   #2
DanilinSA
Почётный гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,734
Сказал спасибо: 130
Сказали Спасибо 1,115 раз(а) в 530 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: Цифровой метод определения разности фаз

Компараторы тут не спасут. Малейший шум сигнала - и 0,1% уже не достижима. Либо набирать большую статистику и считать "среднюю температуру по больнице".

Как вариант решения - оцифровать несколько периодов с максимальным разрешением - обработка. Сглаживание и т.д.
DanilinSA вне форума  
Непрочитано 13.05.2017, 10:54   #3
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Цифровой метод определения разности фаз



но это - в идеальных условиях. шум в исходном сигнале внесет свою погрешность. RC-цепочки внесут погрешность в исходные фазы.

Ну и как в теме про УЗИ и коров - изначально ТС спрашивал, как измерить ток в многожильном кабеле, не разрывая его, а выяснилось, что надо было подходить совсем с другой стороны.

Хочется именно цифровым методом? Ладно, заводите оба сигнала на АЦП и с очень высокой скоростью оцифровывайте их. Шумы придется фильтровать. Затем складываете два сигнала, второй в противофазе, и должны получить разность, амплитуда разностного сигнала будет мерой фазового сдвига между сигналами

Последний раз редактировалось NewWriter; 13.05.2017 в 11:25.
NewWriter вне форума  
Сказали "Спасибо" NewWriter
shyub (13.05.2017)
Непрочитано 13.05.2017, 11:36   #4
shyub
Прописка
 
Регистрация: 20.08.2008
Сообщений: 260
Сказал спасибо: 305
Сказали Спасибо 76 раз(а) в 42 сообщении(ях)
shyub на пути к лучшему
По умолчанию Re: Цифровой метод определения разности фаз

Сообщение от DanilinSA Посмотреть сообщение
Как вариант решения - оцифровать несколько периодов с максимальным разрешением - обработка.
Вот здесь и проблема, т.к. не могу найти более менее толковой методики, как после оцифровки "вытащить" значение фазы.
Сообщение от DanilinSA Посмотреть сообщение
Компараторы тут не спасут. Малейший шум сигнала - и 0,1% уже не достижима. Либо набирать большую статистику и считать "среднюю температуру по больнице".
Это на самый крайний вариант.
shyub вне форума  
Непрочитано 13.05.2017, 11:51   #5
Kabron
Почётный гражданин KAZUS.RU
 
Аватар для Kabron
 
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,616
Сказал спасибо: 708
Сказали Спасибо 4,382 раз(а) в 2,007 сообщении(ях)
Kabron на пути к лучшему
По умолчанию Re: Цифровой метод определения разности фаз

NewWriter, - правильный подход, но можно проще.
Компаратором оцифровать, D-триггером сигналы /2 и складывать противофазные. Или XORить.
Выход хорошечно отфильтровать.
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.

Последний раз редактировалось Kabron; 13.05.2017 в 11:55.
Kabron вне форума  
Непрочитано 13.05.2017, 12:13   #6
shyub
Прописка
 
Регистрация: 20.08.2008
Сообщений: 260
Сказал спасибо: 305
Сказали Спасибо 76 раз(а) в 42 сообщении(ях)
shyub на пути к лучшему
По умолчанию Re: Цифровой метод определения разности фаз

Сообщение от NewWriter Посмотреть сообщение
Хочется именно цифровым методом? Ладно, заводите оба сигнала на АЦП и с очень высокой скоростью оцифровывайте их. Шумы придется фильтровать. Затем складываете два сигнала, второй в противофазе, и должны получить разность, амплитуда разностного сигнала будет мерой фазового сдвига между сигналами
Спасибо, попробую. Но допустим:
Ф1: 0; 45; 90;
sin(Ф1): 0; 0,7071; 1;
Ф2: 1; 46; 91;
sin(Ф2): 0,0174; 0,7193; 0,9998;
abs(разн.): 0,0174; 0,0122; 0,0002;
В зависимости от угла меняется и разность. Здесь, скорее всего, по выборкам надо каким-то другим образом определять частоты и фазы.
На импортном прототипе на входе стоит 931 (скорее всего это MAX931), выход, которого связан с ПЛИС "Altera" (марки не видно). Есть ещё стереокодек CS4272D (он скорее всего формирует первую синусоиду 600 Гц). Плата многослойная и залита бакситкой, так что более подробно изучить её не удалось.

Последний раз редактировалось shyub; 13.05.2017 в 12:20.
shyub вне форума  
Непрочитано 13.05.2017, 12:32   #7
anatol378
Почётный гражданин KAZUS.RU
 
Аватар для anatol378
 
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
anatol378 на пути к лучшему
По умолчанию Re: Цифровой метод определения разности фаз

Если частота 600 Гц "плавает" точности также не будет. На таймер надо подавать 360х10х600=2,16 МГЦ (для точности +- 0.1). Возможно использовать два таймера, один считает период основного сигнала, другой сдвиг фазы. Таймеры поделить друг на друга и умножить на коэффициэнт пересчета. Тогда таймер 24-х разрядный.
__________________
Решил посоветовать, да забыл что...
anatol378 вне форума  
Непрочитано 13.05.2017, 12:44   #8
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Цифровой метод определения разности фаз

Сообщение от shyub Посмотреть сообщение
В зависимости от угла меняется и разность.
Правильно - картинку выше посмотрите, синусоида на выходе такая же будет, только с меньшей амплитудой, ее амплитуда будет равна разности фаз.

Но тут еще одна фишка - могут быть разные амплитуды двух сигналов. Причем, эта разница будет напрямую влиять на результат.
Посему, перед вычитанием, амплитуды исходных сигналов надо нормализовать, т.е. уравнять. Математически.
NewWriter вне форума  
Непрочитано 13.05.2017, 12:45   #9
shyub
Прописка
 
Регистрация: 20.08.2008
Сообщений: 260
Сказал спасибо: 305
Сказали Спасибо 76 раз(а) в 42 сообщении(ях)
shyub на пути к лучшему
По умолчанию Re: Цифровой метод определения разности фаз

Сообщение от Kabron Посмотреть сообщение
Компаратором оцифровать, D-триггером сигналы /2 и складывать противофазные. Или XORить.
Выход хорошечно отфильтровать.
Я вас правильно понял, вы это имели ввиду?
Нажмите на изображение для увеличения
Название: 13.05.png
Просмотров: 0
Размер:	14.8 Кб
ID:	114343
Это уже делал, правде без триггеров, а на компараторах и логике. Результат счётчика суммировал за 10 периодов и делил на 20. Максимум, что удалось получить - это ошибку около 1%. А надо не хуже 0,1%.
shyub вне форума  
Непрочитано 13.05.2017, 12:50   #10
Kabron
Почётный гражданин KAZUS.RU
 
Аватар для Kabron
 
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,616
Сказал спасибо: 708
Сказали Спасибо 4,382 раз(а) в 2,007 сообщении(ях)
Kabron на пути к лучшему
По умолчанию Re: Цифровой метод определения разности фаз

Сообщение от shyub Посмотреть сообщение
Я вас правильно понял, вы это имели ввиду?
Вложение 114343
Это уже делал, правде без триггеров, а на компараторах и логике. Результат счётчика суммировал за 10 периодов и делил на 20. Максимум, что удалось получить - это ошибку около 1%. А надо не хуже 0,1%.
Правильно. Суммируйте за 100 периодов.
Можно просто фильтровать и мерять постоянную составляющую.
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.

Последний раз редактировалось Kabron; 13.05.2017 в 12:52.
Kabron вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Измеритель разности фаз (фазометр) Felt Измерительное оборудование 24 29.07.2013 11:20
Прибор для определения фаз violator Измерительное оборудование 1 22.10.2009 11:54
Гармоническ дискретн спектры и аппроксимац коротк процессов Dmitriev Цифровые сигнальные процессоры 0 15.04.2006 21:02
[Решено] Схема определения фаз трёхпроводной сети FMU Производственное оборудование 1 19.05.2005 11:28


Часовой пояс GMT +4, время: 02:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot