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

 
 
> Уточнение момента прихода сигнала
DMax
сообщение Sep 4 2009, 19:25
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 19-01-08
Из: Питер
Пользователь №: 34 234



Доброго времени суток всем!

Есть такая проблема: надо определить момент прихода сигнала с точностью выше, чем интервал сэплирования. Сигнал - заранее известная последовательность с хорошими корреляционными свойствами. Собственно для решения данной задачи я придумал следующий алгоритм.
1) Простым согласованным фильтром обнаруживаем то место в оцифрованном сигнале на удвоенной частоте, где пик достигает максимального значения.
2) Далее, берем и делаем БПФ на принятую последовательность и БПФ на эталонную последовательность и вычитаем из фаз первого преобразования соответствующие фазы второго.
3) Согласно теореме о задержке, если принятый сигнал был оцифрован точно в момент его начала, то все разности фаз будут иметь одинаковое значение. В противном случае если построить график phi(i), то он будет иметь вид наклоненной прямой и угол наклона определяет величину задержки прихода сигнала относительно первого сэмпла. Далее, применяя несложные формулы, я эту задержку и вычисляю.

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

Второй вопрос: может быть есть более продвинутые спобособы решения данной задачи? Ткните мордой в документацию, плиз.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alex_os
сообщение Sep 7 2009, 05:17
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(GetSmart @ Sep 6 2009, 12:25) *
Можно я тут сумничаю? smile.gif

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


Это не правильно, оптимальная оценка получается именно нахождением максимума коррелятора, это будет максимально правдоподобная оценка. Никакая дополнительная фильтрация и "корреляция корреляции" не нужна.


Цитата(DMax @ Sep 6 2009, 12:37) *
Она имеет вид треугольника в том случае, когда частота дискретизации совпадает с частотой манипулирования фазой. Попробуйте увеличить частоту дискретизации скажем раз в 10 и вы увидите, что (в зависимости от того как ляжет такт оцифровки) пик согласованного фильтра у вас расползется на 9-10 точек примерно одного уровня.


Если считать корреляцию в непрерывном времени, то для фазовой модуляции с мгновенными скачками фазы будет треугольник. В дискретном времени должен наблюдаться дискретизированный треугольник.
p.s. Вообще два отсчета на символ для "прямоугольно-треугольного" случая, наверное маловато будет ( тут вспоминается тов. Котельников smile.gif)

Прикрепленное изображение

Код
x = zeros(1000,1);
for i=1:10:1000
    if(randn()>0)     x(i:i+9) = 1;
    else        x(i:i+9) = -1;    end
end
y=xcorr(x,x+1*randn(1000,1));
plot(y(950:1050))


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Sep 7 2009, 09:08
Сообщение #3


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(alex_os @ Sep 7 2009, 11:17) *
Это не правильно, оптимальная оценка получается именно нахождением максимума коррелятора, это будет максимально правдоподобная оценка. Никакая дополнительная фильтрация и "корреляция корреляции" не нужна.

Моя версия ближе к истине чем у других. Я навёл справки у ребят, которые занимались аналогичной задачей. Только они находили период (то есть расстояние между пиками кор.функции) сложного сигнала методом кореляции с точностью намного выше одного сэмпла. В присутствии больших шумов вершина треугольника становится размазанной. От этого не избавиться никакой разумной фильтрацией. Алгоритм точного нахождения вершины заключается в следующем. Когда вершина размазана, как ни странно, но стороны треугольника на их средних уровнях очень прямые. Так вот требуется найти две точки на одинаковых (допустим правых) сторонах треугольника на одном горизонтальном уровне (примерно посередине высоты треугольника) и по этим точкам вычислить расстояние между ними для определения точного периода. Разумеется, две точки не будут иметь одинаковый уровень, поэтому одну из точек нужно будет интерполировать до соседней, при этом как раз позиция по Х второй точки на втором треугольнике будет дробной. Так вот, расстояние между точками (X2-X1) будет точным периодом.

