声源定位matlab程序_matlab阵列天线

声源定位matlab程序_matlab阵列天线麦克风阵列声源定位(一)0a”N0Q”tt2l$t)F利用麦克风阵列可以实现声源到达方向估计(direction-of-arrival(DOA)estimation),DOA估计的其中一种方法是计算到达不同阵元间的时间差,另外一种可以看这里,这篇主要介绍经典的GCC-PHAT方法-p$?:Tc-\’~#t3h)U,A7t!B4a&u&am…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

麦克风阵列声源定位(一)

0 a” N0 Q” t  t2 l$ t) F利用麦克风阵列可以实现声源到达方向估计(direction-of-arrival (DOA) estimation),DOA估计的其中一种方法是计算到达不同阵元间的时间差,另外一种可以看这里,这篇主要介绍经典的GCC-PHAT方法

– p$ ?: T  c- \’ ~# t3 h

) U, A7 t! B4 a& u& p5 h: k背景d. u/ u9 \7 ~0 d7 D’ z: r

简单说明问题背景,信号模型如下图,远场平面波,二元阵列! b” m& L  [; |$ d; F

声源定位matlab程序_matlab阵列天线

) b2 H0 [; e6 Q5 V! ]9 a

, p+ }# R’ O: s2 M% m要计算得到θ \thetaθ,其实就是要求两个阵元接收到的信号时间差,现在问题变成到达时间差估计(Time-Difference-of-Arrival Estimation),因此,基于延时估计的DOA方法,其实也可以看做是分两步进行的,第一步是估计延时,第二步是计算角度,与之相对应的基于空间谱估计的DOA方法就是一步完成的。下面就分两步进行介绍

9 q$ \3 r; L* n( F$ D

) ^2 u/ t” t. N; k2 o: z+ Y* D+ _  z##1.延时估计

* S3 f1 |  _4 b! ?, r+ Q# Q###1.1.互相关函数(cross-correlation function$ {- X& S1 K7 g, i  w, ~  `

计算y1(k) y_1(k)y

: s” u7 Y# A1 K6 e+ u1

9 ?- k; G) I+ v​        % ~% y& }% k” z” Q+ W9 R

(k)与y2(k) y_2(k)y 9 l) c* @% V- B# }: h8 }2 x

2

6 A7 M0 d! }5 R  x; R5 q9 s​        , p’ |% q’ q+ K( K2 b2 u; z

(k)的时间差,可以计算两个信号的互相关函数,找到使互相关函数最大的值即是这两个信号的时间差’ O: x” U: ?4 M7 C! f

离散信号的互相关函数” \/ k/ F- P& |8 @

; @3 q$ v  W6 MR(τ)=E[x1(m)x2(m+τ)] R(\tau)=E[x_1(m)x_2(m+\tau)]

$ R0 T) f& j# k6 R3 fR(τ)=E[x 3 E; @& B( J6 d

1- D2 }  K) G’ x; M

​        4 f  y* Q! `3 _4 x6 c

(m)x

1 J. n) \2 b  o2 J+ U, j2

* b( k& v. ~” F/ t1 C​        $ t/ ]* A2 x( P% f

(m+τ)]8 K: ~6 H; w; ~8 ~  ]’ L

) f6 U8 S2 T5 v) z$ f& X: b( |求时间差就是找到互相关函数最大时的点

. \3 [! y% M$ l# O- h0 X; p: B3 r/ J$ I

D=argmaxR(n) D=argmaxR(n)( U0 {” }7 U7 b  J5 E3 k7 Y, j

D=argmaxR(n)- R/ ^8 V$ y1 w8 F0 `: s& ^

% k8 M2 d& X- _说的那么简单,那就用代码验证下; R7 e! A5 p1 K) t

%%

