Перейти к содержанию
    

Вычислить разницу фазы.

Дано. Сигнал и его копия, копия задержана 0.1 сек и пришла другим путем. Источник 455 кГц, монохроматичен и стабилен. Fd 10 msps, 8 bit. Пик фактор сигнала <5. Доплера пока нет в принятых. Нужно найти сдвиг фазы поточнее. Сейчас делаю что, просто тупо два Фурье от обоих, смотрю дельту angle на заданном "бине". Вроде получается но есть вопросы. Разрешение по времени значительно выше чем по Найквисту, получаю несколько бинов со значительной амлитудой. Что с ними делать? Может оконная ф-ция навроде хамминга нужна? Но для фазы. Второе - в половине случаев фурье дает угол меньше на 2пи, приходится прибавлять, чядн? unwrap как то совсем ни к месту, тупо if завел. Ну и есть способы лучше? Может xcorr? Сорри я нуб. .. Наверное надо сделать опорный синус и посчитать интеграл от угла с квадратурой опорной.. только не совсем понимаю как

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Говорю на основе теоретических фантазий:

1. Перемножить два сигнала раз они когерентны и отфильтровать - в остатке будет нечто пропорциональное разности фаз.

2. Перевести оба сигнала в комплексный вид и завести на два cordic-а с них снять мгновенные фазы и вычесть их друг с друга - получив разность фаз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Говорю на основе теоретических фантазий:

1. Перемножить два сигнала раз они когерентны и отфильтровать - в остатке будет нечто пропорциональное разности фаз.

2. Перевести оба сигнала в комплексный вид и завести на два cordic-а с них снять мгновенные фазы и вычесть их друг с друга - получив разность фаз.

Да зачем мне Кордик, ресурсов полно пока что. Смотрю пока на Фурье, он все равно в итоге тоже самое делает. А зачем в комплексный то переводить? Комплексный спектр и так выйдет после DFT

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

просто корреляция для нескольких значений сдвига между двумя сигналами может оказаться быстрее даже чем FFT.

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

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

просто корреляция для нескольких значений сдвига между двумя сигналами может оказаться быстрее даже чем FFT.

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

да это все замечательно, это будет следующее. Мне сейчас надо вообще как можно качественнее сдвиг этот найти, оптимизации все пока что побоку. Я просто не уверен что делаю все правильно через DFT. Тут эффекты от кратности длины выборки и частоты семплирования вылезают забавные. В общем я похоже просто пока путаюсь при переходе от FTк DFT. Попробую нулей что ли добить.

 

просто корреляция для нескольких значений сдвига между двумя сигналами может оказаться быстрее даже чем FFT.

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

Так это же можно автокорреляцию сделать. Но я кажется понял, что и в том и другом случае мне надо увеличивать разрешение по частоте, просто "увеличив"выборку добавив нули

Вроде как-то так получилось

post-5493-1483789837_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тестовые данные бы сюда прикрепили.

 

с Фурье есть вопрос на какой именно частоте разность фаз смотреть.

ну и плюс отсутсвие окна действительно положение максимума спектра будет двигать за счёт наличия "всяких забавных эффектов".

можно конечно и автокорреляцией сначала найти "основную частоту" и потом смотреть сколько там фазы у обоих сигналов просто посчитав интеграл Фурье для этой конкретной частоты, но тогда проще сразу считать взаимную корреляцию двух сигналов и искать на ней максимум.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня не два разных сигнала, а один, пришедший разными путям и, причем его задержка мне известна, я же его и излучаю. Мне неизвестна разность фаз. А автокорреляция емнип через Фурье и делается

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с таким объяснением про известную задерку но неизвестные фазы стало ещё непонятнее :)

если бы данные, по которым ДВЕ спектральные картинки выше построены, сюда прикрепили, было бы гораздо понятнее.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня не два разных сигнала, а один, пришедший разными путям и, причем его задержка мне известна, я же его и излучаю. Мне неизвестна разность фаз.

Вроде бы, уже решали эту задачу: Измерение фазового сдвига Sin..

Если сигналов два, вероятно, нужно будет вычислить фазу дважды, для обоих сигналов относительно опорных sin и cos.

Искомая фаза будет равна разности измеренных фаз.. ИМХО..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде бы, уже решали эту задачу: Измерение фазового сдвига Sin..

Если сигналов два, вероятно, нужно будет вычислить фазу дважды, для обоих сигналов относительно опорных sin и cos.

Искомая фаза будет равна разности измеренных фаз.. ИМХО..

Ну так Фурье оно и есть, только оно по всему спектру. Это и сделал и это уже работает. Удручен дрейфом фазы гетеродина, хоть и кварцеванного. Буду думать.

Задержка известна примерно, там один и тотже сигнал переключается с фиксированной частотой на две антенны. А на приемной имеем.. ну поняли ?

Это я прошелся уже скользящим Фурье по всей большой выборке с перекрывающимся окошком. Видно как плывет фаза :(

У меня три периода, 1-ый работает одна антенна, второй - вторая, третий - молчание в эфире. Вот и видно их и шум между ними некоррелированный. Везде фаза сравнивается по одной частотной полоске из разложения Фурье и везде сравнение с самым первым "окном" в графике, то есть это long term drift. Код приводить не буду он ужасен. Но в принципе все работает

post-5493-1483823551_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все таки не могу понять, чем не устраивает два измерения фазы (ПЛЛ) и разность между ними? Очень просто и быстро. Зачем фурье приплетать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну зато сообразил откуда "дрейф", просто я частоту неточно смотрю. Да и дрейф все равно есть Главное что метод работает, и недалек от оптимального

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посчитать свертку сигналов друг с другом (ака ВКФ), и найти ближайший максимум - его положение = задержка, если надо, из нее фазу уже вычислить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посчитать свертку сигналов друг с другом (ака ВКФ), и найти ближайший максимум - его положение = задержка, если надо, из нее фазу уже вычислить

 

Все немного не так оказалось. У меня по сути своей BPSK, очень низкоскоростной, порядка 50 Гц ключевание на 90 гр. Пока что считаю Фурье по "окнам", которые скользят по сигналу. Проблемы в неопределенности частоты реальной, точно ее можно определить только на бесконечном промежутке времени :( Цель конечная на самом деле не получение информации от манипуляции, а вычисление сдвига фазы между битами с максимальной точностью. Как бы по Фурье все работает, ищу максимумы амплитуды и на этой частоте фазу. Но сигнал шум не совсем хорошо исходный, около 0 Дб. Конечно буду улучшать все параметры, но хочется выжать максимум в любом случае. О, вроде же любительская связь есть похожего принципа, надо будет посмотреть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...