Применительно к этой поставленной задаче - нужно искать не пик корреляции, там неверное значение.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
alex_os
сообщение Sep 7 2009, 09:35
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(GetSmart @ Sep 7 2009, 13:08) *
Моя версия ближе к истине чем у других. Я навёл справки у ребят, которые занимались аналогичной задачей. Только они находили период (то есть расстояние между пиками кор.функции) сложного сигнала методом кореляции с точностью намного выше одного сэмпла. В присутствии больших шумов вершина треугольника становится размазанной. От этого не избавиться никакой разумной фильтрацией. Алгоритм точного нахождения вершины заключается в следующем. Когда вершина размазана, как ни странно, но стороны треугольника на их средних уровнях очень прямые. Так вот требуется найти две точки на одинаковых (допустим правых) сторонах треугольника на одном горизонтальном уровне (примерно посередине высоты треугольника) и по этим точкам вычислить расстояние между ними для определения точного периода. Разумеется, две точки не будут иметь одинаковый уровень, поэтому одну из точек нужно будет интерполировать до соседней, при этом как раз позиция по Х второй точки на втором треугольнике будет дробной. Так вот, расстояние между точками (X2-X1) будет точным периодом.

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


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Sep 7 2009, 09:53
Сообщение #5


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(alex_os @ Sep 7 2009, 15:35) *
Так крутые фронты дрожат не меньше чем вершина.

Это по-вашему, гипотетически. Ну а практически - реально меньше.

Цитата(petrov)
Почитайте книжки по радиолокации, максимум на выходе согласованного фильтра это и есть самый луший обнаружитель, лучше в принципе сделать невозможно что бы там ребята не говорили.

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

Цитата(alex_os @ Sep 7 2009, 15:48) *
Кстати у треугольника есть еще левая сторона smile.gif, можно находить время пересечения порога с левой стороной и момент пересечения с правой и усреднять.

Только у этого треугольника может быть ещё наклон, который всё подпортит smile.gif Но пораскинув мозгами можно и эту проблему решить.

Сообщение отредактировал GetSmart - Sep 7 2009, 10:27


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
alex_os
сообщение Sep 7 2009, 10:30
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(GetSmart @ Sep 7 2009, 13:53) *
Это по-вашему, гипотетически. Ну а практически - реально меньше.

Практическое подтверждение smile.gif.

Девиация положения максимума
std_max = 0.1613
Девиация положения точки пересечения порога 0.5
std_edge = 2.5813
Так что природу не обманешь...


Код
x = zeros(1000,1);
x = zeros(1000,1);

for i=1:10:1000
    if(randn(1,1)>0)     x(i:i+9) = 1;
    else        x(i:i+9) = -1;    end
end

pos_max  = zeros(1,1000);
pos_edge = zeros(1,1000);
plot(y);

for j=1:1000
        y=xcorr(x,x+3*randn(1000,1));        
        [v, m] = max(y);
        I=find(y>500);
        pos_max(j)  = m;
        pos_edge(j) = I(1);
end        

