covariance matrix estimation in MVDR beamforming

5 ビュー (過去 30 日間)
zozo
zozo 2012 年 5 月 25 日
Iam working on Minimum Variance Distortionless beamforming in frequency domain.
I have 8 microphones in a spiral shape with different heights(3D array). I have simulated signals(sinusoids) as jammers from 2 directions at -100° and -50° azimuth and my look direction is +100° azimuth. Now, I need to estimate the covariance matrix in frequency domain to place nulls in each jammer direction given by Cxx=1/N(X*X'). Here, X is the fft of entire signal or is it bin by bin as in Cxx=1/N[X(w1)*X(w1)'] where w1=first frequency bin and so on.?
Please help.

回答 (1 件)

Honglei Chen
Honglei Chen 2012 年 5 月 26 日
That depends on whether you want to process your signal as narrow band or wide band. If you want narrow band, then you can treat everything as one frequency bin. If you want wideband, then you need to estimate for each frequency bin.
  4 件のコメント
zozo
zozo 2012 年 5 月 29 日
I have divided my received signal (8x1000) into 8 segments of 125samples each. Now, FFT each segment, and compute the covariance matrix by selecting corresponding bin(8x1) from each of the segments and averaging them over segments to get the covariance matrix for 1st bin. Repeat the same for all the 125 bins to get 125 covariance matrices (8x8).
Now I compute the steering vector 'a' and the MVDR weights as:
N=125;
t_L; %8x1 vector of time delays from look direction at 100° on each of 8 microphones
omega = fs*[(0:N/2) (-N/2+1:-1)]/N; %frequency bins of impulse response
for v=1:N
Cxx=8x8 matrix computed as stated in above for each bin
a=exp(1i*t_L*2*pi*omega(v)); %8x125 steering vector towards look direction 100°
H_w=Cxx\a; % 8x125 filter coefficients for MVDR
end
Doing this, I get undistorted look direction but NO notches at jammer directions as shown below:
http://i47.tinypic.com/33le2hk.jpg
(Note: my source and 2 jammers are sinusoids of 900Hz,950Hz,1000Hz respectively
Honglei Chen
Honglei Chen 2012 年 5 月 30 日
Not obvious what is wrong, but two things I noticed: (1) you should have 1 response curve for each bin, why is it only one line in the figure? (2) You are using 8 samples to estimate an 8x8 covariance matrix, there's not enough samples

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by