Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: БПФ ОБПФ в звуковизоре
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Acvarif
Пытаюсь разобраться в математике обработки сигналов звуковизора http://www.cta.ru/cms/f/441553.pdf.
Возникают непонятки. Прошу помочь разобраться.
1. Может у кого имеется скан этой книжки http://urss.ru/cgi-bin/db.pl?lang=Ru&b...ok&id=69052
2. К звуковизору Нептун имеются некоторые матвыкладки но сомневаюсь правильно-ли я понимаю данную математику. Матвыкладки на 2_х страницах. Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файла
Все построено на ПЛИС. Имеется антенна 48 элементов. В воде через эти элементы излучается ЛЧМ сигнал длительностью 1мс средней частотой 450 кГц, и на эти-же элементы осуществляется прием отраженных сигналов. Далее принятые сигналы с каждого элемента фильтруются цифровым фильтром (частота выборок 600 кГц) и передаются по Ethernet на ПК. На картинках последовательные шаги обработки принятых сигналов.
Не понятны некоторые шаги данной последовательности обработки.
1. Преобразование Фурье входной выборки - тоесть Фурье по частоте. Зачем?
2. Формирование характеристик направленности антенны для каждой спектральной компоненты. Я так понимаю это должен быть БПФ по пространству. Проще говоря БПФ в котором входними элементами являются данные сразу из 48 элементов антенны. Таким образом можно сформировать ДФУ(диаграммно формирующее устройство). Тут вроде понятно, если это действительно так. Сомневаюсь правильн-ли я понял...
3. Корреляционная обработка сигнала в каждом сформированном угловом канале - это тоже понятно. Все деляется для увеличения разрешаюшей способности по дистанции.
4. Квадратурная обработка - что имеется ввиду? Что нужно проделать дальше с сигналами и с какими?

Если кому не сложно, поясните пожалуйста популярно данную математику... Как на ее базе пулучается изображение. В первую очередь зачем в этой цепочке первый пункт?
serjj
Цитата
1. Преобразование Фурье входной выборки - тоесть Фурье по частоте. Зачем?

Широкополосное диаграммообразование (Wideband beamforming). Звуковой сигнал в воде представлен широкополсной моделью, т.к. ширина полосы сопоставима с несущей частотой. Т.е. коэффициенты пространственной обработки (формирования луча, beamforming) будут зависеть от частоты. Есть два основных варианта: а) классический, ввод управляемых задержек в каждый приёмный канал с высокой точностью б) формирование луча в частотной области. Второй вариант даёт выигрыш по ресурсу/цене, т.к. на формирование задержек требуется либо ставить высокочастотные АЦП либо реализовывать задержку на фильтрах (all-pass delay filters, andyp недавно выкладывал по ним статью). Реализация же beamformer'a в частотной области эквивалентна классическому методу. В гидроакустике её поэтому и используют.

Цитата
2. Формирование характеристик направленности антенны для каждой спектральной компоненты. Я так понимаю это должен быть БПФ по пространству. Проще говоря БПФ в котором входними элементами являются данные сразу из 48 элементов антенны. Таким образом можно сформировать ДФУ(диаграммно формирующее устройство). Тут вроде понятно, если это действительно так. Сомневаюсь правильн-ли я понял...

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

Цитата
4. Квадратурная обработка - что имеется ввиду? Что нужно проделать дальше с сигналами и с какими?

Ну про это почитайте отдельно. Миллион текста написано на всех языках мира. По сабжу - в цифре реализацию частотного beamformer'a можно сделать как в лоб (обработка реального сигнала с АЦП, он станет комплексным после Фурье) так и после гетеродина/фильтра/децимации. Учитывая, что у вас несущая 450 кГц, разумно сначала сделать вторым способом, перейдя на baseband и понизив символьную, а потом делать пространственную обработку. Если же несущие порядка десятков кГц, то можно делать beamforming и напрямую.
Acvarif
Спасибо. Общий смысл понятен. Некоторые термины для меня новые. Например Wideband beamforming. Нужно почитать... Если не сложно подскажите пожалуйста где про это можно почитать на русском.
По поводу децимации - так-таки оно и сделано. В устройстве реализована децимация на 5 и далее фильтр и передача данных на ПК.
Пока все же самый непонятный пункт N1.
Каким образом получив данные БПФ каждой выборки в каждом из 48_ми каналов можно сформировать лучи (многолучевую диаграмму направленности)?
Судя из характеристик устройства там организовано 100 лучей по углу места. Тоесть действительно так-таки оно и есть.
Ведь если, например, выполнять последовательно БПФ в одном из 48_ми каналов то последовательно на выходе БПФ будет возникать частотный спектр присутствующий в этом канале.
Кстати не понятно скольки-точечный в этом случае нужет БПФ? То же будет происходить и влюбом другом канале. Но как из этого потом получить лучи, да еще аж 100 штук?
serjj
Цитата
Некоторые термины для меня новые. Например Wideband beamforming. Нужно почитать... Если не сложно подскажите пожалуйста где про это можно почитать на русском.

Могу сказать где на английском. Optimum Array Processing by Harry L. Van Trees. Там всё что вам нужно.

Цитата
Каким образом получив данные БПФ каждой выборки в каждом из 48_ми каналов можно сформировать лучи (многолучевую диаграмму направленности)?
Судя из характеристик устройства там организовано 100 лучей по углу места. Тоесть действительно так-таки оно и есть.
Ведь если, например, выполнять последовательно БПФ в одном из 48_ми каналов то последовательно на выходе БПФ будет возникать частотный спектр присутствующий в этом канале.
Кстати не понятно скольки-точечный в этом случае нужет БПФ? То же будет происходить и влюбом другом канале. Но как из этого потом получить лучи, да еще аж 100 штук?