std_max  = std(pos_max)
std_edge = std(pos_edge)


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DMax   Уточнение момента прихода сигнала   Sep 4 2009, 19:25
- - DRUID3   Котельников и Найквист крутятся в гробах...   Sep 4 2009, 20:27
- - petrov   Цитата(DMax @ Sep 4 2009, 23:25) Но тут н...   Sep 5 2009, 06:47
|- - DMax   Цитата(petrov @ Sep 5 2009, 10:47) В ради...   Sep 5 2009, 20:29
|- - DRUID3   Цитата(DMax @ Sep 5 2009, 23:29) Узнал но...   Sep 5 2009, 20:55
|- - alex_os   Цитата(DMax @ Sep 6 2009, 00:29) Как бы п...   Sep 6 2009, 07:25
|- - DMax   Цитата(alex_os @ Sep 6 2009, 11:25) Аппро...   Sep 6 2009, 08:37
|- - GetSmart   Цитата(DMax @ Sep 6 2009, 14:37) 1) ..., ...   Sep 6 2009, 08:42
||- - DMax   Цитата(GetSmart @ Sep 6 2009, 12:42) Это ...   Sep 6 2009, 08:47
||- - GetSmart   Цитата(DMax @ Sep 6 2009, 14:47) Вы матем...   Sep 6 2009, 08:54
||- - DRUID3   Цитата(DMax @ Sep 6 2009, 11:47) Ну хорош...   Sep 7 2009, 13:39
||- - GetSmart   Цитата(DRUID3 @ Sep 7 2009, 19:39) Частот...   Sep 7 2009, 14:17
|||- - DRUID3   Цитата(GetSmart @ Sep 7 2009, 17:17) Во-п...   Sep 7 2009, 15:22
|||- - GetSmart   Цитата(DRUID3 @ Sep 7 2009, 21:22) А вот ...   Sep 7 2009, 15:42
||- - DMax   Цитата(DRUID3 @ Sep 7 2009, 17:39) ОК. Ес...   Sep 7 2009, 15:57
||- - bahurin   Думаю, что если шум аддитивный с нулевым среднем, ...   Sep 7 2009, 16:16
||- - samurad   Цитата(bahurin @ Sep 7 2009, 20:16) Думаю...   Sep 10 2009, 13:08
||- - bahurin   Цитата(samurad @ Sep 10 2009, 17:08) Есть...   Sep 10 2009, 17:33
||- - GetSmart   Цитата(bahurin @ Sep 10 2009, 23:33) Это ...   Sep 11 2009, 03:04
||- - bahurin   Цитата(GetSmart @ Sep 11 2009, 07:04) Воз...   Sep 11 2009, 06:39
||- - samurad   Цитата(bahurin @ Sep 11 2009, 10:39) Это ...   Sep 11 2009, 10:20
||- - bahurin   Цитата(samurad @ Sep 11 2009, 14:20) А к ...   Sep 11 2009, 10:55
|- - petrov   Цитата(DMax @ Sep 6 2009, 12:37) эталонну...   Sep 6 2009, 08:57
|- - sup-sup   Скорее всего, если полученный результат с выхода к...   Sep 6 2009, 12:28
|- - DMax   Цитата(petrov @ Sep 6 2009, 12:57) Надо н...   Sep 7 2009, 08:31
|- - alex_os   Цитата(DMax @ Sep 7 2009, 12:31) Мне уже ...   Sep 7 2009, 09:10
|- - petrov   Цитата(DMax @ Sep 7 2009, 12:31) Мне уже ...   Sep 7 2009, 09:21
|- - GetSmart   Цитата(petrov @ Sep 7 2009, 15:21) Писали...   Sep 7 2009, 09:33
|- - petrov   Цитата(GetSmart @ Sep 7 2009, 13:33) В то...   Sep 7 2009, 09:45
||- - GetSmart   Цитата(petrov @ Sep 7 2009, 15:45) максим...   Sep 7 2009, 11:48
||- - fontp   Цитата(GetSmart @ Sep 7 2009, 15:48) А шо...   Sep 7 2009, 11:52
||- - GetSmart   Цитата(fontp @ Sep 7 2009, 17:52) Так вся...   Sep 7 2009, 12:01
||- - petrov   Цитата(GetSmart @ Sep 7 2009, 16:01) Я та...   Sep 7 2009, 12:06
|- - alex_os   Цитата(GetSmart @ Sep 7 2009, 13:33) В то...   Sep 7 2009, 09:48
- - GetSmart   Можно я тут сумничаю? Надо сделать ещё одну ...   Sep 6 2009, 08:25
- - petrov   Парабола известна заранее(кроме сдвига), 2-х точек...   Sep 6 2009, 08:33
- - SSerge   Похожую задачу решают в GPS-приёмниках. Посмотрите...   Sep 6 2009, 08:34
- - bahurin   Цитата(DMax @ Sep 4 2009, 23:25) Доброго ...   Sep 6 2009, 12:50
- - Alex65111   Цитата(petrov @ Sep 6 2009, 12:57) в чём ...   Sep 6 2009, 17:49
|- - des00   Цитата(Alex65111 @ Sep 6 2009, 12:49) А н...   Sep 7 2009, 03:14
|- - Alex65111   Цитата(des00 @ Sep 7 2009, 07:14) как я п...   Sep 7 2009, 04:29
|- - fontp   Цитата(alex_os @ Sep 7 2009, 14:30) Практ...   Sep 7 2009, 10:42
- - fontp   По первой части вопроса, есть теоретически достижи...   Sep 7 2009, 10:13
- - thermit   ЦитатаGetSmart: Все фильтры предназначены для сину...   Sep 7 2009, 12:03
- - thermit   ЦитатаGetSmart: Во-первых, корреляция не раскладыв...   Sep 7 2009, 14:38
- - GetSmart   Это как в том анекдоте - "во, валит!......   Sep 7 2009, 14:57
- - sup-sup   Цитата(DMax @ Sep 4 2009, 22:25) Доброго ...   Sep 7 2009, 18:41
|- - DMax   Цитата(sup-sup @ Sep 7 2009, 22:41) ...   Sep 8 2009, 07:19
|- - alex_os   Цитата(DMax @ Sep 8 2009, 11:19) У меня в...   Sep 8 2009, 08:00
|- - petrov   Цитата(DMax @ Sep 8 2009, 11:19) У меня в...   Sep 8 2009, 08:00
|- - DMax   Прошу прощения, что пропал с этой темой. Был в отп...   Sep 26 2009, 14:07
- - petrov   Пусть имеем два отсчёта на символ. Согласованный ...   Sep 26 2009, 22:06


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

 


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


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