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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Измерние сдвига фаз, по выборкам АЦП
Zelepuk
сообщение Oct 29 2012, 06:42
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Нужно измерить сдвига фаз между двумя сигналами, представленными 16-ти битными отсчётами.
Как это сделать максимально экономично к памяти?

Сигналы синусоидальные. Одинаковой часты
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 29 2012, 07:30
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Свёртка. Память совсем не нужна, но считать долго.
Т.е. прямой перебор скалярных произведений между двумя векторами (массивами данных) при циклическом сдвиге одного из них на единичный/дискретный шаг. Все результаты можно не запоминать, если память экономим, а только величину сдвига, где это произведение достигает максимума. Этот сдвиг, выраженный в единицах периода, и есть искомый сдвиг фаз.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Oct 29 2012, 08:24
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



Спасибо, от несинусоидальности сигналов погрешность сильно будет зависеть?
Go to the top of the page
 
+Quote Post
lastpoint
сообщение Oct 29 2012, 09:07
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 1-08-12
Из: Смоленск
Пользователь №: 72 975



Цитата(Zelepuk @ Oct 29 2012, 12:24) *
Спасибо, от несинусоидальности сигналов погрешность сильно будет зависеть?

Свёртка показывает «схожесть» двух функций, если оба сигнала одной природы(треугольные, прямоугольные и т. д.), то на погрешность их форма влияние не окажет
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 29 2012, 09:13
Сообщение #5


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Zelepuk @ Oct 29 2012, 12:24) *
Спасибо, от несинусоидальности сигналов погрешность сильно будет зависеть?


Успех описанного мной корреляционного метода зависит не от правильности формы сигнала, а от того, насколько подобны по форме сигналы обоих каналов. Чем больше степень подобия и уже сигнал, тем лучше. Дело в том, что этот метод по своей сути есть наложение со сдвигом одного сигнала на другой, а кореляция (или скалярное произведение) есть мера такого сходства. Такая величина сдвига, при которой достигается максимальное наложение, и есть сдвиг фазы по определению, поскольку под сдвигом фазвы мы, как раз, подразумеваем существование такого сдвига, который делает обе картинки одинаковыми.

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

Метод удовлетворительно работает и в том случае, если сравнению подлежат синусоида и меандр. А это означает, что фазу синусоиды можно измерить, сравнением не с синусоидой, а с меадром (переходы между +1 и -1). А это еще большая экономия памяти (!), поскольку нет необходимости генерировать меадр в массиве, да и операция умножения в этом случае исключается, заменяясь на сложение или вычитание.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Oct 29 2012, 09:23
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



как известно форма тока может сильно отличаться от формы напряжения.
Получается в таком случае свёртка не поможет.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 29 2012, 09:41
Сообщение #7


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Zelepuk @ Oct 29 2012, 13:23) *
как известно форма тока может сильно отличаться от формы напряжения. Получается в таком случае свёртка не поможет.


Если обе формы отличаются друг от друга до неузнаваемости, то не свёртка тому виной, а исчезает само понятие фазы! В самом деле, если между двумя формами сигнала нет ничего общего, то что тут имеется ввиду под термином "сдвиг фазы"? Какую фазу следует в этом случае считать нулевой?

Если ответ на последний вопрос вы знаете, то сдвиньте ваш причудливый сигнал вручную до совмещения с нулем координат той точки, которую в этом сигнале вы считаете началом. - И это будет для вас тем стандартом (каналом №2), с которым надо производить свёртку.
Go to the top of the page
 
+Quote Post
KalashKS
сообщение Oct 29 2012, 09:45
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 7-02-11
Пользователь №: 62 755



Можно сравнивать не сигналы, а меандры, полученные их ограничением.
Другой вопрос, каково у Вас соотношение между частотой дискретизации и частотой сигналов? Достаточно ли будет точности в один дискретный отсчет?
Go to the top of the page
 
+Quote Post
rloc
сообщение Oct 29 2012, 09:52
Сообщение #9


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(Zelepuk @ Oct 29 2012, 10:42) *
Нужно измерить сдвига фаз между двумя сигналами, представленными 16-ти битными отсчётами.
Как это сделать максимально экономично к памяти?

Сигналы синусоидальные. Одинаковой часты


Цитата(Xenia @ Oct 29 2012, 11:30) *
Свёртка.