В каждом канале данные бьются на блоки с перекрытием или без. По этим блокам считается fft. В частотной области для каждого частотного индекса по всем каналам считаются лучи в частотной области. Например у нас есть Nfft точек Фурье. Тогда в частотной области делается Nfft shift & sum beamformer'ов для каждого луча. Соответственно для Nb лучей имеем Nfft * Nb beamformer'ов. Если на входе частотного beamformer'а действительный сигнал, то количество вычислений в частотной области падает в 2 раза, т.к. можно использовать свойство симметрии спектра действительного сигнала. Если частотная область является самоцелью, то можно выкинуть ненужные частоты, на которых ничего не анализируется. Иначе полученные в частотной области лучи передаются в ifft, т.е. происходит перевод во временную область.

Размер Фурье зависит от ширины обрабатываемой полосы и габаритов/геометрии антенны. Минимальный размер. Никто не запрещает взять больше с запасом. Но тогда схема становится более инертной, будет хуже работать с короткими/нестационарными сигналами по очевидной причине.

petrov
Цитата(Acvarif @ Oct 1 2015, 11:22) *
Ведь если, например, выполнять последовательно БПФ в одном из 48_ми каналов то последовательно на выходе БПФ будет возникать частотный спектр присутствующий в этом канале.
Кстати не понятно скольки-точечный в этом случае нужет БПФ? То же будет происходить и влюбом другом канале. Но как из этого потом получить лучи, да еще аж 100 штук?


В широкой полосе диграмма напраленности антенной решётки зависит от частоты, разбиваем сигнал на N полос, в каждой полосе весовой комплексный коэффициент свой, ессно количество полос нужно минимальное, только чтобы можно было сформировать диграмму направленности независимую от частоты.
Acvarif
Цитата(serjj @ Oct 1 2015, 12:39) *
Могу сказать где на английском. Optimum Array Processing by Harry L. Van Trees. Там всё что вам нужно.


В каждом канале данные бьются на блоки с перекрытием или без. По этим блокам считается fft. В частотной области для каждого частотного индекса по всем каналам считаются лучи в частотной области. Например у нас есть Nfft точек Фурье. Тогда в частотной области делается Nfft shift & sum beamformer'ов для каждого луча. Соответственно для Nb лучей имеем Nfft * Nb beamformer'ов. Если на входе частотного beamformer'а действительный сигнал, то количество вычислений в частотной области падает в 2 раза, т.к. можно использовать свойство симметрии спектра действительного сигнала. Если частотная область является самоцелью, то можно выкинуть ненужные частоты, на которых ничего не анализируется. Иначе полученные в частотной области лучи передаются в ifft, т.е. происходит перевод во временную область.

Размер Фурье зависит от ширины обрабатываемой полосы и габаритов/геометрии антенны. Минимальный размер. Никто не запрещает взять больше с запасом. Но тогда схема становится более инертной, будет хуже работать с короткими/нестационарными сигналами по очевидной причине.


Спасибо. Книжку нашел https://books.google.md/books?id=K5XJC_fMMA...p;q&f=false Правда пока только онлайн. Надеюсь найду и скачать..
В книге сразу нашел блок схему беамформера Нажмите для просмотра прикрепленного файла
Про разбиение входящих данных по каждому каналу на блоки с перекрытием или без понятно. Далее считаем fft блока в каждом из 48 каналов. Дальше пока не доходит.

Допустим у нас имеется 48 входных каналов V0...V47. На каждый из них поступают данные по выборкам из АЦП. По мере поступления данных они заганяются в буфер по каждому каналу, например 128 штук. Далее по каждому каналу вычисляется 128_точечный БПФ. Тоесть мы получаем 128_точечный частотный спектр буфера по каждому из 48_ми каналов.
Далее
Цитата
В частотной области для каждого частотного индекса по всем каналам считаются лучи в частотной области.
Не врубаюсь.
Тоесть берутся данные от БПФ блока (128 точек), например первая точка по всем 48_ми каналам и производятся действия называемые "Nfft shift & sum beamformer'ов" Как это можно выразить проще? В документе по прибору сказано вторым пунктом "Фрмирование характеристик направленности антенны для каждой спектральной компоненты"
serjj
Цитата
Тоесть берутся данные от БПФ блока (128 точек), например первая точка по всем 48_ми каналам и производятся действия называемые "Nfft shift & sum beamformer'ов" Как это можно выразить проще? В документе по прибору сказано вторым пунктом "Фрмирование характеристик направленности антенны для каждой спектральной компоненты"

Вот это оно и есть.
Допустим есть пространственный набор X_ik, где i ∈ 0...47, а k ∈ 0...127. Тогда B_k = ∑ (w_ik * X_ik). Т.е. это и есть "характеристика направленности для k-й спектральной компоненты".
upd. "Nfft shift & sum beamformer'ов" имеется в виду операция shift & sum beamformer, описанная выше, произведённая Nfft раз.
Acvarif
Цитата(serjj @ Oct 1 2015, 15:23) *
Вот это оно и есть.
Допустим есть пространственный набор X_ik, где i ∈ 0...47, а k ∈ 0...127. Тогда B_k = ∑ (w_ik * X_ik). Т.е. это и есть "характеристика направленности для k-й спектральной компоненты".

