|
Вычислить разницу фазы. |
|
|
|
Jan 7 2017, 03:36
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

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

|
Цитата(_pv @ Jan 7 2017, 12:52)  просто корреляция для нескольких значений сдвига между двумя сигналами может оказаться быстрее даже чем FFT. а потом какую-нибудь параболу наименьшими квадратами на результат натянуть, чтобы положение максимума найти. да это все замечательно, это будет следующее. Мне сейчас надо вообще как можно качественнее сдвиг этот найти, оптимизации все пока что побоку. Я просто не уверен что делаю все правильно через DFT. Тут эффекты от кратности длины выборки и частоты семплирования вылезают забавные. В общем я похоже просто пока путаюсь при переходе от FTк DFT. Попробую нулей что ли добить. Цитата(_pv @ Jan 7 2017, 12:52)  просто корреляция для нескольких значений сдвига между двумя сигналами может оказаться быстрее даже чем FFT. а потом какую-нибудь параболу наименьшими квадратами на результат натянуть, чтобы положение максимума найти. Так это же можно автокорреляцию сделать. Но я кажется понял, что и в том и другом случае мне надо увеличивать разрешение по частоте, просто "увеличив"выборку добавив нули Вроде как-то так получилось
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 7 2017, 19:43
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(DASM @ Jan 7 2017, 22:16)  У меня не два разных сигнала, а один, пришедший разными путям и, причем его задержка мне известна, я же его и излучаю. Мне неизвестна разность фаз. Вроде бы, уже решали эту задачу: Измерение фазового сдвига Sin..Если сигналов два, вероятно, нужно будет вычислить фазу дважды, для обоих сигналов относительно опорных sin и cos. Искомая фаза будет равна разности измеренных фаз.. ИМХО..
|
|
|
|
|
Jan 7 2017, 21:10
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Цитата(blackfin @ Jan 7 2017, 22:43)  Вроде бы, уже решали эту задачу: Измерение фазового сдвига Sin..Если сигналов два, вероятно, нужно будет вычислить фазу дважды, для обоих сигналов относительно опорных sin и cos. Искомая фаза будет равна разности измеренных фаз.. ИМХО.. Ну так Фурье оно и есть, только оно по всему спектру. Это и сделал и это уже работает. Удручен дрейфом фазы гетеродина, хоть и кварцеванного. Буду думать. Задержка известна примерно, там один и тотже сигнал переключается с фиксированной частотой на две антенны. А на приемной имеем.. ну поняли ? Это я прошелся уже скользящим Фурье по всей большой выборке с перекрывающимся окошком. Видно как плывет фаза  У меня три периода, 1-ый работает одна антенна, второй - вторая, третий - молчание в эфире. Вот и видно их и шум между ними некоррелированный. Везде фаза сравнивается по одной частотной полоске из разложения Фурье и везде сравнение с самым первым "окном" в графике, то есть это long term drift. Код приводить не буду он ужасен. Но в принципе все работает
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 9 2017, 04:47
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Цитата(Artem_Petrik @ Jan 8 2017, 17:28)  Посчитать свертку сигналов друг с другом (ака ВКФ), и найти ближайший максимум - его положение = задержка, если надо, из нее фазу уже вычислить Все немного не так оказалось. У меня по сути своей BPSK, очень низкоскоростной, порядка 50 Гц ключевание на 90 гр. Пока что считаю Фурье по "окнам", которые скользят по сигналу. Проблемы в неопределенности частоты реальной, точно ее можно определить только на бесконечном промежутке времени  Цель конечная на самом деле не получение информации от манипуляции, а вычисление сдвига фазы между битами с максимальной точностью. Как бы по Фурье все работает, ищу максимумы амплитуды и на этой частоте фазу. Но сигнал шум не совсем хорошо исходный, около 0 Дб. Конечно буду улучшать все параметры, но хочется выжать максимум в любом случае. О, вроде же любительская связь есть похожего принципа, надо будет посмотреть
|
|
|
|
|
Jan 9 2017, 10:31
|
Местный
  
Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006

|
Цитата(DASM @ Jan 9 2017, 06:47)  Проблемы в неопределенности частоты реальной... Ну, так в предложенном мной методе частоту знать и не нужно. Разве что, чтоб микросекунды задержки в фазу пересчитать. А если именно задержка интересует, то и вовсе не нужно. Собственно взаимная корреляция именно для этого и придумана. Конечно синусоидальный сигнал не самый лучший для определения задержки, пик будет довольно пологий, (ЛЧМ бы...), но тут уж что есть. По точности вряд ли что-то лучше можно придумать.
|
|
|
|
|
Jan 9 2017, 11:11
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Цитата(Artem_Petrik @ Jan 9 2017, 13:31)  Ну, так в предложенном мной методе частоту знать и не нужно. Разве что, чтоб микросекунды задержки в фазу пересчитать. А если именно задержка интересует, то и вовсе не нужно. Собственно взаимная корреляция именно для этого и придумана. Конечно синусоидальный сигнал не самый лучший для определения задержки, пик будет довольно пологий, (ЛЧМ бы...), но тут уж что есть. По точности вряд ли что-то лучше можно придумать. Не, там же амплитудная каша же. Разве что первое приближение по частоте получить, но Фурье то все равно делать на этой частоте, так что нет смысла. Вопрос толоько нужна ли мне ФАПЧ,? Я в какой-то мере ее же и реализую.. сам сигнал по частоте то стабилен, как бы ФАПЧ и не надо.. но с ФАПЧ можно бы синхронный приемник по железу использовать, а сейчас у меня обычный с низкой ПЧ.
|
|
|
|
|
Jan 9 2017, 11:50
|
Местный
  
Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006

|
Изначально у меня создалось впечатление, что задача - определить задержку между двумя сигналами, принятыми с разных путей распространения сигнала. Корреляционный метод тут очень в тему. "Приближение по частоте" - это совсем другая задача, и метод ее решения другой, тут да, ФАПЧ, фурье. Амплитудная каша из-за соотношения С/Ш? Если шум в каналах не коррелирован - он при свертке уйдет. Оптимальный фильтр, опять же, но он в тракте и так должен быть. А от того, что останется, уже никуда не денешься, какой метод не применяй.
|
|
|
|
|
Jan 18 2017, 13:47
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Да, Алекс11 все верно сказал, так и делал, сорри что не отписался сюда сразу. Вернее я не совсем дошел еще то того что делать с бинами, теперь понял почти что. Тогда я просто максимальный выуживал, но естественно имел биения на нем фазовые из-за некратности fs и fdis. Меня сейчас больше заботит момент - как мне синхронизироваться с этой бифазной посылкой, если хочу интегралы по максимальной выборке иметь для каждой из фаз, дабы получить в итоге насколько она сдвинута в них между ними (они не квадратурны и не противофазны). Пока что глажу окошком по тому что имею, но это школьно очень, к тому же в устройстве не Матлаб стоять будет совсем даже по производительности.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|