Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Определение задержки
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
ivan219
Есть опорный ЛЧМ сигнал, и есть исследуемый ЛЧМ сигнал.
Исследуемый сигнал имеет какую то задержку в семплах.

Нужно определелить эту задержку?

Ниже приведены несколько рисунков.
В графике ФЧХ отображается разница фаз исследуемого сигнала и опорного.
bahurin
1. Можно посчитать взаимную корреляционную функцию опорного и сдвинутого сигналов и ее максимум будет смещен ровно на величину задержки
2. В ЛЧМ сигнале временная задержка соответствует частотному рассогласованию опорного и принятого сигналов. Вам надо раскрыть неоднозначность по фазе в ваших графиках и угол наклона даст временную задержку (при условии, что нет частотных сдвигов)
ivan219
Цитата(bahurin @ Jul 22 2011, 22:49) *
1. Можно посчитать взаимную корреляционную функцию опорного и сдвинутого сигналов и ее максимум будет смещен ровно на величину задержки

Можно по подробнее.
Цитата(bahurin @ Jul 22 2011, 22:49) *
2. В ЛЧМ сигнале временная задержка соответствует частотному рассогласованию опорного и принятого сигналов. Вам надо раскрыть неоднозначность по фазе в ваших графиках и угол наклона даст временную задержку (при условии, что нет частотных сдвигов)

Да будут частотные сдвиги. Это для примера взят чистый сигнал.
ivan219
Поэкспериментировал с корреляцией, и вот что получилось, смотрите рисунок.
Получается ошибка в 2 семпла.
При прохождении задержки от 0 до n-1 ошибка постепенно нарастает сначала 1 семпл, потом 2 бывает и больше потом также уходит до 0
Как с этим бороться???
bahurin
Цитата(ivan219 @ Jul 22 2011, 23:27) *
Можно по подробнее.



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

R = abs( ifft( fft(s) * conj(fft(s0)) ) )


Цитата(ivan219 @ Jul 22 2011, 23:27) *
Да будут частотные сдвиги. Это для примера взят чистый сигнал.


В этом случае частотный сдвиг принятого и опорного сигналов будет выглядеть как временная задержка. Почитайте книгу Кук Бернфельд Радиолокационные сигналы там про лчм очень подробно расписано.

PS ваши картинки взаимной корреляции какие-то неубидительные, возможно есть ошибка в модели.
ivan219
Цитата(bahurin @ Jul 23 2011, 12:58) *
Взаимная корреляционная функция ничто иное как круговая свертка принятого и опорного сигналов. Может быть рассчитана через теорему о свертке как

R = abs( ifft( fft(s) * conj(fft(s0)) ) )


Я делаю так, беру R = abs(IFFT(FFT(S) * FFT(S0))) (S0 повёрнут во времени во временной области 0 отсчёт идёт на место отсчёта N-1, а отсчёт N-1 идёт на место 0) размер блока FFT в 2 раза больше суммы выборок S + S0

Если не правильно объясните что означает функция conj()???

Вроде сейчас правильно определяется положение задержки.
almost
Conj() это комплексно сопряженное число. Т.е. взяв бпф от опоры надо преобразовать ещё его в комплексно сопряженное число, чтобы получить отклик как функция неопределенности данного сигнала.
ivan219
Цитата(almost @ Jul 23 2011, 16:13) *
Conj() это комплексно сопряженное число. Т.е. взяв бпф от опоры надо преобразовать ещё его в комплексно сопряженное число, чтобы получить отклик как функция неопределенности данного сигнала.

Что-то такое и предполагал.
А как это сделать?
Я предполагаю, что нужно умножить на j = Sqrt(-1) но как это сделать???
У меня есть вещественная часть Re и мнимая Im
ivan219
Разобрался комплексно сопряженный спектр это спектр, умноженный на мнимую единицу j = Sqrt(-1) т.е. получается если брать вещественную и мнимую часть спектра то происходит:
Код
Re * j = Im;
Im * j = - Re;

происходит поворот фазы на 90 град. всех спектральных составляющих.
С корреляцией то же разобрался. Теперь всё точно вычисляет rolleyes.gif
Всем спасибо.
Artem_Petrik
Цитата(ivan219 @ Jul 23 2011, 18:19) *
Разобрался комплексно сопряженный спектр это спектр, умноженный на мнимую единицу j = Sqrt(-1)

Да нет же, просто знак у мнимой части поменять надо пруф
thermit
Хоть один здравомыслящий человек нашелся... Похоже, еще не все потеряно.
ivan219
Цитата(Artem_Petrik @ Jul 23 2011, 19:57) *
Да нет же, просто знак у мнимой части поменять надо пруф

Спасибо. Теперь точно разобрался sm.gif
bahurin
Цитата(ivan219 @ Jul 23 2011, 15:53) *
Я делаю так, беру R = abs(IFFT(FFT(S) * FFT(S0))) (S0 повёрнут во времени во временной области 0 отсчёт идёт на место отсчёта N-1, а отсчёт N-1 идёт на место 0) размер блока FFT в 2 раза больше суммы выборок S + S0

Если не правильно объясните что означает функция conj()???

Вроде сейчас правильно определяется положение задержки.


если вы развернули опорный сигнал, то операцию комплексного сопряжения conj делать не надо R = abs(IFFT(FFT(S) * FFT(S0))) в этом случае дает правильный результат, и картинки тоже стали более похожи на правду.
ivan219
Цитата(bahurin @ Jul 24 2011, 10:48) *
если вы развернули опорный сигнал, то операцию комплексного сопряжения conj делать не надо R = abs(IFFT(FFT(S) * FFT(S0))) в этом случае дает правильный результат, и картинки тоже стали более похожи на правду.

Значит, комплексное сопряжение, и поворот во времени это равноценные операции или всё-таки есть какая-то разница?
На картинке корреляция с комплексно сопряженным сигналом.
ivan219
Выяснилась маленькая не приятность с фазовым сдвигом частотных компонентов если он больше длительности половины семпла Fi = 360 * F * Deley / N; 0.5 <= Deley < 1 то алгоритм определяет сдвиг на один семпл. И получается ошибочный результат.
Есть ли методы коррекции или другие алгоритмы???
almost
Цитата(ivan219 @ Jul 27 2011, 12:06) *
Выяснилась маленькая не приятность с фазовым сдвигом частотных компонентов если он больше длительности половины семпла Fi = 360 * F * Deley / N; 0.5 <= Deley < 1 то алгоритм определяет сдвиг на один семпл. И получается ошибочный результат.
Есть ли методы коррекции или другие алгоритмы???


Конечно. Это так называемая весовая обработка, она подразумевает под собой умножение на функцию окна результата получившегося после перемножения спектров опоры и принятого сигнала.
ivan219
Что-то не ясно про весовую функцию. Она же просто уменьшит все значения от центра к краям. А если правильный пик находится не посередине он и так меньше чем не правильное значение.
Может, есть какой то сигнал вид или тип где ошибка сведена к минимуму?
Я себе у же всю голову сломал sad.gif
Придумал только использовать адаптивный алгоритм, который будет подстраивать фазу эталонного сигнала до получения максимальной корреляции.
Либо адаптивно находить максимально близкие коэффициенты импульсной характеристики.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.