Понятно. Осталось уяснить как это будет выглядеть физически относительно самой антенны, в смысле "характеристика направленности для k-й спектральной компоненты"?
Я так понимаю, что w_ik - это весовой коэффициент используемый для формирования лучей. В смысле коэффициент подворота фазы для каждого луча.
Получается что на 48_ми элементах можно сформировать в два раза больше угловых направлений (по азимуту)? Или не так?

serjj
Цитата
Понятно. Осталось уяснить как это будет выглядеть физически относительно самой антенны, в смысле "характеристика направленности для k-й спектральной компоненты"?

Рекомендую покрутить такую вот демку. Там используется метод, основанный на задержках, но суть примерна таже. Вы сможете посмотреть, как изменяется диаграмма направленности в полосе вашего сигнала (frequency-angular array response).

Цитата
Я так понимаю, что w_ik - это весовой коэффициент используемый для формирования лучей. В смысле коэффициент подворота фазы для каждого луча.
Получается что на 48_ми элементах можно сформировать в два раза больше угловых направлений (по азимуту)? Или не так?

В два раза больше чем для чего? Вы можете сформировать столько лучей, насколько хватит вашей фантазии/ресурсов. При этом неважно формируете вы во временной области или в частотной. В книге, которую я вам посоветовал, автор делает акцент на том, что временный и частотные методы анализа и синтеза алгоритмов для АФАР эквивалентны. Но частотные методы более общие, поэтому автор даёт почти всю теорию для частотной области.
w_ik - это комплексный коэффициент для i-ого канала и k-й частоты. Веер коэффициентов w_k, т.е. для всех каналов представляет собой характеристику направленности для k-й спектральной компоненты.
Acvarif
Цитата(serjj @ Oct 1 2015, 16:19) *
В два раза больше чем для чего?

Описка. Имел ввиду намного больше угловых лучей чем количество элементов антенны.
Если выполнить просто БПФ48 по пространству то можно получить только 48 угловых направлений, примерно так http://acvarif.info/enews/enews6.html

Спасибо. Вобщем стало все намного понятней. Покручу матлаб...
serjj
Tips and tricks: вы можете поэкспериментировать с коэффициентами Фурье, например повернуть их по фазе и после преобразования будет уже другой набор лучей. Угловая разница будет только определяться базой преобразования и соответственно размером апертуры. А можно пойти дальше в сторону неравномерных преобразований Фурье, преднамеренно нарушая ортогональность и получая лучи в произвольных направлениях. При этом число расчётов имеет порядок БПФ.
Acvarif
С матлабом пока загвоздка (2010b). Не хватает компонентов
Цитата
??? Undefined variable "phased" or class
"phased.OmnidirectionalMicrophoneElement".

Нужно разбираться.
На блок схеме в конце преобразования показан ОБПФ. Я так понимаю это для перевода всего, что насчитано из частотной области во временную.
Далее возникают еще некоторые вопросы.
1. В звуковизоре применяется ЛЧМ сигнал. Очевидно это для увеличения разрешающей способности устройства по дальности. Поэтому в конце математики звуковизора нужен коррелятор, причем квадратурный.
Я так понимаю, что математика Wideband beamforming будет работать и с обычным одночастотным сигналом? При этом будет хуже разрешение по дальности, но и не нужен будет коррелятор.
2. Если это так (можно использовать одночастотный сигнал) то как можно симитировать на пратике сигнал в разных лучах Wideband beamform_ера? Если на все каналы устройства (48 штук) подать радиоимпульс (450 кгц) с одной и той же начальной фазой длительностью ~ 1мс то на выходе beamform_ера будет всплеск на нулевом выходе. Или я не прав?
Как симитировать появление сигнала на других выходах beamform_ера?

serjj
Цитата
Нужно разбираться.

Нужно поставить 12й или лучше 14й матлаб.

Цитата
1. В звуковизоре применяется ЛЧМ сигнал. Очевидно это для увеличения разрешающей способности устройства по дальности. Поэтому в конце математики звуковизора нужен коррелятор, причем квадратурный.
Я так понимаю, что математика Wideband beamforming будет работать и с обычным одночастотным сигналом? При этом будет хуже разрешение по дальности, но и не нужен будет коррелятор.

Логично будет сделать СФ в частотной области, а переводить во временную уже взаимную спектральную плотность мощности для того чтобы получить взаимную корреляционную функцию, в которой и искать максимум.
Для beamformer'a не имеет значение что на входе. Логика работы таже. Синус тоже принимают с помощью накопления, по сути тотже СФ. Разрешающая способность, да, меньше, т.к. очень сложно будет оценить точный максимум.

Цитата
2. Если это так (можно использовать одночастотный сигнал) то как можно симитировать на пратике сигнал в разных лучах Wideband beamform_ера? Если на все каналы устройства (48 штук) подать радиоимпульс (450 кгц) с одной и той же начальной фазой длительностью ~ 1мс то на выходе beamform_ера будет всплеск на нулевом выходе. Или я не прав?
Как симитировать появление сигнала на других выходах beamform_ера?

Обновите матлаб. Или посмотрите как формируется плоская волная для широкополосного процесса. Я так не вспомню. Меняя угол прихода, вы будете получать сигнал с максимальной энергией в разных лучах.
KittyCat
Сатья по способам формированию широкополосной диаграммы направленности:
http://www.curtistech.co.uk/papers/beamform.pdf
При 48 элементах в антенне является ли формирование диаграммы направленности в частотной области однозначно более эффективным?
serjj
Цитата
При 48 элементах в антенне является ли формирование диаграммы направленности в частотной области однозначно более эффективным?

