Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вычисление фазы
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Alexey_pashinov
Здравствуйте! Возникли трудности со следующим вопросом.

Иммется антенна доплеровского локатора K-MC4, и для вычисления направления движущегося объекта мне необходимо вычислить разность фаз сигналов I и Q, идущих с антенны. Рассчет делаю в частотной области, пользуясь формулой tg(fi) = Im/Re, т.е. fi = atan2f(Im, Re); разница фаз I и Q в моем случае должна быть 90 градусов, но в результате получаю никак не анализируемые данные. Вопрос можно ли таким образом, переводя в частотную область, правильно высчитать фазу? Где то слышал что так не делают, к тому же stm в arm_math.h для построения АЧХ предоставляется функция magnitude, и она в моем случае правильно вычисляет бин и используя его я вычисляю частоту, а для вычисления фаз такой функции нет. Совпадение ли или таким образом в частотной области действительно фазу не получить? Можете тогда подсказать какие есть методы и что предпочтительней будет в моем случае? (Весь цос реализуется в stm32)
litv
начинать надо с теории
http://cyberleninka.ru/article/n/dvuhkanal...skiy-pelengator
http://alnam.ru/book_rts.php?id=85
Alexey_pashinov
Теорию изучаю, почитаю что вы скинули, но хотелось бы побольше конкретики по вопросу
Alex11
Фазу вычислить в принципе можно, но есть куча проблем. Самое главное - с какой точностью она Вам нужна. Если с небольшой - то реально. Фаза, если частота не попадает точно в бин, может быть вычислена, зная смещение реальной частоты от ближайшего бина, но там сильная зависимость фазы от частоты. Дальше опять вопросы точности и времени измерений. Опять же, если объект движется, то какое время его скорость постоянна?
Alexey_pashinov
На данном этапе точность не столь важна, нужно определить направление движения (к нам/от нас). Это определяет знак разница фаз I и Q (должна быть +90 или -90 градусов). Сейчас читаю про эту кучу проблем, в книге Стивена Смита есть глава "проблемы представления в полярных координатах", там описаны и проблемы и решения. Что касается того, что частота может не попадать точно в бин, я же беру частоту конкретно в бине и фазу вычислить нужно в нем, поэтому надеюсь что не нужно лезть в эту тресину с не попаданием в бин и смещением, тем более этот сдиг не должен быть значительным) Еще у меня КИХ фильтр имеется и как понимаю он тоже фазовый сдвиг дает? (предполагаю что он линейный)
Alex11
Дело в том, что Вам не нужна частота в бине - это некая абстакция. Вам нужна частота того синуса, который Вы подали на преобразование Фурье. И там была всего одна частота. И именно ее фаза Вам и нужна. Если посмотреть, какая фаза будет в бинах, то увидите, что она поворачивается примерно на 180 градусов в каждом следующем бине.
Alexey_pashinov
Смотрите, чтобы вычислить частоту моего синуса, я как раз вычисляю какой частоте соответствует найденный бин (погрешность может быть примерно в 29 Гц, учитывая что Fs = 60 кГц, N = 2048 отсчетов). Таким образом получаю частоту синуса и теперь нужно найти его фазу. Ищется ли фаза этой частоты в том же бине что и частота, если пока не рассматривать, что частота не попадает в бин, т.е. не кратна Fs/N?
petrov
Цитата(Alexey_pashinov @ May 14 2015, 09:35) *
Смотрите, чтобы вычислить частоту моего синуса, я как раз вычисляю какой частоте соответствует найденный бин (погрешность может быть примерно в 29 Гц, учитывая что Fs = 60 кГц, N = 2048 отсчетов). Таким образом получаю частоту синуса и теперь нужно найти его фазу. Ищется ли фаза этой частоты в том же бине что и частота, если пока не рассматривать, что частота не попадает в бин, т.е. не кратна Fs/N?


А вы посмотрите внимательно как вычисляется один бин DFT, это всего лишь выход полосового FIR фильтра с прямоугольной огибающей импульсной характеристики.
Alexey_pashinov
Вот результаты ачх и фчх, в бине 150 как раз мой синус и фчх там ведет себя немного не так как в шуме, т.е. остальных бинах. Можно какие то выводы сделать из данной фчх?


В предыдущем вычислении фазы не учитывал данные условия
if Re < 0 && Im < 0
fi = fi - 180;
end
if Re < 0 && Im >= 0
fi = fi + 180;
end

Выкладываю результат учитывая это (но тут кажется совсе ничего не понятно)
megajohn
Цитата(Alex11 @ May 12 2015, 14:38) *
Фаза, если частота не попадает точно в бин, может быть вычислена, зная смещение реальной частоты от ближайшего бина, но там сильная зависимость фазы от частоты


Простите убогого, а где почитать про эти бины ? Гугль выдает "мистер Бин", и "Бин-банк"

Alexey_pashinov
Когда строится ачх то значениям амлитуд присваивается номер, зная номер можно вычислить как раз и частоту, по формуле f = m*(fs/N) (N -отчеты бпф, m как раз и есть номер бина). Просто, например, Лайонс дает этому определение "бин", поэтому я как то привык его использовать.
Alex11
Наверно, не АЧХ и ФЧХ, а амплитудный и фазовый спектры сигнала? АЧХ и ФЧХ бывают у устройства, а не сигнала.
А третий график - это Ваш сигнал? Если да, то что он у Вас такой обрезанный? По-другому не бывает?
Alexey_pashinov
Вы правы, я имел ввиду амплитудный спектр. Сейчас есть предположение что считается все верно и проблема в том что ищу разницу между не теми каналами (видимо распиновку надо проверять, походу перепутана нумерация каналов), потому что высчитав фазу между независящими каналами, я получил именно ту фазу которую я вижу на осциллографе, к тому же фаза правильно меняет знак в зависимости от направления движения (вряд ли это совпадение). Завтра буду перепроверять это дело и отпишусь о результатах.


Мои предположения оказались верны, в общем данным методом фаза расчитывается верно, спасибо за ответы. Полагаю это хорошо, что таким образом создал себе проблему, зато теперь с пониманием разобрался с фазой, а не просто воспользовался формулой)
Krys
Вам надо измерять разность фаз между двумя комплексными каналами? Или фазу вектора одного комплексного канала?
В первом случае разность фаз иногда измеряют как фазу частного от деления каналов друг на друга, этим избегают особых точек у тангенсов-арктангенсов
Alexey_pashinov
Мне нужна именно разность фаз между двумя каналами, спасибо за подсказку, почитаю об этом методе.
Krys
Вот тут например: http://www.dsplib.ru/content/complex/complex.html
Частное от деления комплексных чисел имеет амплитуду, равную отношению модулей, и фазу, равную разности фаз, от этого и плясать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.