Преобразование фазы мощности с управляемым откликом (SRP-PHAT) это популярный алгоритм для локализация акустического источника,[1] хорошо известен своей надежной работой в неблагоприятных акустических средах.[2] Алгоритм можно интерпретировать как формирование луча -основанный подход, который ищет позицию кандидата, которая максимизирует выход управляемой формирователь луча с задержкой и суммой.
Алгоритм
Управляемая мощность отклика
Рассмотрим систему
микрофоны, где каждый микрофон обозначен субиндексом
. Выходной сигнал с дискретного времени с микрофона равен
. (Невзвешенная) мощность управляемого отклика (SRP) в пространственной точке
можно выразить как
![{ Displaystyle P_ {0} ( mathbf {x}) треугольник сумма _ {п in mathbb {Z}} left vert sum _ {m = 1} ^ {M} s_ {m} ( n- tau _ {m} ( mathbf {x})) right vert ^ {2},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f5ac962a6bfaafbab4f7fb85763b00e9dea35838)
куда
обозначает набор целых чисел и
было бы запаздыванием из-за распространения от источника, расположенного в
к
-й микрофон.
(Взвешенный) SRP можно переписать как
![{ Displaystyle P ( mathbf {x}) = { frac {1} {2 pi}} sum _ {m_ {1} = 1} ^ {M} sum _ {m_ {2} = 1} ^ {M} int _ {- pi} ^ { pi} Phi _ {m_ {1}, m_ {2}} (e ^ {j omega}) S_ {m_ {1}} (e ^ {j omega}) S_ {m_ {2}} ^ {*} (e ^ {j omega}) e ^ {j omega tau _ {m_ {1}, m_ {2}} ( mathbf { x})} d omega,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2eb30b01092566fb23bed8661cf61dc98b1e5301)
куда
обозначает комплексное сопряжение,
представляет преобразование Фурье с дискретным временем из
и
является весовой функцией в частотной области (обсуждается позже). Период, термин
это дискретная разница во времени прибытия (TDOA) сигнала, излучаемого в позиции
к микрофонам
и
, данный
![{ Displaystyle тау _ {м_ {1}, м_ {2}} ( mathbf {x}) треугольник left lfloor f_ {s} { frac { | mathbf {x} - mathbf {x } _ {m_ {1}} | - | mathbf {x} - mathbf {x} _ {m_ {2}} |} {c}} right rceil,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3223d3cc959895891530d0105f3b9f48a2b0e359)
куда
частота дискретизации системы,
это скорость распространения звука,
позиция
-й микрофон,
это 2-норма и
обозначает оператор округления.
Обобщенная кросс-корреляция
Вышеупомянутая целевая функция SRP может быть выражена как сумма обобщенных кросс-корреляций (GCC) для разных пар микрофонов с запаздыванием по времени, соответствующим их TDOA.
![{ Displaystyle P ( mathbf {x}) = sum _ {m_ {1} = 1} ^ {M} sum _ {m_ {2} = 1} ^ {M} R_ {m_ {1}, m_ {2}} ( tau _ {m_ {1}, m_ {2}} ( mathbf {x})),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3fdfb99c7a253d5a6ced07b3a9c760ba76ba608a)
где GCC для пары микрофонов
определяется как
![{ displaystyle R_ {m_ {1}, m_ {2}} ( tau) треугольникq { frac {1} {2 pi}} int _ {- pi} ^ { pi} Phi _ { m_ {1}, m_ {2}} (e ^ {j omega}) S_ {m_ {1}} (e ^ {j omega}) S_ {m_ {2}} ^ {*} (e ^ { j omega}) e ^ {j omega tau} d omega.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/335381a98ff6aa4dc03bdae19ab30141192bc8b6)
Фазовое преобразование (PHAT) - это эффективное взвешивание GCC для оценки временной задержки в реверберирующих средах, которое заставляет GCC учитывать только фазовую информацию задействованных сигналов:
![{ displaystyle Phi _ {m_ {1}, m_ {2}} (e ^ {j omega}) треугольник { frac {1} { vert S_ {m_ {1}} (e ^ {j omega}) S_ {m_ {2}} ^ {*} (e ^ {j omega}) vert}}.}.](https://wikimedia.org/api/rest_v1/media/math/render/svg/6830b1003862930ca8b05e22d89535edaa30de19)
Оценка местоположения источника
Алгоритм SRP-PHAT состоит из процедуры поиска по сетке, которая оценивает целевую функцию
в сетке возможных местоположений источников
для оценки пространственного расположения источника звука,
, как точка сетки, обеспечивающая максимальное SRP:
![{ displaystyle { hat { mathbf {x}}} _ {s} = arg max _ { mathbf {x} in { mathcal {G}}} P ( mathbf {x}).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/374178c9c91aa3b8cfc0865299806208a9178b29)
Модифицированный SRP-PHAT
Были предложены модификации классического алгоритма SRP-PHAT для уменьшения вычислительных затрат на этапе поиска по сетке алгоритма и повышения устойчивости метода. В классическом SRP-PHAT для каждой пары микрофонов и для каждой точки сетки выбирается уникальное целочисленное значение TDOA как акустическая задержка, соответствующая этой точке сетки. Эта процедура не гарантирует, что все TDOA связаны с точками на сетке, а также что пространственная сетка непротиворечива, поскольку некоторые точки могут не соответствовать пересечению гиперболоидов. Эта проблема становится более проблематичной с грубыми сетками, поскольку при уменьшении количества точек часть информации TDOA теряется, поскольку большинство задержек больше не связаны с какой-либо точкой сетки.
Модифицированный SRP-PHAT[3] собирает и использует информацию TDOA, относящуюся к объему, окружающему каждую пространственную точку поисковой сетки, с учетом модифицированной целевой функции:
![{ displaystyle P '( mathbf {x}) = sum _ {m_ {1} = 1} ^ {M} sum _ {m_ {2} = 1} ^ {M} sum _ { tau = L_ {m_ {1}, m_ {2}} ^ {l} ( mathbf {x})} ^ {L_ {m_ {1}, m_ {2}} ^ {u} ( mathbf {x})} R_ {m_ {1}, m_ {2}} ( tau),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0c9a843596a96af83bc3fab6210e2651d48b56be)
куда
и
- нижний и верхний пределы накопления задержек GCC, которые зависят от пространственного расположения
.
Пределы накопления
Пределы накопления можно точно рассчитать заранее, исследуя границы, разделяющие области, соответствующие точкам сетки. В качестве альтернативы их можно выбрать, учитывая пространственные градиент TDOA
, где каждый компонент
градиента:
![{ displaystyle nabla _ { gamma tau _ {m_ {1}, m_ {2}}} ( mathbf {x}) = { frac {1} {c}} left ({ frac { гамма - gamma _ {m_ {1}}} { | mathbf {x} - mathbf {x} _ {m_ {1}} |}} - { frac { gamma - gamma _ {m_ {2}}} { | mathbf {x} - mathbf {x} _ {m_ {2}} |}} right).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/85f10813fa1bba9a6e04628d6b0f7a34715fc669)
Для прямоугольной сетки, где соседние точки разделены расстоянием
, нижний и верхний пределы накопления определяются как:
![{ displaystyle L_ {m_ {1}, m_ {2}} ^ {l} ( mathbf {x}) = tau _ {m_ {1}, m_ {2}} ( mathbf {x}) - | nabla _ { tau _ {m_ {1}, m_ {2}}} ( mathbf {x}) | cdot d}](https://wikimedia.org/api/rest_v1/media/math/render/svg/26fd4dcb32990811d7fef8f2879afeebbe31f268)
![{ Displaystyle L_ {m_ {1}, m_ {2}} ^ {u} ( mathbf {x}) = tau _ {m_ {1}, m_ {2}} ( mathbf {x}) + | набла _ { тау _ {м_ {1}, м_ {2}}} ( mathbf {x}) | cdot d,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/68276a8dd5f980184341df32eeafa670598dcb33)
куда
а углы направления градиента определяются выражением
![{ displaystyle theta = cos ^ {- 1} left ({ frac { nabla _ {z tau _ {m_ {1}, m_ {2}}} ( mathbf {x})} { | nabla _ { tau _ {m_ {1}, m_ {2}}} ( mathbf {x}) |}} right),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7437d432a57056dc1eb83a5ce5c570d8fe56e282)
![{ displaystyle phi = arctan _ {2} left ( nabla _ {y tau _ {m_ {1}, m_ {2}}} ( mathbf {x}), nabla _ {x tau _ {m_ {1}, m_ {2}}} ( mathbf {x}) right).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ee270ec546706b9047fe7e19590d3638738135a1)
Смотрите также
Рекомендации