Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Мтоды спектрального оценивания
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
blondex
Здрасте. Задачка по радиолокации.
Хочу реализовать в матлабе обработку сигналов с элементов линейной антенной решетки(АР). В результате нужно определить углы прихода сигналов, т.е. получить пространственный спектр и угловые координаты целей.
Имеется N элементов АР, с них снимаем пространственные отсчеты комплексной огибающей, получаем вектор отсчетов
X = [1, exp(j*2*pi*sin(tetta)*d/lambda), exp(j*2*2*pi*sin(tetta)*d/lambda).......exp(j*(n-1)*2*pi*sin(tetta)*d/lambda)]Т
Где d - расстояние между элементами АР, lambda - длина волны (интересно только их соотношение), tetta - угол прихода сигнала. Пусть источник один.
Для примера все амплитуды примем равными 1.
Далее формируем пространственно-корреляционную матрицу: R=X*XH
Дальше вводим опорный вектор, характеризующий плоскую волну волну с угла альфа:
F0 = [1, exp(j*2*pi*sin(alpha)*d/lambda), exp(j*2*2*pi*sin(alpha)*d/lambda).......exp(j*(n-1)*2*pi*sin(alpha)*d/lambda)]Т
alpha принимает по очереди все значения из заданного диапазона углов.
И производим, к примеру, оценку Бартлета:
PБ(alpha) = F0H*R*F0 (1)
Значение РБ[/b](alpha) должно характеризовать мощность сигнала, распространяющегося в нвправлении tetta.
Я строю получившуюся функцию PБ от alpha, и получаю график с размытым пиком, соответствующем заданному тетта и гиганскую погрешность, И абсолютную неспособность алгоритма разрешить две цели, находящиеся на любом угловом расстоянии. Если я задаю два угла тетта, то максимум функции Р один и соответствует углу, посередине между заданными.
Кто-нибудь знает как реализуются такие методы? И какой физический смысл выражения (1)?
Весь теоретический материал подчерпнут из книги Канащенкова "Защита радиолокационных систем от помех"
bahurin
чтото вы не так написали по ходу.
Если есть массив

X = [1, exp(j*2*pi*sin(tetta)*d/lambda), exp(j*2*2*pi*sin(tetta)*d/lambda).......exp(j*(n-1)*2*pi*sin(tetta)*d/lambda)]^T,

то думается что аргумент любой из экспонент даст arg = (n-1)*2*pi*sin(tetta)*d/lambda). Поскольку n, d и лямбда известны то достаточно:

sin(tetta) = arg*lambda/((n-1)*2*pi*d);

ну и собсна tetta = asin от всего этого безобразия.

Однако мне лично после фразы
Цитата
Значение РБ(alpha) должно характеризовать мощность сигнала, распространяющегося в направлении tetta.


как то страшно за войска ПВО становиться cranky.gif biggrin.gif
blondex
Цитата(bahurin @ Jan 9 2010, 21:40) *
чтото вы не так написали по ходу.

Дело в том, что то, что я написала в векторе Х - это некая модель входных отсчетов. То есть таким образом я задаю (моделирую) входные сигналы на элементах АР. Тут нет шумов, и источник излучения всего один. Если в выражение добавить все остальное, предположить, что число источников равно К, все они разной мощности, добавить шумы, некоррелированные в разных каналах, то вектор входных отсчетов примет следующий вид:
X = [A1*exp(fi1)*(exp(j*2*pi*sin(tetta1)*d/lambda)+exp(j*2*pi*sin(tetta2)*d/lambda)+.....+exp(j*2*pi*sin(tettaК)*d/lambda));
A2*exp(fi2)*(exp(j*2*pi*sin(tetta1)*d/lambda)+exp(j*2*pi*sin(tetta2)*d/lambda);.......]

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

Кстати, со своей проблемой я наполовину разобралась, если увеличить число элементов АР до астрономических значений, то алгоритм все же работает и разрешает сигналы с близких направлений, вот только число элементов у меня 100 - многовато.

Может кто знаком с реализацией одного из методов, таких как MUSIC, метод максимального Правдоподобия, Прони и тд?
Цитата
как то страшно за войска ПВО становиться

А че с ними будет? Не за тех боитесь)
Bill G8s
Цитата(blondex @ Jan 10 2010, 12:23) *
Может кто знаком с реализацией одного из методов, таких как MUSIC, метод максимального Правдоподобия, Прони и тд?


Может кто и знаком
http://dsp-book.narod.ru/marpl.htm
blondex
Цитата(Bill G8s @ Jan 10 2010, 16:21) *
Может кто и знаком
http://dsp-book.narod.ru/marpl.htm