, k: w6 Q. k# m! h7 M8 S% Load the chirp signal.

) i+ Q. p/ g+ `. e’ Fload chirp;

” H6 s; ^; k+ c9 o$ q  g6 mc = 340.0;5 z9 T* k0 D7 g7 K; J2 A

Fs = 44100;, i/ V( E% _& C5 J$ u& g8 v7 w! m

%%, U’ j4 V8 V- V5 T

4 [9 P3 B* f: J& I7 g& Zd = 0.25;

( d, {$ Z0 V; h3 P5 \” _% P, xN = 2;) e” @; L& V! u6 ~$ W2 v

mic = phased.OmnidirectionalMicrophoneElement;

1 p8 w’ C8 C7 ?2 `3 n$ v) z% array = phased.URA([N,N],[0.0724,0.0418],’Element’,mic);’ u- Q/ g* z4 Y( M6 ~4 ]

array = phased.ULA(N,d,’Element’,mic);

$ }% v0 F: y4 l, T0 d

– }8 [4 |3 A1 q5 `%%5 V7 F8 U5 ^5 K5 R& S” v/ J

% Simulate the incoming signal using the |WidebandCollector| System

$ \- }0 A9 C$ x# y+ F” O* s8 D% object(TM).1 N; N& j: s2 b) O& b# {

arrivalAng = 42;: {( r0 @6 ^3 N; d6 K$ \1 s

collector = phased.WidebandCollector(‘Sensor’,array,’PropagationSpeed’,c,…( m0 ]/ T) m0 v6 _4 `$ f” t

‘SampleRate’,Fs,’ModulatedInput’,false);” |2 d/ A/ J  C; Z, S

signal = collector(y,arrivalAng);. Z( H# E5 A1 ^( [) X7 _

3 {0 H3 P0 n” W. D! q. Cx1 = signal(:,1);) E3 O( v7 A+ A9 ?* r6 ~+ _3 g

x2 = signal(:,2);; A! @3 J- m1 `0 m# D

, g  `% J9 g& `$ z

N =length(x2);0 g0 s+ z# b3 t+ F” f

xc = xcorr(x1,x2,’biased’);

‘ G/ l4 v; I) W+ s[k,ind] = max(xc);

# O” B* J  z# L$ T& Qan = acos((ind-N)/Fs*340/d)*180/pi

. b, y/ N” k5 p: O$ o0 T3 P- g” y6 m’ e, A9 {

xc12 = zeros(2*N-1,1);( Z+ w5 G1 R9 ?3 X; |& S” k

m = 0;

” [, N’ z- t+ o$ ofor i = -(N-1):N-1

* n) _. f/ `1 k6 \3 R) b    m = m+1;- y0 j  C” c) Z

for t = 1:N/ {3 N  Q- c% V+ v8 D

if 0

4 B” K7 [  m. Z$ \$ J& _* ?            xc12(m) = xc12(m) + x2(t)*x1(t+i);, B$ k) m0 }: p* b$ |2 z

end ‘ b2 ^5 g1 Q8 W! E

end& Y8 @7 t9 Z5 V# n% X/ O; I( P

end# ?( V% r, m- r

xc12 = xc12/N;* m4 t# k2 H7 ?+ O: Z’ e# j& ^

” P( D1 W$ ^3 J8 z9 v” ]8 G) X/ x4 W: k% p+ m

# I4 k8 u& f  ~$ s* P1 Q6 N+ R8 N

以上程序中的循环就是上面的定义公式,运行程序可以看到循环部分计算的互相关与直接调用matlab的xcorr结果相同(注意matlab中互相关默认没做归一化),找到互相关函数的最大值就可以得到时间差

– C3 {. a) s; Y6 H! c” ^8 K/ s’ o