Формирование ДН в частотной области эффективно с точки зрения затрачиваемых ресурсов. Форма самой ДН при этом аналогична формированию во временной области.
От количества элементов в решётке это мало зависит, т.к. тут скорее важно сколько лучей вы хотите получить. Разумеется, если элементов 4-8, то особого резона делать в частотной области нет. Но на практике это обычно десятки-сотни элементов и сотни лучей. В таком случае формирование ДН в частотной области будет однозначно выигрывать по ресурсозатратам у временных методов.
KittyCat
Сложность формирования диаграммы направленности антенны из N элементов: во временной области O(N*N), в частотной области O(N*logN). При больших N формирование в частотной области однозначно эффективней. Но какие константы в O-нотации сложности обоих методов? В качестве нижней границы эффективности применения алгоритма в частотной области в литературе указывалось число элементов антенны N~100, т.е. при малых N алгоритм во временной области эффективней?
serjj
Есть N антенных элементов, требуется сформировать M лучей.

Во временной области для формирования задержек используем фильтры, на которых можно с высокой точностью эти задержки выставить. Допустим на такой фильтр требуется Р умножителей. Итого получаем, что на один набор входных отсчётов с N элементов потребуется N*M*P комплексных умножителей (КУ).

Используя формирование ДН в частотной области, потребуется делать N быстрых преобразований Фурье с базой K > P. На N каналов, это N*K*log2(K) КУ. Для формирования ДН в частотной области нужно N*K*M КУ. Чтобы вернуть лучи во временную области потребуется ещё N*K*log2(К) КУ. Итого получаем 2*N*K*log2(K)+N*K*M КУ. Но для частотного формирования обработка выполняется блоками, размер каждого блока равен базе Фурье, если нет перекрытия. Указанное количество КУ - на блок а не на выборку АЦП, тогда на выборку АЦП можно оценить количество КУ: 2*N*log2(K)+N*M. Если использовать перекрытие 50% (распространённый вариант), то количество КУ выборку = 4*N*log2(K) + 2*M*N.

Сравнивая N*M*P и 4*N*log2(K) + 2*M*N нетрудно оценить границы применимости частотного формирования ДН.

Из этих же рассуждений можно увидеть, где возможно сэкономить для частотного метода. Если возвращаться во временную область не требуется, то количество КУ можно сократить до 2*N*log2(K) + 2*M*N. Если нас интересуют не все частоты, то второе слагаемое может быть дополнительно уменьшено, т.к. формировать ДН нужно будет не для K частот, а для K' < K. Если принять M=N, то в частотной области операция будет похожа на DFT, с той разницей, что матрица преобразования W может не быть ортогональной. Существует ряд быстрых алгоритмов для данной ситуации на подобие FFT, тогда M*N -> N*N -> N*log2(N). И ещё одно достоинство частотного метода - если используются алгоритмы адаптации, их реализация в частотной области сводится к обычным sum&shift beamformer'ам, в отличие от адаптации фильтров для временных методов.
Acvarif
В общем и целом процесс формирования лучей в частотной области понятен, кроме некоторой конкретики.
Допустим имеется 2 датчика и на их базе необходимо сформировать 32 луча в частотной области с шагом 0.3 градуса. При этом сектор обзора для этих датчиков всего 10 градусов.
Если применить БПФ для каждого датчика, то сколькиточечный нужен будет БПФ, чтобы обеспечить такой мелкий шаг по углу? Получается 360*3 или ~ 1024 точки. Из них нужно будет выбрать только необходимые 32 луча. Или все же както можно выкрутиться БПФ с меньшим количеством точек?
Это все рассуждения к тому как достигается высокое разрешение по углу в звуковизоре? БПФ на большое количество точек? Если так то тогда и разрешение по дальности будет низкое, поскольку оно будет определяться шагами равными количеству точек БПФ * на частоту дискретизации.
petrov
Цитата(Acvarif @ Dec 14 2015, 11:43) *
В общем и целом процесс формирования лучей в частотной области понятен, кроме некоторой конкретики.
Допустим имеется 2 датчика и на их базе необходимо сформировать 32 луча в частотной области с шагом 0.3 градуса. При этом сектор обзора для этих датчиков всего 10 градусов.
Если применить БПФ для каждого датчика, то сколькиточечный нужен будет БПФ, чтобы обеспечить такой мелкий шаг по углу? Получается 360*3 или ~ 1024 точки. Из них нужно будет выбрать только необходимые 32 луча. Или все же както можно выкрутиться БПФ с меньшим количеством точек?
Это все рассуждения к тому как достигается высокое разрешение по углу в звуковизоре? БПФ на большое количество точек? Если так то тогда и разрешение по дальности будет низкое, поскольку оно будет определяться шагами равными количеству точек БПФ * на частоту дискретизации.


Разрешение угловое определяется эффективной площадью антенны. А требуемое количество полос тем, насколько диаграмма направленности зависит от частоты, если не зависит, то одна точка БПФ нужна, а разрешение при этом может быть сколь угодно высоким. Банк фильтров можно сделать вообще без децимации, БПФ не вещь в себе, а всего длишь быстрый алгоритм для нужного банка фильтров.
Acvarif
Цитата(petrov @ Dec 14 2015, 15:58) *
Разрешение угловое определяется эффективной площадью антенны. А требуемое количество полос тем, насколько диаграмма направленности зависит от частоты, если не зависит, то одна точка БПФ нужна, а разрешение при этом может быть сколь угодно высоким. Банк фильтров можно сделать вообще без децимации, БПФ не вещь в себе, а всего длишь быстрый алгоритм для нужного банка фильтров.