Я читала марпла. Кстати, на этом сайте ссылки на все главы битые.
Все методы там описаны подробно,но книжку не попросишь объяснить, поделиться опытом и не спросишь почему программа не работает
Bill G8s
Цитата(blondex @ Jan 10 2010, 16:38) *
Я читала марпла. Кстати, на этом сайте ссылки на все главы битые.
Все методы там описаны подробно,но книжку не попросишь объяснить, поделиться опытом и не спросишь почему программа не работает


Действительно... эта ссылка устарела
На этом сайте есть и нормальная ссылка - тут
http://dsp-book.narod.ru/books.html
Неужели Вы думаете, что на форуме могут объяснить метод лучше чем в классической монографии эксперта?
AndeyP
Может поможет книжка "Narrowband Direction of Arrival Estimation for Antenna Arrays"
http://www.filefactory.com/file/04fe51/n/15s7_rar
На стр 56 там есть какой-то матлаб-код:
% Simulation of MUSIC, ESPRIT, MVDR, Min-Norm and Classical DOA
% algorithms for a uniform linear array.

Цитата
Все методы там описаны подробно,но книжку не попросишь объяснить, поделиться опытом и не спросишь почему программа не работает


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

Если что-то не получается, то самые общие советы - это во-первых отлаживать по частям, а во-вторых - визуализировать ключевую информацию (в данном случае - зависимость мощности от направления), Т.е. начать с одного источника без шума, получить при помощи самого простого алгоритма диаграмму направленности, убедиться что сама тестовая среда работает правильно, а потом уже добавлять шум, помехи, источники и другие алгоритмы.
hobgoblin
Цитата(blondex @ Jan 9 2010, 13:52) *
Хочу реализовать в матлабе обработку сигналов с элементов линейной антенной решетки(АР). В результате нужно определить углы прихода сигналов, т.е. получить пространственный спектр и угловые координаты целей.
Кто-нибудь знает как реализуются такие методы?