( N1 P8 x% l  J6 Y4 f6 _  o9 M. ?

声源定位matlab程序_matlab阵列天线

‘ f4 f, d; P# l) l7 m) w1.2.广义互相关(generalized cross-correlation)8 x6 e  N+ S” P# y

理论上使用上面个介绍的CCF方法就可以得到时间差,但是实际的信号会有噪声,低信噪比会导致互相关函数的峰值不够明显,这会在找极值的时候造成误差。. Q* Q2 R, P8 @: [/ o+ Q0 ]. ?- Y

为了得到具有更陡峭极值的互相关函数,一般在频域使用一个加权函数来白化输入信号,这就是经典的广义互相关方法。# n1 `3 l; r; ?4 t/ r% Z0 I6 T7 i8 z7 N

由维纳-辛钦定理可知,随机信号的自相关函数和功率谱密度函数服从一对傅里叶变换的关系,即x1、x2 x_1、x_2x

6 `; ^. X& e( }8 g7 }1

$ a( W% H6 f’ e( ~+ k& d​        0 t) ?! m9 i1 E” W8 }6 S! d! H

、x

! B2 L9 t. F. L# t. v2″ A8 E0 }  [& ~/ P1 \+ v4 y

– m. f: ~+ B; l3 G. a$ x 的互功率谱可由下式计算

, Y” C3 `5 Q0 ^0 `; b% B{( f/ g6 m% Z5 q, l” @

P(ω)=∫+∞−∞R(τ)e−jωτdτ P(\omega)=\int_{-\infty }^{+\infty }R(\tau)e^{-j\omega\tau}d\tau

” D+ H/ `) P” t5 OP(ω)=∫

, Y+ U. C0 H# D5 j” q+ d−∞5 q  n6 Z1 @7 t7 F8 N

+∞

/ `4 y. m0 i! f9 `* P- s’ h* S​        7 p# z3 L( {( ]& \9 ]* h

R(τ)e ) A3 L2 {$ ^; G* M5 Z) x

−jωτ

7 S) W* n2 M4 f$ o# H dτ/ G5 U4 }( Q7 C5 i3 U6 K. b  d