Стоп. Давайте отвлечемся от антенны. Речь идет о БПФ и формировании диаграммы направленности в частотной области. Предположим что диаграмма зависит от частоты. Значит разрешение по углу определяется какраз количеством точек БПФ. Или я не прав? http://www.eetimes.com/document.asp?doc_id=1278838 Иначе как можно получить 256 лучей при 48 элементах антенны? http://www.cta.ru/cms/f/441553.pdf
petrov
Цитата(Acvarif @ Dec 14 2015, 15:18) *
Речь идет о БПФ и формировании диаграммы направленности в частотной области. Предположим что диаграмма зависит от частоты. Значит разрешение по углу определяется какраз количеством точек БПФ. Или я не прав? http://www.eetimes.com/document.asp?doc_id=1278838


Разрешение определяется шириной основного лепестка диграммы направленности. Можно использовать FFT для суммирования сигналов с решётки с фазовращающими коэффициентами как по ссылке, количеством точек определяется количество углов, а не разрешение, и это всё для одной частоты частотно-зависимой диграммы направленности.
Acvarif
Цитата(petrov @ Dec 14 2015, 17:09) *
Разрешение определяется шириной основного лепестка диграммы направленности. Можно использовать FFT для суммирования сигналов с решётки с фазовращающими коэффициентами как по ссылке, количеством точек определяется количество углов, а не разрешение, и это всё для одной частоты частотно-зависимой диграммы направленности.

Ну вот. Значит количество точек это количество углов. Теперь если антенна (например линейка, нпример 32 элемента) имеет ширину основного лепестка например 30 градусов. Как с помощью бимформера в частотной области построить в пределах 30 градусов веер из 256 лучей? На сколько точек в этом случае нужет FFT на каждый элемент антенны?
petrov
Цитата(Acvarif @ Dec 14 2015, 16:36) *
Ну вот. Значит количество точек это количество углов. Теперь если антенна (например линейка, нпример 32 элемента) имеет ширину основного лепестка например 30 градусов. Как с помощью бимформера в частотной области построить в пределах 30 градусов веер из 256 лучей? На сколько точек в этом случае нужет FFT на каждый элемент антенны?


Фазовращающие коэффициенты при суммировании FFT знаете, конструкцию решётки знаете, вот и смотрите набор диаграмм направленности который получаете.
Acvarif
Цитата(petrov @ Dec 14 2015, 16:58) *
Фазовращающие коэффициенты при суммировании FFT знаете, конструкцию решётки знаете, вот и смотрите набор диаграмм направленности который получаете.

Понятно. Если к каждому элементу подключить БПФ на 256 точек. Далее через весовые коэффициенты можно сформировать 256 лучей в нужных направлениях. Теперь возникает вопрос о разрещении по дистанции. Если обрабатывать БПФ_ы после полного заполнения буферов на 256 точек то шаг при скорости звука в воде 1500 м/сек будет 64 см. В звуковизоре это 2 см. Как достигается такое разрешение? Понятно, что можно обрабатывать БПФ_ы с перекрытием соответствующим шагу по дистанции 2 см. Но это же тогда громадные вычислительные операции. Успеет ли обычный ПК выполнить такое количество опереаций за время одного кадра звуковизора ~ 0.1 сек? Или все делается по другому...
petrov
Цитата(Acvarif @ Dec 15 2015, 17:43) *
Понятно. Если к каждому элементу подключить БПФ на 256 точек. Далее через весовые коэффициенты можно сформировать 256 лучей в нужных направлениях. Теперь возникает вопрос о разрещении по дистанции. Если обрабатывать БПФ_ы после полного заполнения буферов на 256 точек то шаг при скорости звука в воде 1500 м/сек будет 64 см. В звуковизоре это 2 см. Как достигается такое разрешение? Понятно, что можно обрабатывать БПФ_ы с перекрытием соответствующим шагу по дистанции 2 см. Но это же тогда громадные вычислительные операции. Успеет ли обычный ПК выполнить такое количество опереаций за время одного кадра звуковизора ~ 0.1 сек? Или все делается по другому...


Ничего не понятно. Не к каждому элементу, FFT вычисляется от массива элеменетов(с добавлением нулевых элементов) на каждом такте, для одновременного приёма с 256 углов.
serjj
Как Petrov говорит, FFT это только инструмент. Если применить N-точечное Фурье к кажому выходу АЦП, то пространственный сигнал x(t...t+ts*(N-1)) будет переведён в частотную область (дальнейшая обработка естественно станет блоковой). С другой стороны, если подать пространственный сигнал x(t), собранного с M АЦП на вход M-точечного Фурье, то на выходе преобразования будет сигнал b(t), который будет представлять собой M ортогональных лучей. При этом сигнал x был переведён из time domain в beamspace time domain. Также можно каждый k-й столбец пространственного-частотного сигнала X[MxN] полученного из x(t...t+ts*(N-1)) подать на вход M-точечного Фурье и получить сигнал B[MxN], который есть M лучей на N частот. Сигнал B соответствует beamspace frequency domain.

Интересующая нас пространственная обработка может быть реализована в любом из доменов в зависимости от требований и задач. Переход в домен отличный от time domain делается только для уменьшения сложности реализации. Теоретически любую обработку можно делать по данным АЦП/АЦП+ФНЧ.

