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

 
 
> Определение скорости роста частоты, и экстраполяция
Waso
сообщение Dec 29 2011, 05:12
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



Здравствуйте! И с наступающим!

Встала задача отслеживать расстояние до объекта, удаляющегося с ускорением. Для этого имеется передатчик на 70ГГц и приемник со смесителем. Длина волны 4мм. Точность нужна 1% от расстояния. Диапазон измеряемых расстояний - от 0.1 до 5 метров.

Сейчас у меня эта задача решается дубово - измеряю фазу со смесителя и считаю отталкиваясь от известного начального расстояния. Но вот проблема - в реальных условиях могут возникать кратковременные помехи - например пролет между объектом и датчиком посторонних предметов. Естественно, после такого безобразия мой алгоритм начинает безбожно врать.

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

Подскажите пожалуйста литературу!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
=GM=
сообщение Dec 29 2011, 18:48
Сообщение #2


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Почему фазу измеряете, а не частоту? df=-2Vr/Lambda0, насколько помню.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Stepanov
сообщение Jan 2 2012, 19:29
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 448
Регистрация: 16-03-09
Из: Москва
Пользователь №: 46 143



Тут на выбор решения сильно влияет требуемое быстродействие системы (зедержка выходного сигнала относительно входного), если результат можно выдать после пролета (снарядом?) измерительного участка, то можно записать весь сигнал (после смесителя) в буфер, а потом вычислить БПФ на 128 или 256точек, выделить максимумы в отсчетах каждой точки, выстроить по этим максимумам результирующий график, причем откину несколько точек не вписывающиеся в плавную кривую.
Если времени нет, то поможет ФАПЧ (схема Костаса) в петле ОС которого будет фильтр или регулятор настроенный по оптимальному закону по критериям запаздывания и помехоустойчивости.
Go to the top of the page
 
+Quote Post
Waso
сообщение Jan 5 2012, 18:16
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



Цитата
Почему фазу измеряете, а не частоту? df=-2Vr/Lambda0, насколько помню.
Потомучто требуемая точность при малом расстоянии меньше длины волны.
Цитата
Если времени нет, то поможет ФАПЧ (схема Костаса)
Времени нет. Нужно выдавать информацию на ходу с частотой 2кГц и с известным отставанием по времени от фактического момента измерения (задержкой). Задержку нужно минимизировать, но она не должна быть больше 20мс. Буфер - это пожалуйста. 20мс - это уйма времени чтоб сделать первое БПФ, а вот как потом его заставить скользить по буферу и делать вычисления не более чем за 0.5мс... Существуют ли оптимальные алгоритмы для такого скользящего по буферу БПФ?

Про петлю Костаса начал учить матчасть. Спасибо. Будут вопросы - задам.
Go to the top of the page
 
+Quote Post
tmtlib
сообщение Jan 7 2012, 14:43
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531



Цитата(Waso @ Jan 5 2012, 21:16) *
Буфер - это пожалуйста. 20мс - это уйма времени чтоб сделать первое БПФ, а вот как потом его заставить скользить по буферу и делать вычисления не более чем за 0.5мс... Существуют ли оптимальные алгоритмы для такого скользящего по буферу БПФ?

Если шаг скольжения мелкий, как у вас - 0.5мс, то вместо БПФ возьмите обычное ДПФ, оно хорошо оптимизируется под скольжение. (в гугле - sliding dft). Я делал скользящий вариант ДПФ по приходу одного сэмпла, что естественно быстрее чем любое скользящее БПФ. Могу поискать ссылку на метод, объяснение на пальцах: каждая палка в спектре получается перемножением сигнала на синусоиду определённой частоты. То есть i-тая амплитуда это просто сумма A[i]=SUM( Sample[j]*Cos(i,j) ) по всем сэмплам j. По приходу сэмпла мы можем прибавить к палке число A[i]:=A[i]+Sample[Now]*Cos(i,j) и вычесть самое "старое" слагаемое A[i]:=A[i]+Sample[Now-128]*Cos(i,j). Так как старое произведение можно хранить в памяти, то на каждый сэмпл для каждой частоты только одно умножение по COS-компоненте. По второй компоненте так же. А дальше как для фурье - корни из сумм квадратов.

Если мелкий шаг не нужен, то можно целыми блоками. Будет быстро, но при росте размера блока алгоритм скользящего ДПФ станет в итоге медленнее, чем скользящего БПФ.
Go to the top of the page
 
+Quote Post
Waso
сообщение Jan 11 2012, 13:02
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 268
Регистрация: 4-11-05
Пользователь №: 10 470



tmtlib, благодарю за подсказку!

Stepanov. Ознакомился в общих чертах с Костасом, а заодно и с ФАПЧ 3-го порядка, которые позволяют следить за убеганием частоты. Понятно, что в итоге можно по известной частоте определять скорость и расстояние, и помехи можно задавить. Непонятно только что делать с фазой на малых расстояниях, если частота будет постоянно подстраиваться. С переводом фазы в метры надо будет както хитрить.

И еще гложут сомнения, что можно будет подобрать такие параметры ФАПЧ, чтобы он успевал перестроиться и не возбуждался, если цель будет удаляться от датчика с приличным ускорением (1 - 2 g). Максимальная скорость разлетания - 100 м/с (это в конце пути, когда уже быстрее всего) - пока не перевел в герцы чтоб найти полосу для ФАПЧ...
Go to the top of the page
 
+Quote Post
tmtlib
сообщение Jan 13 2012, 06:50
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 200
Регистрация: 30-10-10
Пользователь №: 60 531



Цитата
20мс - это уйма времени чтоб сделать первое БПФ, а вот как потом его заставить скользить по буферу и делать вычисления не более чем за 0.5мс...

Ещё как вариант - можно сделать многомикропроцессорную плату, засинхронизировав их работу с запаздыванием 20мс / N чипов. Например два чипа: первое БПФ закончилось, второй чип выдаст спектр через 10мс. Если четыре чипа - 5мс и т.д. Либо может поставить какой специализированный БПФ-чип, который из сигнала сразу делает спектр (Правда сколько они стоят не знаю)

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

С БПФ есть ещё такой способ. К примеру, я брал 1024-точечное БПФ. Экспериментально подобрал оптимальную форму сглаживающего окна, в итоге ненулевых коэффициентов осталось 64, а по краям - одни нули, по научному видимо STFT окно. Для оптимизации этого дела цикл БПФ можно развернуть в линейную программу. Хотя бы первую ступень преобразования. Основной выигрыш на первой ступени перемножения бабочек: вместо 1024 входных отсчёта используем только 64.

Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 03:20
Рейтинг@Mail.ru


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