5 O1 d- a2 x: w( Y! d

R(τ)=∫+∞−∞P(ω)ejωτdω R(\tau)=\int_{-\infty }^{+\infty }P(\omega)e^{j\omega\tau}d\omega

2 e1 @- B” e/ V1 P; B: P2 tR(τ)=∫ 4 \( H1 L5 P0 d3 l/ X

−∞* Q9 E3 ?+ o& d3 p1 Q

+∞6 x9 r” H, T, [: c/ e( _’ b

​        6 F1 F7 ^2 h3 L  w  E

P(ω)e

+ g) s5 c; N4 j& w5 Ajωτ- C% c! S1 L  N’ P9 u$ Y

dω% c’ O  ^+ S9 o% v& l8 U

, b5 M1 C8 B# B7 V2 B7 q& ?  n5 Q

这一步是把互相关函数变换到了频域,哦对,上面说到是想白化互相关函数,那就把上面第二式添加一个系数; Q8 U4 D9 O$ N0 W; V& g

) G9 D/ y) t. ~7 _( _

R˜(τ)=∫+∞−∞A(ω)P(ω)ejωτdω \tilde{R}(\tau)=\int_{-\infty }^{+\infty }A(\omega)P(\omega)e^{j\omega\tau}d\omega’ _, u3 T/ A( K7 S

R* i. N( N* v- K$ g/ I; E

~9 K9 |9 @. \  R% T, X  z

(τ)=∫ 1 [8 _2 O- o0 Q) ~3 I4 q! z

−∞

: x9 h: S0 X2 ?8 C1 j* f+∞

‘ Z& s1 Q” U( N. r, C% {​

2 ^/ `9 o3 D* c: E A(ω)P(ω)e 3 a* [) p6 Z& c9 [” u3 H

jωτ/ G’ U0 x  v& \; n& i0 u7 l

dωJ3 k3 k% j. B8 @& b

. m, x1 t0 @8 z& l6 e; r

设计不同的频域系数A(ω) A(\omega)A(ω)对应着不同方法,这里只介绍 PHAT(phase transform)方法,即取系数如下:

‘ B  D, w/ \  `  X: G

L, e( F0 Q! uA(ω)=1∣P(ω)∣ A(\omega) = \frac{1}{\left | P(\omega) \right |}

! T) W  E+ @, u2 l2 j; ?’ CA(ω)=

8 _( N- L& S/ O7 Y/ [$ ]5 ^∣P(ω)∣

– G0 @’ Y4 g) ?” L, Y7 {- V- p1. d% m0 G’ k’ A+ ]3 x3 I& x- U

​        1 I3 t; t* A4 C0 t6 ]” q

5 X5 F; G4 y. U” g

+ a” q, y: U4 t2 A+ c1 u; G% |/ h基本思想就是求时间差只需要相位信息,舍弃不相关的幅度信息以提高健壮性,可以看到当A(ω)=1 A(\omega)=1A(ω)=1的情况下就是经典互相关

” _- D/ C+ x’ d, wP(ω) P(\omega)P(ω)为复数,可以表示为∣P(ω)∣∗e−jωp \left |P(\omega)\right |*e^{-j\omega p}∣P(ω)∣∗e ) M) U; E; Y( Z% k% r

−jωp

; z2 y6 F9 b- \. n: a( b- u’ T ,去掉幅度信息后,就只剩相位信息e−jωp e^{-j\omega p}e 0 k4 y+ G! x1 p/ L% H7 Y2 y

−jωp: w. I3 e- K” V) e# ?! T, Q

了,要得到相位信息,可以用 P(ω)abs(P(ω)) \frac{P(\omega)}{abs(P(\omega))} ! d: R+ q* j7 X( j

abs(P(ω))A* Y$ H$ L% U; z

P(ω)`/ P( V7 o, G; w0 L+ o3 t

9 _( x+ t. T  I+ @# c” |! \/ Q# f 计算,也可以直接用matlab中的angle函数计算,即angle(P(ω)) angle(P(\omega))angle(P(ω)),# Z) |+ d5 O. V# I

& G/ u/ I% E3 {( n. y

具体得到更陡峭的峰值的理论解释如下,详情参见《麦克风阵列信号处理》P198

” ]: s! v/ K0 P, c0 i( }. b” \0 B0 m  u4 m( n( P( D

4 V3 O8 M7 _1 e2 _3 z/ a! a3 Y0 O

& O/ c! |! s0 x: f” U: L! b

$ U; b. n0 t2 j# ]* |& M

几行代码验证下:

/ K3 e’ F( i6 F’ j# l! {; x- T) G) W: x5 k, a1 ~

x1 = [1,2,3,7,9,8,3,7]’;7 ~1 s3 T  p6 d+ H’ y

x2 = [4,5,6,5,4,3,8,2]’;

5 O1 H* b/ o$ Y7 V

* K# a” P. }- v. @1 w2 H[tau,R,lag] = gccphat(x1,x2)

2 R: i, x3 C7 b6 q3 b7 P1 Y! j’ r1 G2 y” L: p

N = length(x1)+length(x2)-1;

$ e: |* z( _! e4 J. O: v) yNFFT = 32;” Z’ n8 B5 H: F5 W” Q

P = (fft(x1,NFFT).*conj(fft(x2,NFFT)));

+ a6 m6 F; q1 C# Z3 b6 @A = 1./abs(P);

% E& H* g% T: x- y7 `R_est1 = fftshift(ifft(A.*P));

$ U% V* `; g% Rrange = NFFT/2+1-(N-1)/2:NFFT/2+1+(N-1)/2;

6 ?, E3 e3 P1 V% A) R- UR_est1 = R_est1(range);: I! a  `0 Q# d6 E5 z

7 m  r/ S) q6 n! g8 Q

R_est2 = fftshift(ifft(exp(1i*angle(P))));3 q# S6 l# U& q

R_est2 = R_est2(range);6 j: a6 x1 |/ \  F

2 T, c2 @; n0 V

可以看到,三种不同写法得到的R_est1 、R_est2 与matlab自带函数gccphat计算得到的R相等。2 V* R2 ^0 v# s! h

* P- P3 R’ `# h7 u

那上面例子中的宽带语音信号,用GCC-PHAT方法得到具有陡峭峰值互相关函数,找到互相关最大时的点,结合采样频率Fs与与麦克风间距d Fs与与麦克风间距dFs与与麦克风间距d,就可以得到方向信息。频域计算互相关参考另一篇博客9 |6 f) @0 B( _3 p0 S

7 k’ G) L! g( V& |0 G##2.角度计算

* _: L/ l: r5 X  q4 f) I4 d上面的内容计算了两个麦克风的延时,实际中假设阵列中麦克风个数为N NN,则所有麦克风间两两组合共有N(N−1)/2 N(N-1)/2N(N−1)/2对,记第k kk个麦克风坐标为(xk,yk,zk) (x_k,y_k,z_k)(x

. g% R: c5 f  B9 o- yk7 @1 t! [7 x5 f’ ?; F

+ `0 q9 }9 R# z ,y ” e+ X7 D/ Q* U& t- u  L7 D’ m$ R

k% Q; p3 @# q’ l: j3 Q# y& [

​        ‘ x0 q+ r8 h” {6 X

,z ! B9 H/ J0 D9 H+ l  O

k

$ |1 {8 \$ a” W- z8 ~​        9 f( c8 `7 N! I$ I4 g

),声源单位平面波传播向量u⃗ =(u,v,w) \vec{u}=(u,v,w)

% i2 T2 ~! m) a. }% ]: F; \u

+ h( {: C2 z4 ^$ w* j: O  f =(u,v,w),如果麦克风k,j k,jk,j之间的延时为τkj \tau_{kj}τ

‘ A1 u0 C* _2 L$ _kj

2 Q4 J, i+ H! ~  j# z4 x  l9 p​        ) q! T. Y. n6 q# {, n. ]

,则根据向量关系有下式,其中c为声速,

6 j’ p- F. b3 u” b0 ?, c2 T! [9 r, A. K, f

c∗τkj=−(xk⃗ −xj⃗ )∗u⃗  c*\tau_{kj} = -(\vec{x_k}-\vec{x_j})*\vec{u}6 w7 G7 |) E0 j! C: b

c∗τ

2 {/ I- F5 ]” f/ okj

9 C! t2 M5 S- x9 F; \/ j2 |% K​        $ z+ f/ P3 |% l” M( P: X

=−(

$ X) y” Q’ Q0 _9 T2 I, zx

$ l! I$ _% F  {: A0 _( I/ hk

. j: B8 ^# ~5 w1 p- j​        ‘ {‘ e2 R. P3 [3 y# u’ [1 f* A$ R

& T  u& r) U* z4 N+ f3 x: h( W​        ) k7 h( J! |  w9 Y. B! `6 s0 w8 I

− ; F* ], d’ T1 C2 l, r

x , t0 R2 p) C* H& H

j* a# @$ j. ]’ c9 Q0 c* b

A/ q) M. U8 U4 T3 A

6 @; C4 f+ Q5 m6 P. C$ B) v​        $ f5 P/ J’ x) T* m6 ]- y

)∗