Чтобы упростить себе задачу представьте, что спектральная обработка в пространственной области при выполнении условия, что расстояние между элементами решетки меньше половины длины волны сигнала, ничем не отличается от обычной спектральной обработки сигналов во временной области. Возьмите две комплексные синусоиды и поэкспериментируйте с разными методами спектрального оценивания при помощи функций из Signal Processing Toolbox или при помощи пакета для MATLAB, который называется SALP (он лежит здесь - http://www.comtec.e-technik.uni-kassel.de/salp/index.html). Меняйте разнос между частотами сигналов, их уровень относительно шума, количество отсчетов в анализируемой выборке (эквивалент количества элементов решетки) и т.д. Так вы быстрее почувствуете разницу между методами. А потом, если будет желание и необходимость, можете уже сами все через матрицы переделать.


Цитата(blondex @ Jan 9 2010, 13:52) *
И какой физический смысл выражения (1)?

Это эквивалент преобразования Фурье в матричной форме. В соответствии с теоремой Винера-Хинчина спектральная плотность мощности равна преобразованию Фурье от автокорреляционной функции. У вас вместо автокорреляционной функции фигурирует ее оценка в виде корреляционной матрицы. Пики в выходной функции будут соответствовать углам прихода сигналов, если Бартлетт их может различить (поскольку Бартлетт - это классический метод спектрального оценивания на основе БПФ, то разрешающая способность у него не ахти какая).

Цитата(blondex @ Jan 9 2010, 13:52) *
Весь теоретический материал подчерпнут из книги Канащенкова "Защита радиолокационных систем от помех"

IMHO Марпл все-таки лучше для вас на данном этапе, а еще лучше поискать какую нибудь информацию по теме оценки DOA (Direction of Arrival) на английском, не так перегруженную математикой.
Oldring
Цитата(blondex @ Jan 10 2010, 16:38) *
Все методы там описаны подробно,но книжку не попросишь объяснить, поделиться опытом и не спросишь почему программа не работает


Это непростая область. Нужно понимать используемую математику.
Во временной области ваши сигналы от целей коггерентны или нет?
Это один из ключевых вопросов для выбора методов решения задачи. Пока не поняли почему - Вы не понимаете ничего.
blondex
AndeyP,
Цитата
Может поможет книжка "Narrowband Direction of Arrival Estimation for Antenna Arrays"
http://www.filefactory.com/file/04fe51/n/15s7_rar

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

Спасибо, пока так и делаю.

hobgoblin, спасибо, вы кое что прояснили, с оценкой Бартлета понятно. А вот к примеру выражение для мощности максимального правдоподобия принимает следующий вид
P=(F0H*R-1*F0)-1 (2)
В чем физ смысл преобразования Фурье от обратной КМ? Почему получается лучше разрешение?

Цитата
Во временной области ваши сигналы от целей коггерентны или нет?

Сигналы от целей в разных каналах когерентны, шумы нет.
Oldring
Цитата(blondex @ Jan 16 2010, 12:07) *
Сигналы от целей в разных каналах когерентны, шумы нет.


Это сильно усложняет Вашу задачу.
Соболезную.

PS Для понимания математики антенных решеток рекомендую Van Trees "Optimum Array Processing, Part IV of Detection, Estimation, and Modulation Theory"

PPS Я спрашивал не про коггерентность сигналов от одной цели в разных каналах приёма (без этой коггерентности нет решетки), а про коггерентность сигналов от разных целей во временной области. Возможно, я Вам рано соболезновал.
blondex
Наверное соболезновали вы мне рано, и вообще зря, т.к. сигналы от разных целей некогерентны.
Oldring
Цитата(blondex @ Jan 18 2010, 21:28) *
Наверное соболезновали вы мне рано, и вообще зря, т.к. сигналы от разных целей некогерентны.


Рад за вас. DOA для некоггерентных целей гораздо проще.

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

Ну или для чистоты теста накопите корреляционные матрицы просуммировав большое количество отсчетов с различными случайными фазовыми множителями у целей.
vadimuzzz
Цитата(blondex @ Jan 16 2010, 15:07) *
А вот к примеру выражение для мощности максимального правдоподобия принимает следующий вид
P=(F0H*R-1*F0)-1 (2)
В чем физ смысл преобразования Фурье от обратной КМ? Почему получается лучше разрешение?

это оценка по Кейпону(Capon, http://ieeexplore.ieee.org/Xplore/login.js...hDecision=-203)
дает отклик без искажений по минимуму дисперсии, не является оценкой макс. правдоподобия, немного лучше, чем Бартлет. асимптотически оптимальным (в смысле МП) является метод MUSIC.
AndeyP
Цитата
Может поможет книжка "Narrowband Direction of Arrival Estimation for Antenna Arrays"
http://www.filefactory.com/file/04fe51/n/15s7_rar
На стр 56 там есть какой-то матлаб-код:


Прикрепил код из книжки.
blondex
Цитата(Oldring @ Jan 18 2010, 21:57) *
Только не забудьте, что суммировать нужно не входные сигналы от разных целей, а корреляционные матрицы от разных целей.

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

Цитата
Прикрепил код из книжки.

AndeyP, спасибо, а всю книжку можно? rolleyes.gif Ну пожалуйста)) crying.gif
AndrewN
Цитата(blondex @ Jan 24 2010, 14:03) *
сигнал от нескольких целей

Естественно, для чего всё и делается - пространственным полосовым фильтром выделить нужные сигналы. Во входном сигнале от решётки сигналы от множественных источников суммированы и в ковариационной матрице источники от разных целей уже смешаны (как в принципе суперпозиции волн :).

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

Книжка 7MB, не приаттачить. Переписал сюда:
http://electronix.ru/forum/index.php?showt...st&p=692733
Oldring
Цитата(blondex @ Jan 24 2010, 13:03) *
Пожалуйста поясните. Когда я моделирую сигнал от нескольких целей, то мне нужно сложить сигналы с соответствующими амплитудами и фазами в каждом канале, и потом я могу найти корреляционную матрицу для как раз суммы сигналов с разных целей вместе с шумами и т.д. Как мне сложить корреляционные матрицы от разных целей? Я же по идее не знаю сколько сигналов и разделять их собираюсь по результатам работы алгоритма?


Но ведь для моделирования Вы сами эти сигналы готовите?

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

Должно быть R=sum(Xi*XiH)
blondex
Цитата(Oldring @ Jan 25 2010, 11:47) *
Но ведь для моделирования Вы сами эти сигналы готовите?

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

Должно быть R=sum(Xi*XiH)


Для моделирования действительно сигналы готовлю сама, но на приемной же стороне я вроде как не знаю что мне пришло, сколько сигналов, с какой амплитудой.
Цитата
R=sum(Xi*XiH)
, Ведь Xi - это же не сигнал от i-го источника?

Я моделирую так:
Если у меня M целей, то на k-м элементе антенной решетки у меня есть сигнал:
Xk =sum(Aj*exp(i*(k-1)*2pi*d*sin(tettaj)));
где Aj - амплитуда, tetta - фаза j-го сигнала.
d - база, j = 1...M.
Потом еще накладываю шум.
То есть на каждый антенный элемент приходит сумма сигналов со своими фазами.