Автокорреляционной функцией для синуса является косинус. При свертке получим два косинуса с таким же фазовым сдвигом sm.gif
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 29 2012, 09:52
Сообщение #10


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(KalashKS @ Oct 29 2012, 13:45) *
Можно сравнивать не сигналы, а меандры, полученные их ограничением.

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

Цитата(rloc @ Oct 29 2012, 13:52) *
Автокорреляционной функцией для синуса является косинус. При свертке получим два косинуса с таким же фазовым сдвигом sm.gif

Это не страшно - берем расстояние от нуля до ближайшего максимума, будь хоть это косинус или другая периодическая функция. Периодичность свертки означает лишь то, что существует несколько вариантов наилучшего совмещения. Но поскольку разные периоды сигнала мы намеренно не различаем, то под фазой всегда подразумеваем минимальный сдвиг. Случаи, когда фазовая задерка превышает полный период, предлагаю вообще не рассматривать sm.gif. Такие вещи тестируются одиночными импульсами, а не синусоидой.
Go to the top of the page
 
+Quote Post
KalashKS
сообщение Oct 29 2012, 09:57
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 7-02-11
Пользователь №: 62 755



Цитата(Xenia @ Oct 29 2012, 13:52) *
В вашем предложении есть тот недостаток, что два меандра могут плохо сравниваться, если один шире другого. Из-за того, что тогда возникает люфт, когда более узкий меандр ползает внутри большого. В этом случае скалярное произведение не дает предпочтения ни одному из возможных расположений. Отсбда возникнет дополнительная погрешность определения фазы. Но если второй сигнал синусоида, то такой проблемы не возникает.

Согласен.
Интересно все-таки, что автор понимает под сильно отличающейся формой.
Go to the top of the page
 
+Quote Post
Zelepuk
сообщение Oct 29 2012, 09:57
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 634
Регистрация: 27-10-10
Пользователь №: 60 464



когда я говорю о разноcти формы сигналов тока и напряжения я имею ввиду что сигнал тока как правило более насыщен гамрониками ввиду нелинейности нагрузки. Периоды сигналов как правило равны.
Посмотрите тут http://www.matic.ru/index.php?pages=735

Сообщение отредактировал Zelepuk - Oct 29 2012, 10:05
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 29 2012, 10:32
Сообщение #13


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Zelepuk @ Oct 29 2012, 13:57) *
когда я говорю о разноcти формы сигналов тока и напряжения я имею ввиду что сигнал тока как правило более насыщен гамрониками ввиду нелинейности нагрузки. Периоды сигналов как правило равны.
Посмотрите тут...


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

Если же, тем не менее, вас интересует только фаза основной синусоиды (50 Гц), а более мелкие гармоники считаете шумом, то свёртку надо делать с чистой синусоидой той частоты, фаза которой вас интересует. Мелкие гармоники при этом будут эффективно сглажены и на точность измерения фазы, скорее всего, не повлияют.

=======================================================

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

Фактически это аналог преобразования Фурье для отдельной частоты.
Go to the top of the page
 
+Quote Post
ivan219
сообщение Oct 29 2012, 13:54
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 350
Регистрация: 16-11-08
Пользователь №: 41 680



Делаем ДПФ или Герцель на оба сигнала после чего в комплексной форме делим спектры друг на друга получаем Im, Re.
Фаза = ta(Im / Re).
По памяти и ресурсам Герцель самый экономичный и гибкий но есть проблема с точностью если алгоритм будет работать на МК
Go to the top of the page
 
+Quote Post
анатолий
сообщение Oct 30 2012, 17:33
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Цитата(ivan219 @ Oct 29 2012, 15:54) *
Делаем ДПФ или Герцель на оба сигнала после чего в комплексной форме делим спектры друг на друга получаем Im, Re.
Фаза = ta(Im / Re).
По памяти и ресурсам Герцель самый экономичный и гибкий но есть проблема с точностью если алгоритм будет работать на МК

Если синусоида в сигнале одна, то еще проще - в ДПФ умножать не на синус-косинус, а на меандр, т.е. на ±1 с частотой синусоиды.
Результат будет такой же и лучше, чем с Герцелем.
Можно спектры не делить, а перевести в полярную форму и вычесть фазы.
Go to the top of the page
 
+Quote Post

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

 


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


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