5 J7 o/ j! Z) V& e3 }; uu

* }& \) L/ Y, ]6 R0 a

2 }) g$ Z7 ^8 o% Z+ W/ k

^$ B# h1 e# k这样看起来不够直观,那就代入坐标写成标量形式如下:

3 \5 y4 m+ L0 D’ x’ E+ h0 m’ ^7 G( i. H( C  d& u” t0 j

c∗τkj=u∗(xk−xj)+v∗(yk−yj)+w∗(zk−zj) c*\tau_{kj}=u*(x_k-x_j)+v*(y_k-y_j)+w*(z_k-z_j)

6 q+ i! W- j) o’ t5 ec∗τ

W* Q* t( Y6 X7 t2 Wkj

8 [4 s! q5 J% Q+ y” o: z​

+ S% ?1 @) A& K! b& S6 p, G7 h2 E =u∗(x 5 }6 K$ @( p0 S- @0 k

k” ~2 t1 ]4 y0 n! `7 {! U

9 p( G* t$ L: p) E −x 2 h) Q$ l* i& I6 D. \- c

j

& x6 c, s! I# w! D​

) z- s% T6 G! I  R2 o) y$ {9 [ )+v∗(y – ^; e. |% S# [9 d4 i7 c0 V; ?) P* D

k

% A4 |8 k& H6 \’ N5 V​        5 _: |, k4 D’ q4 N

−y

& M: @# N8 {3 L% [j

s3 y- z, ]- H4 R6 Y+ o  u​

e( ?’ g# g” ?8 c4 V )+w∗(z , {* {, P” a’ _* n; ?. N

k

F$ e  _# t) h: t( U​

* J( Z5 {7 d) ~- O! L −z

/ ?4 p” o8 M/ W) r; t. R% K* d” Tj4 w$ v# P/ A. C: w+ S( o

​        ) m! p7 o% K9 Q3 N  u! F4 s

)

$ K$ H% }$ O; q) c* R2 T5 m0 [‘ ]

5 z5 T  S9 y1 Q& q; f0 N’ F当有多个麦克风时,每两个麦克风就可以得到一组上式,N个麦克风就会有N∗(N−1)/2个等式 N个麦克风就会有N*(N-1)/2个等式N个麦克风就会有N∗(N−1)/2个等式,声源单位传播向量u⃗ =(u,v,w) \vec{u}=(u,v,w) ) I# s0 z5 |, R7 P3 ^9 `

u

– a9 i” i0 X5 L) h. L; C5 W =(u,v,w) 有三个未知数,因此最少只需要三组等式,也就是三个麦克风就可以计算出声源方向,这里就先假定N=3 N=3N=3,可以得到方程组如下:9 t. O# Q8 L$ M2 ?

, }2 L4 z- H; X3 `3 b2 U0 z% j; e

c∗τ21=u∗(x2−x1)+v∗(y2−y1)+w∗(z2−z1) c*\tau_{21}=u*(x_2-x_1)+v*(y_2-y_1)+w*(z_2-z_1)c∗τ

+ l1 N; E2 |) e’ B” @211 V’ z5 |) W( ]! Y” m

n; P! j# `6 Y =u∗(x

% w: {% y5 C/ t’ V7 G3 ]/ G+ S1 V2. R3 C$ `1 b# a) h# U  E

​        3 u5 k% d5 P# M7 e

−x . s6 [( C’ K: [3 n) `” |/ w6 ~

1: C1 r5 g& P  H

3 g$ N6 }* G5 @9 L& Q )+v∗(y 3 E% f7 @’ R  O9 w+ t’ O$ a

2/ G$ k! o/ n. ?2 a4 F. h

‘ t, q/ \1 P( |0 ?2 Q −y : [# c) x  Q7 z. P3 Q* I’ e  Q

1

2 t9 [+ h: N9 v  [! k( Q) P4 g​

; c1 z) a2 S! O9 {+ z7 S8 ~/ A )+w∗(z & G6 N0 [& w+ i, I% w

2

E3 n0 }) l( \, {3 O​

9 f; }’ P* J8 Q$ S. X+ ]1 A  K −z 1 I( [! w+ A. A3 q5 I6 Q( y# ]’ A5 o6 o

1

. G+ F  ^+ f* X” K​        + \- N( N+ y/ X% x

)

% [9 B” E; V0 h3 L: c& Gc∗τ31=u∗(x3−x1)+v∗(y3−y1)+w∗(z3−z1) c*\tau_{31}=u*(x_3-x_1)+v*(y_3-y_1)+w*(z_3-z_1)c∗τ

0 `/ e* T7 z- H4 g31

$ Q5 K* H2 K$ Y% \8 m​

% n. x* j2 T; Z& j0 B5 h* r =u∗(x ( \6 z9 q. S6 C( F6 c0 e  ]

3/ S! O+ f- V/ m6 N9 @+ e

& N$ G! ]  f: t −x

$ k( C, |( l6 @, G# l- [* j6 [1) s- ?/ p% |7 d7 t” {” x3 c. f  G* G( i; ~

– G3 R6 u2 b7 N- a* R. M )+v∗(y

4 Q( {3 N9 `, `& L: j34 l- k* g% o: o  k

: ^1 c- y” Q: z: C −y + N% H3 s, H* j) |! w

18 J9 q/ K  c’ U0 u0 L- T/ n

+ C$ n4 B  Q. y# \4 N; F )+w∗(z

; T9 x6 ]; g+ c( F+ }* c3

7 d0 {” z2 V; d. I  v( w/ Q, d( q0 j* Y” q​

! Z  @# G5 i4 g6 W- v3 r −z

% L9 M0 [5 J: Z& s. ]1

2 U, o. e% A2 r’ J$ x​

. V4 V% x” A/ T! W )% Y- r( j9 N% P

c∗τ23=u∗(x2−x3)+v∗(y2−y3)+w∗(z2−z3) c*\tau_{23}=u*(x_2-x_3)+v*(y_2-y_3)+w*(z_2-z_3)c∗τ

4 ~; k! U. D9 ~* o) J8 B23

E. X+ J* S) ?6 ?1 \. ~: ]​        1 t- B- o& ~6 s+ ?4 U

=u∗(x , d/ U’ F4 }: D) O) \0 s

2

1 A- T( {  i’ v2 a/ w+ `​

* ~. K8 E* N1 P  S −x 5 D& _& [0 t3 t8 ~+ G

3

: O& P, L: u  k​        0 A/ T3 a1 p: w, `- q

)+v∗(y

, H, \& F9 _4 Z8 A2) _- e) R3 v: E$ w6 q4 t, m& W. l

. r$ F’ D; V! n, U$ C# u −y

* i) U: e5 b7 Q; [3

( ~) z( q8 R5 k$ R* S/ s​

9 U. h! O5 p( g9 d; Q( A% e )+w∗(z ” \’ Z- D# p5 C0 P! `  X

2

. k% V4 N, e5 L* d3 R1 u+ V​        1 E” J! P* e8 h- M6 A, P6 I) ^# f

−z 1 \8 v* `* Y* [2 f1 m

3

2 |3 r’ l) m/ g” W  K7 ~​        . [+ C7 Q+ b  R6 J( y) _

)! K8 R’ k0 m+ u+ u* ^. {* N

” |3 |$ B  A) u1 Q% ^% s: q# S写成矩阵形式

‘ z8 f6 L8 j- b( x2 I! K

% A- \5 e9 R# d/ C6 X; g( |2 R4 K8 @- y3 g6 j

/ \# y7 W+ M- A6 m4 v; K求出u⃗ =(u,v,w) \vec{u}=(u,v,w)

: j5 O% f. a7 }3 A( p& o! huU+ P7 @’ F% u6 f- X/ B5 y8 U; \& b

=(u,v,w) 后,由正余弦关系就有了角度值了

4 u8 l2 k# Q, F+ C( I+ ^” @3 q/ Q9 ]$ U( X* ~% m

θ=acos(1w) \theta=acos(\frac{1}{w})θ=acos( 3 ~, I  z’ h0 H/ Q3 \9 q

w- C( {  T0 x4 n3 U0 N5 {% m+ b

1- g0 L6 D  w! n4 ]; s$ H

$ Z7 Q8 I0 O2 R6 q( M )

5 y$ S” g) p: E& f4 n6 h” c1 u/ A” e; o/ Y1 D2 d- G; f3 j

α=acos(usin(acos(1w))) \alpha=acos(\frac{u}{sin(acos(\frac{1}{w}))})α=acos( , L8 v# L! @+ Q

sin(acos(

1 y) g6 k1 Q1 ^+ v5 Jw

6 q% \# l2 W/ h12 y$ Y1 b6 W! \3 I  H

/ `+ T$ |9 c0 a/ [/ g& D’ P ))

! d0 k  a; v( d5 C’ n3 [8 G: Nu

) ?’ Z9 ]1 o8 b# }: N​

‘ d) h& p  d+ K8 f% ]8 P’ ?0 D )

4 V’ p! v8 q, f9 I, L

% |” z3 N+ b, j8 p$ T当麦克风数量N>3 N>3N>3时,其实所有组合信息对于角度值的计算是有冗余的,这个时候可以求出所有组合的角度值,然后利用最小二乘求出最优解,这样可以利用到所有的麦克风的信息来提高角度估计的稳定性

1 L6 G; @5 r& H3 \5 V9 c# |# t; s% x) C* Z

References:

& C# B’ @. G- l6 k0 X  u. q6 y3 v9 z% x4 W- r, n

J. Benesty, J. Chen, and Y. Huang, Microphone Array Signal Processing. Berlin, Germany: Springer-Verlag, 2008.

‘ Q/ q7 z. `/ j7 S) U; F! DJ. Dibiase. A High-Accuracy, Low-Latency Technique for Talker Localization in Reverberent Environments using Microphone Arrays. PhD thesis, Brown University, Providence, RI, May 2000.

( C- i( ?, m” D7 @: ~J.-M. Valin, F. Michaud, J. Rouat, D. Letourneau, Robust Sound Source Localization Using a Microphone Array on a Mobile Robot. Proc. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 1228-1233, 2003.K; O% v( i  `6 J/ j8 D

————————————————

1 R, A( v, ^. ~9 Q版权声明:本文为CSDN博主「373955482」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。% k) J: C7 v& [3 O* b3 a

原文链接:https://blog.csdn.net/u010592995/article/details/797351985 L( A. V- E. r  Q  j% S; Z

/ @% n) r, R/ r7 c5 V9 a. ]# [” L& P9 T3 X2 ?’ R- b7 Q

_  v( t8 T) |1 g

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193306.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • LoRawan_lomando游戏下载

    LoRawan_lomando游戏下载版本管理 目录第4章MAC帧格式…1前言…14.1MAC层(PHYPayload)24.2MHDR帧头…24.2.1消息类型(MType位字段)24.2.2数据消息的主版本(Major位字段)34.3MAC载荷(MACPayload)44.3.1帧头(FHDR)44.3.2端口字段(FPort)84.3….

  • win10如何设置不打开图片的情况下也能预览图片的缩略图

    win10如何设置不打开图片的情况下也能预览图片的缩略图右击此电脑–>属性–>高级系统设置–>点击高级–>点击性能下面的设置–>然后把视觉效果里:显示缩略图,而不是显示图标前的复选框勾上,OK。

  • samba文件共享服务配置过程_互联网共享文件夹

    samba文件共享服务配置过程_互联网共享文件夹一、Samba简介1.1概述SMB(ServerMessagesBlock,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。1.2samba与FTPftp的优缺点:优点:文件传输、应用层协议、可跨平台缺点:只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件Samba的特性:

  • Excel VBA 编程练习

    Excel VBA 编程练习根据表单名称从work查找

  • Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型 【转】

    Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型 【转】

  • 进口跨境电商erp系统_东南亚的电商平台

    进口跨境电商erp系统_东南亚的电商平台【上马ERP】专注东南亚本地电商市场,对接shopeeLazadatokopediaJD.idBilbilAkulaku等电商平台一套根据东南亚本地电商需求深度订制的ERP/WMS仓储系统!上马特色功能:【自动处理pickupGo-jek,Gosend,Grad订单】【自动打印快递面单】:美观、高效、准确、效率【自动更新平台订单】:结合仓库现有库存,自动更新平台库存,100%防止超卖;【智能化仓库管理】:智能生成拣货清单,高效准确管理仓库;【实时校验订…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号