Ещё один момент. Приведённое выше справедливо для линейного массива, т.к. переход в beamspace domain в общем случае зависит от геометрии ФАР. Так для плоской решётки это 2d FFT и т.д.
Acvarif
Цитата(petrov @ Dec 15 2015, 19:17) *
Ничего не понятно. Не к каждому элементу, FFT вычисляется от массива элеменетов(с добавлением нулевых элементов) на каждом такте, для одновременного приёма с 256 углов.

Ну как же не к каждому http://electronix.ru/forum/index.php?act=a...st&id=95770 Речь идет о frequency domain И не на каждом такте. Даные буферизируются, затем с ними производится операция FFT. Непонятно какой длины выбирается буфер. Если без перекрытия то по дистанции разрешение будет никаким. Если с большим перекрытием то это большое количество операций с которыми врядли справится ПК.
Цитата
Интересующая нас пространственная обработка может быть реализована в любом из доменов в зависимости от требований и задач. Переход в домен отличный от time domain делается только для уменьшения сложности реализации. Теоретически любую обработку можно делать по данным АЦП/АЦП+ФНЧ.

Речь идет только о frequency domain. Поскольку FFT вычисляются блоками то непонятка в том как должны вычисляться блоки. Если по ТХ разрешение по дистанции звуковизора 2 см то получается что вычислять FFT нужно блоками с большим перекрытием. ПК с этим справится?..
petrov
Цитата(Acvarif @ Dec 15 2015, 21:40) *
Ну как же не к каждому http://electronix.ru/forum/index.php?act=a...st&id=95770 Речь идет о frequency domain И не на каждом такте. Даные буферизируются, затем с ними производится операция FFT. Непонятно какой длины выбирается буфер. Если без перекрытия то по дистанции разрешение будет никаким. Если с большим перекрытием то это большое количество операций с которыми врядли справится ПК.


Здесь совсем другое FFT, по времени, в отличие от картинки из первой ссылки, где FFT считается по отводам антенной решётки, здесь же управление диаграммой в лоб считается, умножением на фазовые множители и суммированием.
Длина буфера ограничивается допустимой задержкой. На разрешение по дальности это не влияет, ведь вы сигнал потом восстанавливаете, посмотрите как КИХ фильтры в частотной области считаются блоками, а результат ничем не отличается свёртки в лоб.
Acvarif
Цитата(petrov @ Dec 15 2015, 23:00) *
Длина буфера ограничивается допустимой задержкой. На разрешение по дальности это не влияет, ведь вы сигнал потом восстанавливаете, посмотрите как КИХ фильтры в частотной области считаются блоками, а результат ничем не отличается свёртки в лоб.

Если сравнивать с фильтром то понятно. Ясное дело буфер должен быть не менее чем количество точек БПФ или, что тоже самое, количество лучей. При этом темп забора данных из буфера и вычисления это и есть разрешение по дальности. Просто сомнения в том справится-ли с таким объемом вычислений ПК. Если дистанция 100 метров то 100 00/2 = 5000 операций БПФ по 32_ум (или даже по 48_ми) каналам. Итого 240 000. И все это за время равное одному кадру ~ 0.1 сек. А если считать дистанцию туда и обратно (по отраженному сигналу) то еще в 2 раза больше.
serjj
Цитата
Если сравнивать с фильтром то понятно. Ясное дело буфер должен быть не менее чем количество точек БПФ или, что тоже самое, количество лучей. При этом темп забора данных из буфера и вычисления это и есть разрешение по дальности.

Откуда у вас такие убеждения?
Количество лучей ограничено вашей фантазией.
Количество точек Фурье (для Фурье, которые переводят данные АЦП во frequency domain) определяет количество частотных подканалов на которые будет разбит исходный сигнал.
То что вы называете темпом забора - это перекрытия, с которыми потребуется делать преобразование, для удовлетворения ваших нужд. Обычно достаточно 50%. При очень малой стационарности большие перекрытия могут и не помочь вовсе -> требуется уменьшение базы преобразования.
Разрешение по дальности определяется частотой следования импульсов на излучателе.
Разрешающая способность при разделении наблюдаемых объектов - размерами апертуры и вашей обработкой, т.е. фактически шириной луча и возможностью ваших алгоритмов разделять сигналы близкие по мощности но идущие из близко-расположенных источников (пространственно-коррелированных).
Acvarif
Цитата(serjj @ Dec 16 2015, 11:12) *
Откуда у вас такие убеждения?
Количество лучей ограничено вашей фантазией.
Количество точек Фурье (для Фурье, которые переводят данные АЦП во frequency domain) определяет количество частотных подканалов на которые будет разбит исходный сигнал.
То что вы называете темпом забора - это перекрытия, с которыми потребуется делать преобразование, для удовлетворения ваших нужд. Обычно достаточно 50%. При очень малой стационарности большие перекрытия могут и не помочь вовсе -> требуется уменьшение базы преобразования.
Разрешение по дальности определяется частотой следования импульсов на излучателе.
Разрешающая способность при разделении наблюдаемых объектов - размерами апертуры и вашей обработкой, т.е. фактически шириной луча и возможностью ваших алгоритмов разделять сигналы близкие по мощности но идущие из близко-расположенных источников (пространственно-коррелированных).