Я считаю корреляционную матрицу:
R=<Xi*XiH>, где <*> - это усреднение, т.е.
R=sum(Xi*XiH)/N, где N - это число временных отсчетов, а Xi[sup] - это вектор пространственных отсчетов с каждого элемента АР в один момент времени, Xi+1[sup] - в следующий момент времени.

AndrewN,
Цитата
В широкополосном сигнале могут появляться ложные максимумы, поэтому нужно согласовывать период решётки и полосу и фильтровать входные сигналы.

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

PS Спасибо за книжки
Oldring
Цитата(blondex @ Jan 26 2010, 20:24) *
Я моделирую так:
Если у меня M целей, то на k-м элементе антенной решетки у меня есть сигнал:
Xk =sum(Aj*exp(i*(k-1)*2pi*d*sin(tettaj)));
где Aj - амплитуда, tetta - фаза j-го сигнала.
d - база, j = 1...M.
Потом еще накладываю шум.
То есть на каждый антенный элемент приходит сумма сигналов со своими фазами.

Я считаю корреляционную матрицу:
R=<Xi*XiH>, где <*> - это усреднение, т.е.
R=sum(Xi*XiH)/N, где N - это число временных отсчетов, а Xi[sup] - это вектор пространственных отсчетов с каждого элемента АР в один момент времени, Xi+1[sup] - в следующий момент времени.


Верно. Только в каждом векторе отсчетов решетки Xi, соответствующему временному отсчету i, фазы всех целей tettaj должны быть независимыми случайными величинами tettaij. Если цели некоггерентны. Да и амплитуды сигналов целей могут быть случайными величинами, но это уже не принципиально.

Точнее, неверно. В этой формуле tettaj - это не фаза сигнала цели, а азимут цели. Амплитуда сигнала каждой цели Aj должна быть независимой комплексной случайной величиной Aij.
blondex
Цитата(Oldring @ Jan 27 2010, 00:10) *
Точнее, неверно. В этой формуле tettaj - это не фаза сигнала цели, а азимут цели. Амплитуда сигнала каждой цели Aj должна быть независимой комплексной случайной величиной Aij.


Принимаю поправку, написала неправильно.
И все же, вопрос: Что вы имели ввиду под сложением корреляционных матриц от разных целей? Я моделирую суммарный сигнал, какие корреляционные матрицы от разных целей?
Oldring
Цитата(blondex @ Jan 28 2010, 19:51) *
Принимаю поправку, написала неправильно.
И все же, вопрос: Что вы имели ввиду под сложением корреляционных матриц от разных целей? Я моделирую суммарный сигнал, какие корреляционные матрицы от разных целей?


Корреляционная матрица суммы некоггерентных сигналов равна сумме корреляционных матриц отдельных сигналов. То есть вместо множества отсчетов во временной области можно обойтись одним вектором на сигнал. При достаточном числе отсчетов со случайными фазами.
AndrewN
Цитата(blondex @ Jan 26 2010, 20:24) *
Не смотря на вполне очевидную аналогию обработок временных и пространственных отсчетов, второе для понимания дается мне гораздо сложнее. Фильтр в данном случае, - это что-то вроде диаграммы направленности? А полоса - это ширина ДН? Как это увязано с тем, что это все-таки одновременный обзор и физически мы не перемещаем зондирующий узкий луч по сектору сканирования, а освещаем его целиком? Что здесь фильтр? Сама обработка?

Я еще добавил два издания Даджеон-Мерсеро - 1988 рус и 1995 англ. Посмотрите в гл 6.

Плоская волна с еденичной амплитудой описывается комплексной экспонентой

exp (i*(omega*t - <k,x>)),

k - волновой вектор, его модуль (волновое число) |k| = 2*pi/lambda показывает сколько периодов укладывается в 2*pi едениц длины. lambda и omega связаны волновой скоростью c = omega*lambda = omega/|k|. Для простоты хорошо допустить, что дисперсия (зависимость скорости от длины волны) d c / d lambda = 0. Если зафиксировать все переменные, кроме k, то поворачивая его, можно получить равные комплексные аргументы.

Луч - полосовой фильтр - формируется цифровым способом. В зависимости от типа антенны, луч или излучается - активная антенна, или принимается - пассивная антенна. И луч в самом деле перемещается при сканировании.

Не очень складно, но не хочется пересказывать Д-М :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.