А разве количество частотных подканалов не определяет количество лучей? Судя по блок-диаграмме бимформера в частотной области так-таки оно и есть. Поэтому разрешение по углу и определяется количеством лучей в определенном азимутальном угловом секторе. Если в секторе 30 градусов это будет 30/256. Разрешение по дальности определяется только шагом обработки и ничем другим. Чем чаще шаг обработки тем выше разрешение по дальности. Или не так?..
Еще один момент. Понятно, что водная среда широкополосная. Поэтому это свойство и используется для построения бимформера в частотной области. А как быть с сигналом для построения звуковизора. Он тоже обязательно должен быть широкополосным, например ЛЧМ или обычный одночастотный сигнал при переводе его отражения в частотную область даст спектр на базе которого можно построить веер лучей?
petrov
Цитата(Acvarif @ Dec 16 2015, 12:43) *
А разве количество частотных подканалов не определяет количество лучей? Судя по блок-диаграмме бимформера в частотной области так-таки оно и есть. Поэтому разрешение по углу и определяется количеством лучей в определенном азимутальном угловом секторе. Если в секторе 30 градусов это будет 30/256. Разрешение по дальности определяется только шагом обработки и ничем другим. Чем чаще шаг обработки тем выше разрешение по дальности. Или не так?..


Количество частотных подканалов определяется тем, насколько диаграмма направленности решётки от частоты зависит. Частотный канал может быть один, а углов 10 000. Никто не заставляет делать децимацию сигнала, блочная обработка - быстрый алгоритм, а не вещь в себе.
Acvarif
Цитата(petrov @ Dec 16 2015, 14:18) *
Количество частотных подканалов определяется тем, насколько диаграмма направленности решётки от частоты зависит. Частотный канал может быть один, а углов 10 000. Никто не заставляет делать децимацию сигнала, блочная обработка - быстрый алгоритм, а не вещь в себе.

Не дает покоя фраза 'диаграмма направленности решётки от частоты зависит'. Это что означает? По ходу получается, что максимум характеристики направленности (например линейки 48 элементов) может быть на разных частотах при условии подворота решетки на нужные углы (например по азимуту) по отношению к источнику сигнала, который в свою очередь может менять частоты излучения. Можно-ли найти другое пояснение этой фразы?
petrov
Цитата(Acvarif @ Dec 16 2015, 15:51) *
Не дает покоя фраза 'диаграмма направленности решётки от частоты зависит'. Это что означает? По ходу получается, что максимум характеристики направленности (например линейки 48 элементов) может быть на разных частотах при условии подворота решетки на нужные углы (например по азимуту) по отношению к источнику сигнала, который в свою очередь может менять частоты излучения. Можно-ли найти другое пояснение этой фразы?


Может быть так, что на одной частоте у вас нормальная диаграмма направленности, а на другой частоте даже нет выраженного главного лепестка и большие боковики. Возьмите линейную решётку с изотропными излучателями и посчитайте диаграмму на разных частотах и с разными фазовращающими коэффициентами в приближении плоской волны.
serjj
Цитата
Еще один момент. Понятно, что водная среда широкополосная. Поэтому это свойство и используется для построения бимформера в частотной области. А как быть с сигналом для построения звуковизора. Он тоже обязательно должен быть широкополосным, например ЛЧМ или обычный одночастотный сигнал при переводе его отражения в частотную область даст спектр на базе которого можно построить веер лучей?

Насколько я знаю для sonar imaging используются только сигналы с базой >> 1, как правило ЛЧМ/ГЧМ и пр. Синус - это энергетика, он для дальнего обнаружения, хорошее сканирование только в относительно ближней зоне, там ЛЧМ/ГЧМ дают хорошее разделение откликов за счёт узкого главного лепестка в АКФ.
Широкополосность - атрибут сигнала и метода его обработки, а не среды.
Мне кажется вы ещё не поняли почему нужно применять частотный бимформинг. В матлабе есть широкополосная модель для АФАР различной геометрии, попробуйте собрать её + классический time domain бимформинг. Зависимость ДН от частоты кстати становится очевидной, когда вы посмотрите на формулу вычисления steering vector плоской волны для заданного угла. Тот же phase array toolbox позволяет строить angular-frequency response для разных геометрий решёток.
Acvarif
Цитата(serjj @ Dec 16 2015, 18:30) *
Насколько я знаю для sonar imaging используются только сигналы с базой >> 1, как правило ЛЧМ/ГЧМ и пр. Синус - это энергетика, он для дальнего обнаружения, хорошее сканирование только в относительно ближней зоне, там ЛЧМ/ГЧМ дают хорошее разделение откликов за счёт узкого главного лепестка в АКФ.
Широкополосность - атрибут сигнала и метода его обработки, а не среды.

Спасибо. По поводу звуковизора одним вопросом стало меньше. Конечно ЛЧМ.
Цитата
Мне кажется вы ещё не поняли почему нужно применять частотный бимформинг.

Думаю одна из причин - возможность получения высокого разрешения по углу при ограниченном количестве датчиков. Например имея 48 датчиков можно получить 256 углов в ограниченном угловом секторе. Если строить диаграмму в лоб на базе пространственного БПФ такой номер не пройдет. Хотя можно БПФ дополнить нулями... Но мне кажется это уже химия.
Да, действительно полного абстрактного представления почему и как диграмма направленности линейки зависит от частоты у меня пока так и нет. Если не сложно поясните пожалуйста на словах.
Можно только предположить что спектр сигнала (например ЛЧМ) приходящего на линейку с разных направлений по азимуту разный. Причем такой, что спектральный максимум с разных направлений будет находиться в разных местах частотной шкалы. Частотная шкала - это БПФ.
serjj
Цитата
Да, действительно полного абстрактного представления почему и как диграмма направленности линейки зависит от частоты у меня пока так и нет. Если не сложно поясните пожалуйста на словах.

Это следует хотя бы из формулы определения spatial steering vector плоской волны:

Нажмите для просмотра прикрепленного файла

Acvarif
Цитата(serjj @ Dec 17 2015, 16:54) *
Это следует хотя бы из формулы определения spatial steering vector плоской волны:

Нажмите для просмотра прикрепленного файла

Спасибо. Стало понятнее. Понятно, что beamformer frequency domain это всего лишь способ формирования многолепестковой диаграммы направленности линейки (решетки). И тем не менее, если ближе к телу или к железу. Если отвлечься от звуковизора и предположить, что в среду излучен одночастотный сигнал, который отражен от цели и пришел на линейку с направления под углом 'тета'. Обычный delay and sum бимформер легко поймает отраженный сигнал. beamformer frequency domain тоже справится с такой задачей? Или в этом случае излучать в среду нужно ЛЧМ. Я пока до конца не уловлю эту связь между способом формирования диаграммы направленности и реальными сигналами в самой среде...
serjj
Цитата
Понятно, что beamformer frequency domain это всего лишь способ формирования многолепестковой диаграммы направленности линейки (решетки).

Frequency Domain Beamforming это альтернатива Wideband Time Domain Beamforming, который строится на фильтрах, а не на умножителях. При этом обе схемы эквивалентны. Количество лучей, которые вы можете получить в частотной области, никак не связано с тем, что вы работаете в этой самой области. В частотной области на получение дополнительного луча уйдёт меньше ресурса чем во временной (при условии, что обработка широкополосная). Как petrov уже упоминал, следует посмотреть как реализуются обычные фильтры в частотной области, для осознания сути частотного beamforming'a.

Цитата
Обычный delay and sum бимформер легко поймает отраженный сигнал.

Вы имеете в виду видимо shift and sum. Delay - это Wideband Time Domain Beamforming и строится он на фильтрах. Для узкополосных трактов обычно также ставят frequency domain из-за сильного влияния Доплера.
Acvarif
Цитата(serjj @ Dec 17 2015, 18:31) *
Frequency Domain Beamforming это альтернатива Wideband Time Domain Beamforming, который строится на фильтрах, а не на умножителях.

Похоже я опять запутался. Вот схема Delay and Sum Нажмите для просмотра прикрепленного файла
Это кратко его работа
Цитата
Figure 4.1 shows a conventional DAS beamformer for an N-microphone array. The figure
shows that the array produces a signal for each different microphone, xn. After transforming
these signals to the frequency domain the signals are delayed and their amplitude is weighted by
multiplying with the appropriate weighting factor w1 = w2 = wn = 1N
, where N is the number of
microphones. The weighted signals are then summed and transformed back to the time domain
to create the output signal.

Поскольку имеются FFT на каждый датчик то само-собой сигнал с каждого датчика переводится в частотную область. Это Wideband Time Domain Beamforming или Frequency Domain Beamforming? Что значит на фильтрах? Имеется ввиду FFT в качестве фильтров или FIR? Не улавливаю разницы в этих двух методах..
Цитата
Вы имеете в виду видимо shift and sum. Delay - это Wideband Time Domain Beamforming и строится он на фильтрах.

Да. Зарапортовался.
Цитата
Для узкополосных трактов обычно также ставят frequency domain из-за сильного влияния Доплера.

Предположим простейший случай - иммется линейка из 2_х датчиков. Центральная чатота 200 кГц. В среду излучается одночастотный сигнал 200 кГц. Отраженный от цели сигнал приходит на датчики. Можно ли методом Frequency Domain Beamforming, в этом случае, сформировать веер лучей?
petrov
Цитата(Acvarif @ Dec 18 2015, 10:37) *
Предположим простейший случай - иммется линейка из 2_х датчиков. Центральная чатота 200 кГц. В среду излучается одночастотный сигнал 200 кГц. Отраженный от цели сигнал приходит на датчики. Можно ли методом Frequency Domain Beamforming, в этом случае, сформировать веер лучей?


Одночастотный сигнал проходит через банк фильтров, сигнал имеется только на выходе одного фильтра, какой смысл выходы других фильтров умножать-складывать?
Acvarif
Цитата(petrov @ Dec 18 2015, 13:00) *
Одночастотный сигнал проходит через банк фильтров, сигнал имеется только на выходе одного фильтра, какой смысл выходы других фильтров умножать-складывать?

Понятно. Очевидно сигнал в этом случае должен быть ЛЧМ.
Тогда в чем всетаки принципиальная разница между Frequency Domain Beamforming и Wideband Time Domain Beamforming?
petrov
Цитата(Acvarif @ Dec 18 2015, 12:27) *
Тогда в чем всетаки принципиальная разница между Frequency Domain Beamforming и Wideband Time Domain Beamforming?


Ни в чём. Разница такая же как между быстрой свёрткой и обычной.
Acvarif
Цитата(petrov @ Dec 18 2015, 13:51) *
Ни в чём. Разница такая же как между быстрой свёрткой и обычной.

Получается, что в любом из вариантов, в примере с двумя датчиками нужен широкополосный сигнал, например ЛЧМ?
Возвращаясь к методике обработки. В любом из вариантов обработка ведется посредством дискретизации. Обычно на практике сигнал с каждого датчика + АЦП + FIR с помощью Ethernet переносятся на ПК. Все вычисления должны быть выполнены за короткое время, порядка 0.1 сек. Если не сложно, можно коротко на словах, порядок матопераций для получения веера ХН, например с линейки из 2_х...и более датчиков. Не дает покоя вопрос как успеть все сделать за небольшое время и при этом иметь хорошее разрешение по дистанции.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.